我需要在块中保留一个变量,因为我必须将它传递给块外的方法。我不知道如何实现这一点。
__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"在街区之外使用? 需要帮助。提前致谢。
答案 0 :(得分:0)
我不知道你的意思"我如何保留" myFile"在街区之外使用?"
performSelector:withObject:afterDelay:
保留接收者和参数,直到执行操作。