我正在异步调用Api以获取数据。然后,我将在下面给出的块内成功将数据分配给共享实例。
RestApiManager *api= [[RestApiManager alloc]init];
[ObjectBuilder sharedManager];
self.obj = [[Object alloc]init];
[api get_data:credential.password finish:^(NSDictionary *data) {
if(data){
self.obj = [ObjectBuilder obj:data];
[[ObjectBuilder sharedManager]setObject:self.obj];
}
除了我尝试更新obj的NSMutableDictionary属性之一中的某些值时,所有这些工作均按预期进行。
- (void)update: (NSInteger) temp {
array3 = [[NSMutableArray alloc]init];
NSNumber *start =[[NSNumber numberWithInteger:var];
[NSNumber numberWithInteger:var2];
NSNumber *temp2 =[NSNumber numberWithInteger:temp];
[array3 addObject:temp2];
[array3 addObject:start];
[array3 addObject:end];
[self.obj.sch setObject:array3 forKey:temp2];
}
[obj.sch setObject:array3 forKey:temp2];总是会使我的应用程序崩溃。
现在我不清楚发生了什么,基本上是在块代码内设置obj,而在更新功能中,我试图在块代码外更改内容。
我得到的错误是
原因:'-[__ NSDictionaryI setObject:forKey:]:无法识别的选择器已发送到实例
请注意,如果我声明行
,此错误就会消失[[ObjectBuilder sharedManager] setObject:obj];
终点以外:^区块 但是后来我丢失了从api调用获得的所有数据。
对象声明如下@interface Object : NSObject
@property (strong, nonatomic) NSMutableDictionary *sch;