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
的强引用,无论如何,您不需要也不应该这样做

我怀疑,如果你的记忆有问题,那是另外一回事,也许问题出在
条上