无法将对象添加到数组

ZB开发

我有以下代码,并且遇到了一个奇怪的错误

 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
克莱门特·普雷姆(Clement Prem)

我认为以下是罪魁祸首

 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章