gpt4 book ai didi

objective-c - 无法将文件内容从 .plist 文件获取到数组中

转载 作者:行者123 更新时间:2023-11-28 23:15:47 27 4
gpt4 key购买 nike

我正在尝试创建一个简单的应用程序,其中我有一个应该显示文件内容的 TableView。我在 IB 中创建了一个 TableView ,并将它的委托(delegate)和数据源拖到文件的所有者,我手动创建了一个 .plist 文件,其中包含 1 个包含 2 个项目的数组。

在我的 TableViewController.h 中,我声明了一个数组。

NSArray * posts;

在我的实现文件中,我声明了 UITableViewDataSource 所需的方法,如下所示:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
NSLog(@"Returning num sections");
return posts.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// create a cell
UITableViewCell * post = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"post"];

// fill it with content
post.textLabel.text = [posts objectAtIndex:indexPath.row];

// return it
return post;
}

在我的 ViewController 'viewDidLoad' 方法中,我尝试将我的文件的内容添加到 'posts' 数组,如下所示:

- (void)viewDidLoad
{

NSString * postFile = [[NSBundle mainBundle] pathForResource:@"Posts" ofType:@"plist"];
posts = [[NSArray alloc] initWithContentsOfFile:postFile];

NSLog(@"%@", postFile);
NSLog(@"%i", posts.count);
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}

NSLog(@"%i", posts.count);返回 0,尽管我已将值添加到我的 .plist 文件中。 TableView 中没有显示任何内容。

如能就如何解决此问题提出建议,我们将不胜感激。

最佳答案

我认为您需要在加载 postFile NSArray 后重新加载表格。如果您的 View Controller 是 UITableViewController,请尝试将以下代码行添加到 viewDidLoad 方法的末尾:

[self.tableView reloadData]

(与此无关,您还应该在 viewDidLoad 方法中做的第一件事就是调用父类(super class),因此 xcode 模板给您的注释。)

编辑计数问题。
我认为您的调试也有问题。 count 不是 NSArray 的属性,因此您不能对它使用点语法。您应该向 NSArray 实例发送一条消息,即 [posts count]

关于objective-c - 无法将文件内容从 .plist 文件获取到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471401/

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