2013-03-05 2 views
-1

Я новичок в Objective C, поэтому, пожалуйста, простите простоту моего вопроса.Свойства по классам в Objective C

У меня есть класс, позволяет называть его Class A, и это выглядит как этот

@interface A() 
@property (weak, nonatomic) IBOutlet UISegmentedControl *segment; 
@end 

@implementation A 
    ... 

Теперь то, что я хочу сделать, это «получить» сегмент в class B. Я пытался делать это, делая это

@interface B() 
@property (nonatomic) B *cardy; 
@end 

@implementation B 
... 

Затем я хочу сделать cardy.segment, но я не могу показаться, чтобы получить доступ к нему. Я попытался использовать @synthesize в A, но вам нужно точно определить, как правильно реализовать «get». Любые советы будут очень признательны.

+0

Что происходит, когда вы пытаетесь получить к нему доступ? Кроме того, обычно вам не нужно @synthesize с текущими версиями компилятора. Вы получаете getters и сеттеры бесплатно, если у вас есть собственность. – mrueg

+0

Если я попытаюсь сделать, если (* cardy.segment.selectedSegmentIndex == 1), я получаю сообщение об ошибке «использование необъявленных идентифицированных карточек». – user2137032

+1

Что именно вы пытаетесь сделать? Если вы хотите получить доступ к собственности, используйте этот .cardy, но я не вижу, чего вы пытаетесь достичь. Почему кардиан B не A, если a - класс, где сегмент был определен? –

ответ

1

Объявите свойство в файле .h, а не в файле .m. Кроме того, убедитесь, что A.h импортирован в B.m

+0

Все еще борется с этим. Объявил свойство в Ah и импортировал его в Bm, но по-прежнему не может выполнить cardy.segment .. – user2137032

+0

Объявите свойство вроде: @property (неатомное, сильное) B * cardy и получите доступ к нему как: self.cardy.segment или _cardy.segment – Dimitar08