将一个类的Object声明为另一个类

时间:2012-05-14 04:09:12

标签: iphone objective-c

我的课程名为Building:

@interface Building : NSObject
@property (nonatomic,retain)NSString* node;
@property (nonatomic,retain)NSString* subnode;
@property (nonatomic,retain)NSString* supernode;
@property (nonatomic,retain)Node *reference;
@end

我有另一个名为Node

的类
@property (nonatomic,retain)NSMutableArray* strArray;
@property (nonatomic,retain)NSString * strName;

我从第三类声明了Building的实例。我使用建筑物的引用从第三类设置了strName:

   building.reference.strName=strVal;

但是这给了我null值。如何通过使用Building类的引用来设置这个值。

1 个答案:

答案 0 :(得分:1)

确保您使用reference的{​​{1}}方法初始化Building。例如(假设-init也直接从Node继承):

NSObject

此外,您可以编写指定的初始化方法,以便在初始化时传入现有节点,例如- (id) init { self.reference = [[Node alloc] init]; return self; } 。然后,您将获得-initWithNode: (Node)myNode的{​​{1}}方法来呼叫Building

然后,要初始化-init对象,您可以调用[self initWithNode:[[Node alloc] init](以获取具有空白节点的建筑物)或Building(以获取已经实例化的节点的建筑物)

请注意,如果Node不直接从NSObject继承(它在自己的[[Building alloc] init]中没有做任何事情),你也应该调用超类[[Building alloc] initWithNode:myNodeObject]例程,这样你的初始化就会变成:

init