Как передать указатель NSObject на селектор в объекте C? - PullRequest
0 голосов
/ 09 февраля 2012

Я хочу передать указатель объекта в качестве параметра на мой селектор, однако, он не позволит мне сделать это, в любом случае, сделать это?или здесь есть какой-то обходной путь?

У меня есть два класса, класс A что-то сделает, а затем результат вернется в класс B.

что я делаю сейчас в экземпляре A:


    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 Ответ

1 голос
/ 09 февраля 2012

Вы можете передать только действительный объект Objective C в -performSelector:withObject:.

У вас есть три варианта.

Передайте изменяемую строку:

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

Вернуть строку:

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

Передать NSValue, которая содержит NSString **:

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