Мне нужно сохранить переменную внутри блока, потому что я должен передать ее методу из блока. Я не знаю, как это достичь.iOS какао сохранить переменный блок
__weak MyClass *weakSelf = self;
[myFile addObserver:self block:^
{
if ([[[weakSelf myFile] newerStatus] cached])
{
[weakSelf performSelector:@selector(myMethod:) withObject:weakSelf.myFile afterDelay:5];
}
}];
Я попытался также сделать это, но не успех:
__block DBFile *myFileFinal;
__weak MyClass *weakSelf = self;
[myFile addObserver:self block:^
{
if ([[[weakSelf myFile] newerStatus] cached])
{
__strong MyClass *strongSelf = weakSelf;
myFileFinal = strongSelf.myFile;
[weakSelf performSelector:@selector(myMethod:) withObject:myFileFinal afterDelay:5];
}
}];
Как я могу сохранить «Myfile» для использования вне блока? Нужна помощь, пожалуйста. Заранее спасибо.
Использование ivar недостаточно? – Imotep
Извините im new in objetive c. Что такое ivar? – user3065901
Вы уверены, что не устанавливаете 'myFile' нигде в другом месте? Возможно, вы хотите передать '[myFile copy]'. –