2012-02-08 4 views
0

オブジェクトポインタをパラメータとして私のセレクタに転送したいのですが、それを実行することはできませんが、それを行うにはどうしますか?またはここに回避策がありますか?オブジェクトCのセレクタにNSObjectポインタを転送するにはどうすればよいですか?

私は2つのクラスを持っています、クラスは何かを行い、結果はBクラスにフィードバックします。

私は、インスタンスに今何をやっている:


    MyObject *b; 
    [b addTarget:self withSelector:@selector(dosomething:) ]; 
    -(void)dosomething:(NSString **)string 
    { 
        *string="some thing is implemented"; 
    } 
    B instance: 
    { 
    NSString *mystring; 
        [a performSelector:dosomething withObject:&mystring]; 
    } 

感謝を。

答えて

1

有効なObjective-Cオブジェクトは-performSelector:withObject:にしか渡すことができません。

3つのオプションがあります。

可変文字列を渡します文字列

- (void)doSomething:(NSMutableString*)foo 
{ 
    [foo setString:@"Hello"]; 
} 

戻る:

- (void)doSomething:(NSValue*)value 
{ 
    NSString** stringPointer = (NSString**)[value pointerValue]; 
    *stringPointer = @"Hello"; 
} 
+0

素晴らしいアイデア:

- (NSString*)doSomething { return @"Hello"; } 

NSStringの**が含まれているNSValueを渡します!ありがとう.. – user965241

関連する問題