如何在iOS中初始化整数?

时间:2013-01-09 08:05:01

标签: ios objective-c

我定义

@property (nonatomic, assign) int currentUserNum;
@property (nonatomic, assign) BOOL isAlive;
@interface MyClass

中的

并在-init

中定义了@implementation MyClass方法
@synthesize currentUserNum, isAlive;
-(id) init {
  if (self = [super init])  {
     self.currentUserNum = 0;
     self.isAlive = YES;
  }
  return self;
}

self.currentUserNum = 0;已崩溃,但self.isAlive = YES;可以正常工作!它们都是assign属性。

我想知道为什么?谢谢!

1 个答案:

答案 0 :(得分:5)

您的init方法缺少很多重要的代码。

- (id)init {
    if ((self = [super init])) {
        _currentUserNum = 0; // it's not wise to reference properties in the init method
    }

    return self;
}

每个init方法都应遵循此基本模式。您为self分配了调用相应super init或其他self init的值。如果那不是nil,那么您可以执行适当的初始化代码,最后返回self