Правильный метод доступа к свойствам объектов внутри других объектов в Objective-C - PullRequest
0 голосов
/ 09 марта 2011

У меня есть SharedDataObject класса Singleton, у которого есть другой объект класса myClass.MyClass также имеет переменные BOOL.Я предоставил методы доступа (nonatomic, retain) для MyClass и (assign, readwrite) для переменных экземпляра myClass.Я также синтезировал каждый из них.Но когда я получаю доступ к ним для чтения значения или записи значения с помощью

[[SharedDataObject getInstance].myClass available];

ИЛИ

[[SharedDataObject getInstance].myClass setAvailable:YES];

Это дает мне следующее предупреждение:

 no 'available:' method found
 no 'setAvailable' method found

Но я могу читатьи записать в него значения.Я хочу удалить предупреждения.Что я делаю неправильно?Или если это неправильный способ доступа к нему?

Объявления класса:

@interface SharedDataObject : NSObject {
    MyClass *myClass;
}
@property (nonatomic, retain) MyClass *myClass;

+ (SharedDataObject*) getInstance;

@end


@interface MyClass : NSObject {
    BOOL available;
}
@property (assign, readwrite) BOOL available;

@end

Ответы [ 3 ]

0 голосов
/ 09 марта 2011

Если я вас хорошо понял, ваш myClass является свойством класса вашего класса SharedDataObject, поэтому вы не можете получить к нему доступ, так как это было свойством экземпляра.

Можете ли вы предоставить нам полное объявлениеклассы?

Работает ли

[[SharedDataObject myClass] available]

?

0 голосов
/ 09 марта 2011

Проверьте это:

  1. Включите .h для MyClass
  2. Свойство myClass синглтона возвращает MyClass*, а не некоторый базовый класс (ответил в обновлении на вопрос)
0 голосов
/ 09 марта 2011

Что произойдет, если вы сделаете

[SharedDataObject getInstance].myClass.available
...