我定义了一个块,它接受一个并为该字符串NSString
返回一个:NSURL
id (^)(id obj)
我曾经typedef
把它做成一个有名字的块:
typedef id (^URLTransformer)(id);
并且以下方法不起作用:
+ (URLTransformer)transformerToUrlWithString:(NSString *)urlStr
{
return Block_copy(^(id obj){
if ([obj isKindOfClass:NSString.class])
{
NSString *urlStr = obj;
return [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
return nil; // **THIS LINE FAILS**
});
}
错误:
当块文字具有未指定的显式返回类型时,返回类型“void *”必须匹配先前的返回类型“id”
我的问题是:1.如何正确实现方法2.如何实现没有typedef URLTransformer的方法?
谢谢