gpt4 book ai didi

objective-c - "objectAtIndex"的 NSUserDefaults 错误

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:55 24 4
gpt4 key购买 nike

在这行代码中收到错误消息:

Team *team = [leagueLocal.teams objectAtIndex:indexpath.row];

错误是“使用未声明的标识符‘indexpath’”...但我不确定我会在 objectAtIndex: 中放置什么,除了 indexpath.row,因为在这个应用程序的 TableView 部分,这对我有用。

大图,我正在尝试使用 NSUserDefaults 保存所选的团队名称。团队名称通过 JSON 从 Web 服务中提取。

这是我目前拥有的 NSUserDefaults 部分的完整代码:

   // Create User Defaults Variable
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

// Tell it where to look
Sport *sportLocal = [sports objectAtIndex:0];
League *leagueLocal = [sportLocal.leagues objectAtIndex:0];
Team *team = [leagueLocal.teams objectAtIndex:indexpath.row]; // This is where error is

// Store the data, this is the stuff I want to save
[defaults setObject:team.abbreviation forKey:[NSString stringWithFormat:@"teamAbbreviation%d", _buttonNumber]];

// After saving, synchronize data
[defaults synchronize];

感谢您的帮助!让我知道是否需要更多信息,或者如果需要我可以帮助澄清的地方。

编辑- 我在错误正下方的 viewDidLoad 中添加了一个 NSLog 以查看我得到了什么,它返回 null:NSLog(@"索引处的对象:%@", team.abbreviation);

最佳答案

如果这是在 viewDidLoad 内部,那么除非您已经初始化了 indexPath 变量,否则它将无效。它仅在您的 tableView 方法中有效,因为它是通过函数传入的。

你有几个选项来获取你正在寻找的 indexPath:

Team *team = [leagueLocal.teams objectAtIndex:[NSIndexPath indexPathForRow:i inSection:k];
//where i and k are integers that indicate the row/section for the tableViewCell your looking for...(k would just be equal to 0 if you only have one section)

或者另一种方式是,如果用户之前选择了您要查找的内容,那么您可以使用:

NSIndexPath *indexPath=[self.tableView indexPathForSelectedRow];
Team *team = [leagueLocal.teams objectAtIndex:indexPath.row];//now you can use it the way you have it written in your question

希望对您有所帮助!

关于objective-c - "objectAtIndex"的 NSUserDefaults 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15126871/

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