我目前正在学习Objective-C,这也是我第一次涉足编程,请多多包涵。
我有一个简单的对象叫做XYZPerson,它保存一个人的名字、姓氏和他或她伴侣的引用,伴侣也是一个XYZPerson对象。
以下是我在XYZPerson的头文件中声明的内容:
@interface XYZPerson : NSObject
@property (nonatomic, copy) NSString *firstName;
@property (nonatomic, copy) NSString *lastName;
@property (nonatomic, weak) XYZPerson *partner;
@end
在实现中,我写了这个:
- (void)setPartner:(XYZPerson *)aPartner
{
_partner = aPartner;
aPartner.partner = self;
}
但是在main()函数中,每当我调用personMale.partner = personFemale;
时,它会创建一个无限循环。
我认为我知道原因了(因为aPartner.partner调用setPartner,而setPartner又会调用自己),但我找不到一个优雅的解决方案来解决这个问题。
任何帮助 - 包括如何工作的解释 - 都将不胜感激!
非常感谢!