我有以下代码,并且遇到了一个奇怪的错误
PFQuery *query = [PFQuery queryWithClassName:@"SchoolSpecificData"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSMutableArray *data = [[NSMutableArray alloc]init];
[data addObjectsFromArray:objects];
NSLog(@"Objects: %d", data.count);
pickerData = [data valueForKey:@"schoolFullName"];
NSLog(@"Picker data:%d",pickerData.count);
NSMutableArray *testarray =[NSMutableArray arrayWithObject:@"Other"];
[pickerData addObjectsFromArray:testarray];
NSLog(@"Picker data again:%d",pickerData.count);
self.SchoolPicker.dataSource = self;
self.SchoolPicker.delegate = self;
}];
正如您在该块的前面所看到的,我将对象添加到一个可变数组中,并且工作正常,但由于某种原因,它与pickerData数组不兼容。该数组是我的类的属性,并定义为NSMutableArray。为什么会发生这种情况的任何想法?我也尝试仅添加对象,但是它给出了相同的错误。
这是错误:
[2965:202451] -[__NSArrayI addObjectsFromArray:]: unrecognized selector sent to instance 0x7aee6360
我认为以下是罪魁祸首
pickerData = [data valueForKey:@"schoolFullName"];
上面的返回一个不可变的数组。
试试这个
pickerData = [[data valueForKey:@"schoolFullName"]mutableCopy];
更新
建议的重构
PFQuery *query = [PFQuery queryWithClassName:@"SchoolSpecificData"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
pickerData = [NSMutableArray array];
//TODO: Need validations + capturing strong self inside block is a bad idea:)
[pickerData addObjectsFromArray:[objects valueForKey:@"schoolFullName"]];
[pickerData addObject:@"Other"];
//You can set the datasource & delegate outside the block & reload the picker once pickerData is filled.
self.SchoolPicker.dataSource = self;
self.SchoolPicker.delegate = self;
}];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句