Я вызываю 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];
}
Это все работает как положено, за исключением случаев, когда я пытаюсь обновить некоторые значения в одном из свойств NSMutableDictionary объекта obj.
- (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;