gpt4 book ai didi

ios - 为什么我在 Xcode 中收到 NSRangeException

转载 作者:行者123 更新时间:2023-11-29 03:51:33 26 4
gpt4 key购买 nike

我正在尝试从我的项目加载 plist,这一直有效,直到我不小心删除了我的 plist。 plist 有 5 个数组,每个数组有 2 个元素。我知道程序正在尝试访问超出数组范围的内容,但我不知道该索引是在哪里设置的?这是它轰炸的代码:这段代码成功执行了两次,然后由于某种原因它尝试第三次访问它并在第一行轰炸,为什么?

它抛出这个异常:

NSRangeException -[_NSCFARRAY objectAtIndex] index(2) beyond bounds (2)

请帮忙,这是周一到期的期末项目,现在我觉得我必须重新开始。

 NSString *nameOfAccount = [account objectAtIndex:indexPath.row];
cell.textLabel.text = nameOfAccount;
NSString *accountNumber = [number objectAtIndex:indexPath.row];
cell.detailTextLabel.text = accountNumber;

最佳答案

由于您在同一单元格中显示数据,因此您可以将帐户名称和编号包含到字典或自定义模型对象中,以保存这两个信息。

在你的 plist 中,这可能是字典对象的结构、数组

enter image description here

当您显示信息时。为数据源创建一个数组,例如 accounts

#define kAccountName @"Name"
#define kAccountNumber @"Number"

- (void)viewDidLoad
{
[super viewDidLoad];

NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Accounts" ofType:@"plist"];
self.accounts = [NSArray arrayWithContentsOfFile:filePath];

}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [self.accounts count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

NSDictionary *account = self.accounts[indexPath.row];

cell.textLabel.text = account[kAccountName];
cell.detailTextLabel.text = account[kAccountNumber];

// Configure the cell...

return cell;
}

Source code

关于ios - 为什么我在 Xcode 中收到 NSRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17006592/

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