Иногда (редко, но происходит) У меня возникла ошибка Object has been deleted or invalidated.
при попытке изменить мой объект модели с помощью свойства или внутри AFnetworking Block. Может ли кто-нибудь помочь мне найти то, что я делаю неправильно?Ошибка: объект удален или недействителен. (Realm)
Ошибка - Случай 1:
Код:
- (void)myFunction {
Model *model = [Model objectForPrimaryKey:1];
if (model) {
[self updateModel:model];
}
}
- (void)updateModel:(Model *)model {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager PUT:@"http://www.example.com" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
[[RLMRealm defaultRealm] beginWriteTransaction];
model.updated = YES; // Crash: Object has been deleted or invalidated.
[[RLMRealm defaultRealm] commitWriteTransaction];
} failure:nil];
}
Ошибка - Случай 2:
недвижимости:
@property (strong, nonatomic) Model *model;
Код:
- (void)myFunction {
Model *model = [Model objectForPrimaryKey:1];
if (model) {
self.model = model;
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Would you like to edit the model?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
[alert show];
}
}
UIAlertView Делегат:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
[[RLMRealm defaultRealm] beginWriteTransaction];
self.model.updated = YES; // Crash: Object has been deleted or invalidated.
[[RLMRealm defaultRealm] commitWriteTransaction];
}
}
Спасибо.
Вместо отправки модели, которую я изменил, чтобы отправить первичный ключ модели, и каждый раз, когда это необходимо, я пытаюсь найти его раньше. Крушение пропало, и он работает правильно, спасибо! –