を受け取り、その文字列に対して を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なしでメソッドを実装する方法は?
ありがとう