在我的iOS应用程序中,我在AddPersonViewController类中有“Person”类的前向声明,如下所示。
@protocol PersonAddDelegate;
@class Person;
@interface AddPersonViewController : UIViewController
@property (nonatomic, unsafe_unretained) id <PersonAddDelegate> delegate;
@property (nonatomic, strong) Person * person;
@end
@protocol PersonAddDelegate <NSObject>
- (void)AddPersonViewController:(AddPersonViewController *)addPersonViewController didAddPerson:(Person *)person;
@end
但是当我尝试从代码中调用person对象时,我发现即使self.nameTextField.text按预期返回字符串,该人也是nil:
self.person.personname = self.nameTextField.text;
我想这是关于初始化'人',但我不确定。关于问题和解决方案的任何想法?提前谢谢
答案 0 :(得分:1)
使用@property为你提供支持iVar _person
,以及person getter方法和setPerson setter方法,但是你没有获得Person对象。它默认为零和设计。如果你想要它是非零的,你应该在类的init方法中初始化它。
@implementation AddPersonViewController
-(id)init {
if ( self = [super init] ) {
_person = [[Person alloc] init];
}
return self;
}