2016-09-21 5 views
0

私はObjective-Cをかなり新しくしています.iOSとUITableViewのチュートリアルはたくさんありますが、NSTableView経由のOS X Appsはほとんどありません。データを取得するメソッドを作成しましたが、最後の行にエラーが表示されます。NSTableViewにデータを再ロードするには?

"オブジェクトタイプProductsViewControllerでプロパティtableViewが見つかりません"。

データをテーブルにリロードする正しい方法や、この特定のインスタンスにNSTableViewを使用する必要があるのか​​どうかわかりません。 NSTableViewを使用するよりも自分のデータを表示する良い方法はありますか?

#import "ProductsViewController.h" 
#import "Product.h" 

#define getDataURL @"http://myurl" 


@interface ProductsViewController() 

@end 

@implementation ProductsViewController 

@synthesize jsonArray, productsArray; 

- (void)viewDidLoad { 
[super viewDidLoad]; 



[self retrieveData]; 



} 

-(NSInteger)numberOfRowsInTable:(NSTableView *)tableView{ 

return productsArray.count; 
} 

- (void) retrieveData{ 

NSURL * url = [NSURL URLWithString:getDataURL]; 
NSData * data = [NSData dataWithContentsOfURL:url]; 

jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; 

productsArray = [[NSMutableArray alloc] init]; 


for(int i = 0; i < jsonArray.count; i++){ 

    NSString * pID   = [[jsonArray objectAtIndex:i] objectForKey:@"id"]; 
    NSString * pName  = [[jsonArray objectAtIndex:i] objectForKey:@"product_name"]; 
    NSString * pPrice  = [[jsonArray objectAtIndex:i] objectForKey:@"product_price"]; 
    NSString * pDescription = [[jsonArray objectAtIndex:i] objectForKey:@"product_description"]; 
    NSString * pImage  = [[jsonArray objectAtIndex:i] objectForKey:@"product_image"]; 
    NSString * pDownload = [[jsonArray objectAtIndex:i] objectForKey:@"product_download"]; 
    NSString * pVideo  = [[jsonArray objectAtIndex:i] objectForKey:@"product_video"]; 
    NSString * pFeatured = [[jsonArray objectAtIndex:i] objectForKey:@"featured"]; 


    [productsArray addObject:[[Product alloc] initWithProduct_Name: pName andProduct_Price:pPrice andProduct_Description:pDescription andProduct_Image:pImage andProduct_Download:pDownload andProduct_Video:pVideo andProduct_Featured:pFeatured andProduct_ID:pID]]; 
} 

[self.tableView reloadData]; 


} 
+0

もちろん、NSTableViewといくつかのデータソース/デリゲートメソッドやCocoaバインディングが必要です。 – vadian

答えて

1

NSTableViewDataSourceプロトコルに必要なデリゲートメソッドを実装する必要があります。具体的には、次の2つが必要です。

numberOfRowsInTableView: 
tableView:objectValueForTableColumn:row: 

テーブルビューは、必要なデータに対してこれらのメソッドを呼び出します。

さらに、raywenderlich.comにはNSTableViewsの使用についてa great tutorialがあります。

+0

それは完璧です。どうもありがとうございます! –

関連する問題