在Objective-C中访问其他对象内对象属性的正确方法

时间:2011-03-08 21:08:28

标签: objective-c ipad class-variables

我有一个Singleton类SharedDataObject,它有另一个类对象myClass。 MyClass也有BOOL变量。我为MyClass提供了访问器(非原子,保留),并为myClass实例变量提供了(assign,readwrite)。我也合成了它们中的每一个。但是当我访问它们以读取值或用

写入值时
[[SharedDataObject getInstance].myClass available];

OR

[[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 :(得分:0)

如果你这样做会怎样?

[SharedDataObject getInstance].myClass.available

答案 1 :(得分:0)

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

您能否向我们提供课程的完整声明?

[[SharedDataObject myClass] available]

作品?

答案 2 :(得分:0)

检查一下:

  1. 包括MyClass
  2. 的.h
  3. 单例的myClass属性返回MyClass*,而不是某些基类(在更新时回答问题)