gpt4 book ai didi

ios - NS无效参数异常 : "Unrecognized selector sent to instance"

转载 作者:IT王子 更新时间:2023-10-29 08:18:05 26 4
gpt4 key购买 nike

我遇到了一个我并不真正理解原因的问题。异常没有给我理解问题的线索。

我想根据myArray中给定的数据修改我界面中UILabel的内容。但是,正如我在函数“cellForRowAtIndexPath”中指定的行,程序会触发异常。

这个问题是什么原因造成的?

@property (strong, nonatomic) NSMutableArray *myArray; //

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[myArray addObject:@{@"field1": @"myfield1"}]
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger) section {
return self.myArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
// Configure the cell...
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}

UILabel *myLabel = (UILabel *)[cell viewWithTag:100]; // myLabel is successfully created with the given viewWithTag
NSLog(@"Object at indexpath.row: %ld", (long)indexPath.row); // Object at indexpath.row: 0
NSLog(@"The obj of the array = %@",[self.myArray objectAtIndex:indexPath.row] ); // The obj of the array = {field1: @"myfield1"}

myLabel.text = [[self.myArray objectAtIndex:indexPath.row] objectForKey:@"field1"]; // this part fires the exception given below.

return cell;
}

//getter for myArray
-(NSMutableArray *)myArray{
if(! _myArray){
_myArray = [[NSMutableArray alloc] init];
}
return _myArray;
}

错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x1459d1f0'

最佳答案

我不会告诉您要更改代码的哪些内容,而是给您一些提示,希望您将来能够更轻松地解决问题。

首先,你得到的错误信息是这样的

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x1459d1f0'

异常消息是这里的重点

unrecognized selector sent to instance

如果您使用您选择的搜索引擎搜索此消息,您会发现这意味着您正在对不响应该方法的对象调用方法。错误消息还会告诉您尝试调用的方法,以及调用它的对象类型。

[__NSCFArray objectForKey:]

如果您查看 NSArray 对象的文档,您会发现没有可用的 objectForKey 方法。

你现在应该做的是在你的代码中设置一个断点(如果你不知道断点,去阅读它们 - 它们对于调试很重要)并单步执行直到你遇到抛出异常(exception)。此时,您可以检查您拥有的对象并查看类型。然后,您应该能够弄清楚应该如何处理编码。

关于ios - NS无效参数异常 : "Unrecognized selector sent to instance",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467539/

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