【发布时间】:2013-01-10 13:23:43
【问题描述】:
我今天刚刚快速玩积木,我遇到了错误:
NSString *(^testBlock)(int) = ^(int option) {
if (option == 1) return @"ONE";
if (option == 2) return @"TWO";
return nil;
};
NSLog(@"OUTPUT: %@", testBlock(4));
Return type 'void *' must match previous return type 'NSString *' when block literal has unspecified explicit return type
如果没有输入“1”或“2”,我真的想返回 nil,因此我决定简单地将最终返回值转换回 NSString,使用:
NSString *(^testBlock)(int) = ^(int option) {
if (option == 1) return @"ONE";
if (option == 2) return @"TWO";
return (NSString *) nil;
};
这很好用,我只是好奇这是否是正确的解决方案,甚至是不好的做法,因为我以前从未考虑过强制转换 nil?
【问题讨论】:
-
感谢 Sulthan 重新格式化代码。
标签: iphone objective-c cocoa-touch objective-c-blocks