0

-(void)fireメソッドを持つコールバッククラスがあり、
[target performSelector:selector withObject:dictionary];
その行の直前にNSLog(@"%@", [[dictionary class] description]);オブジェクトが変更された場所を確認するために呼び出します。デバッグ時にNSCFDictionaryが返されます。

だからそれはすべて大丈夫だった。次に、同様の行を追加して、呼び出されているメソッド内の引数タイプを取得しました。これで、デバッグ時にNSCFStringが返され、コールバックはNSCFDictionaryをログに記録します。

PerformSelectorを呼び出すと、このオブジェクトがNSStringになる理由はありますか?

4

1 に答える 1

1

performSelector:withObject: を使用する場合、メソッドに渡すことができる引数は 1 つだけです。

performSelector:withObject:withObject: を確認するか、NSInvocation を使用してください。

于 2010-01-21T03:41:30.910 に答える