2012-02-08 69 views
0

我想將一個Object指針作爲參數傳遞給我選擇器,但是,它不會允許我這樣做,有沒有辦法做到這一點?或者有沒有解決方法?如何將一個NSObject指針傳遞給對象C中的選擇器?

我有兩個類,一個類將做些什麼,然後結果反饋給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:

您有三種選擇。

傳遞一個可變的字符串:

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

返回一個字符串:

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

傳遞一個包含的NSString **的NSValue:

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

好主意!謝謝.. – user965241 2012-02-08 21:26:51