2012-02-08 98 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

相关问题