Как я могу присвоить значение себе внутри блока? - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь обновить сущность своего класса данными с сервера.Поэтому мне нужно присвоить значение себе внутри блока успеха.Когда я использую __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);
}]; }

1 Ответ

0 голосов
/ 28 марта 2019

Правильный weakSelf шаблон:

__weak typeof(self) weakSelf = self;

Но вы ничего не можете присвоить self.

Единственное место, где возможно присвоение self, - метод init.

Возможно, вы хотите присвоить результаты свойству в классе.

...