0

我有一个单例类 SharedDataObject,它有另一个类对象 myClass。MyClass 也有 BOOL 变量。我为 MyClass 和 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
4

3 回答 3

0

如果你这样做会发生什么

[SharedDataObject getInstance].myClass.available
于 2011-03-08T21:13:59.093 回答
0

如果我理解你的话,你的 myClass 是你的 SharedDataObject 类的一个类属性,所以你不能访问它,因为它是一个实例属性。

你能给我们提供类的完整声明吗?

[[SharedDataObject myClass] available]

作品?

于 2011-03-08T21:19:58.983 回答
0

检查这个:

  1. 包括 .h 为MyClass
  2. 单例的 myClass 属性返回MyClass*,而不是一些基类(在更新问题中回答)
于 2011-03-08T21:34:05.957 回答