1

私はこのコードを持っています:

typedef void (^OutputBlockType) (void (^) (NSString*));

static  OutputBlockType outputBlock;


+(void) logMessage:(NSString*) msg {
 NSString* bla = @"bla"; 
 outputBlock(bla);
}

確かに、元のコードはもう少し複雑です。それでも.. Xcode (4.3) はこのコードに満足しておらず、私に

'NSString * _strong ' を互換性のない型 'void (^ _strong)(NSString *__strong)' のパラメーターに渡します。

基本的に、何も教えてくれません。ここで私が間違っていることについて、誰かが手がかりを持っていますか?

4

1 に答える 1

2

メッセージは多かれ少なかれ明確です。ブロックを文字列引数を取るブロックとして宣言しましたが、代わりに文字列を渡しています。

文字列を取るブロックが必要な場合は、次typedefのようになります。

typedef void (^OutputBlockType)(NSString*)
于 2012-07-25T13:22:23.277 に答える