我今天刚刚快速玩积木,我遇到了错误:
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?