在编写接受块作为参数的方法时,是否需要执行任何特殊操作,例如在执行块之前将块复制到堆中?例如,如果我有以下方法:
- (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,这会有什么不同?