Objective c 如何在块中保持对参数的引用?
我正在将一个参数传递给一个函数,我需要将它的引用保存在一个块中。稍后将执行该块。如果我不持有此引用,则在函数执行时会出现无效内存访问崩溃Objective c 如何在块中保持对参数的引用?,objective-c,block,objective-c-blocks,Objective C,Block,Objective C Blocks,我正在将一个参数传递给一个函数,我需要将它的引用保存在一个块中。稍后将执行该块。如果我不持有此引用,则在函数执行时会出现无效内存访问崩溃 - (void)doSomethingWithParamter:(Foo *)foo { [Bar setCompletionHandler:^{ // access foo here. }]; } 我尝试使用对foo的强引用作为\uuuuutypeof(foo)*strongFoo=weakFoo其中weakFoo是\uu
- (void)doSomethingWithParamter:(Foo *)foo
{
[Bar setCompletionHandler:^{
// access foo here.
}];
}
我尝试使用对foo
的强引用作为\uuuuutypeof(foo)*strongFoo=weakFoo代码>其中weakFoo
是\uuuu弱型(Foo)*weakFoo=Foo代码>
我遗漏了什么吗?你不需要你正在做的任何事情。仅按原样访问,例如
- (void)doSomethingWithParamter:(Foo *)foo
{
[Bar setCompletionHandler: ^ {
[foo doSomething];
}];
}
这样,块将保留对foo
的强引用,无论如何,您不需要也不应该这样做
我怀疑,如果你的记忆有问题,那是另外一回事,也许问题出在条上