相关疑难解决方法(0)

在Objective-C中传递块

在编写接受块作为参数的方法时,是否需要执行任何特殊操作,例如在执行块之前将块复制到堆中?例如,如果我有以下方法:

- (void)testWithBlock:(void (^)(NSString *))block {
    NSString *testString = @"Test";
    block(testString);
}
Run Code Online (Sandbox Code Playgroud)

block在打电话或输入方法之前,我应该做些什么吗?或者上面是使用传入块的正确方法?另外,以下调用方法的方法是正确的,还是应该在传递之前对块执行某些操作?

[object testWithBlock:^(NSString *test){
    NSLog(@"[%@]", test);
}];
Run Code Online (Sandbox Code Playgroud)

在哪里我需要复制块?如果我不使用ARC,这会有什么不同?

objective-c objective-c-blocks automatic-ref-counting

13
推荐指数
2
解决办法
4448
查看次数