Я предполагаю, что ваш EMUserInfoOperation
объект имеет строгую ссылку на блок, с которым создана операция.И этот блок также имеет сильную ссылку на объект EMUserInfoOperation
, поскольку он захватывает переменную operation
.Таким образом, у вас есть цикл сохранения.
Блок можно слабо ссылаться на объект EMUserInfoOperation
, выполнив следующие действия:
EMUserInfoOperation* operation;
__block __weak typeof(operation) weakOperation;
weakOperation = operation = [EMUserInfoOperation blockOperationWithBlock:^{
typeof(operation) strongOperation = weakOperation;
if (strongOperation) {
// ...
strongOperation.userInfo = model;
}
}];
return operation;