Obj-C对象为null

时间:2014-08-30 20:43:56

标签: objective-c forward-declaration

在我的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;

我想这是关于初始化'人',但我不确定。关于问题和解决方案的任何想法?提前谢谢

1 个答案:

答案 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;
}