我的课程名为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类的引用来设置这个值。
答案 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