Я пытаюсь обновить сущность своего класса данными с сервера.Поэтому мне нужно присвоить значение себе внутри блока успеха.Когда я использую __weak перед ссылкой блока на себя, я получаю ноль в себе после назначения.И без __слабого у меня есть цикл сохранения.Так можно ли присвоить себе новое значение внутри блока?Если это не так, есть ли другие способы обновить самоценность?
- (void) refreshAssignment:(void (^)())successBlock Error:(void (^)(NSString *errorMessage))errorBlock{ NSString *subUrl = @"/getAssignmentById"; NSDictionary *prs = @{@"assignmentId":self.taskId, @"mask":[NSNumber numberWithInteger:1] }; __block __weak Assignment* Self = self; [[NetworkManager sharedSource] getStandart:prs andUrl:subUrl Success:^(NSDictionary *data) { Self = [[NetworkManager sharedSource] assignmentsWithArray:data[@"data"] Type:Self.type][0]; } Error:^(NSString *errorMessage) { errorBlock(errorMessage); }]; }
Правильный weakSelf шаблон:
weakSelf
__weak typeof(self) weakSelf = self;
Но вы ничего не можете присвоить self.
self
Единственное место, где возможно присвоение self, - метод init.
init
Возможно, вы хотите присвоить результаты свойству в классе.