将值设置为类对象,该类对象是另一个类的属性 - 目标c

时间:2017-05-02 11:06:14

标签: ios objective-c xcode

我很难表达我的问题所以我会写一个简单的例子。我有2个班,MyclassA和MyclassB。

@interface MyclassA
@property (nonatomic, assign) int *ID;
@property (nonatomic, strong) MyclassB *secondclass;
@end

@implementation MyclassA

-(id)init
{
self.ID = 1;
MyclassB *sec = [[MyclassB alloc] init];
sec.age = 10;
sec.weight = 35;
self.secondclass = sec;

return self;
}

MyclassB:

@interface MyclassB
@property (nonatomic, assign) int age;
@property (nonatomic, assign) int weight;
@end

当我在

处放置一个断点时
return self;

self.secondclass的值为null。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您正在创建MyClassB的新对象。您应该在secondClass方法中初始化属性init,而不是分配另一个MyClassB实例的引用。

-(id)init
{
  self.ID = 1;
  self.secondclass = [[MyclassB alloc] init];
  self.secondclass.age = 10;
  self.secondclass.weight = 35;

  return self;
}

答案 1 :(得分:0)

替换此行

MyclassB *sec = [[MyclassB alloc] init];

使用

self.secondclass  = [[MyclassB alloc] init];

答案 2 :(得分:0)

 self.secondclass = [[MyclassB alloc] init];

正确分配