gpt4 book ai didi

objective-c - 如何将数据重新加载到 NSTableView 中?

转载 作者:行者123 更新时间:2023-12-03 17:48:29 26 4
gpt4 key购买 nike

我对 Objective-C 相当陌生,我发现有很多针对 iOS 和 UITableView 的教程,但几乎没有针对 OS X 应用程序通过 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];


}

最佳答案

您需要为 NSTableViewDataSource 实现所需的委托(delegate)方法协议(protocol)。具体来说,您需要这两个:

numberOfRowsInTableView:
tableView:objectValueForTableColumn:row:

然后 TableView 将调用这些方法来获取它想要的数据。

此外,还有a great tutorial有关使用 NSTableViews 的信息,请访问 raywenderlich.com。

关于objective-c - 如何将数据重新加载到 NSTableView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39622514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com