KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I was just quickly playing with blocks today and I came across the error: 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 As I really wanted to return nil if "1" or "2" were not input I decided to simply cast the final return back to an NSString using: NSString *(^testBlock)(int) = ^(int option) { if (option == 1) return @"ONE"; if (option == 2) return @"TWO"; return (NSString *) nil; }; This works just fine, I was just curious if this was the correct solution or even bad practice as I have never thought about casting nil before?
Tags (comma-separated)
Save Edits
Cancel