我有一个在里面创建一个块的方法。是否可以从此块返回方法的结果?类似的东西:
- (id)myFunction {
//some code here
BlockType myBlock = ^{
//some other code here
return someObject; //is it possible to return something for myFunction?
};
[someOtherObject methodWithBlock: myBlock];
}
答案 0 :(得分:1)
块可以有返回类型。这是一个例子。
首先定义块类型(可选,但方便)
typedef NSString * (^BlockType)(NSString *name);
^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^
return type type name parameters
然后你可以实例化一个像
这样的块BlockType aBlock = ^ NSString * (NSString *name){
return [@"Hello " stringByAppendingString:name];
};
并使用它
NSString *salutation = aBlock(@"Nikita");
NSLog(@"%@", salutation); // => Hello Nikita