NSInteger参数无效值

时间:2011-10-06 17:36:03

标签: objective-c nsinteger

我有以下课程:

  @interface MyObj : NSObject {

      NSInteger _x;
      NSInteger _y;
      ....
  }

  @property(nonatomic, readonly) NSInteger x;
  @property(nonatomic, readonly) NSInteger y;
  ....

  - (id)initWithX:(NSInteger)posX Y:(NSInteger)posY;

和实施:

  @implementation MyObj
  @synthesize x = _x;
  @synthesize y = _y;

  - (id)initWithX:(NSInteger)posX Y:(NSInteger)posY{
       self = [super init];
       _x = posX;
       _y = posY;
       return self;
  }

我正在尝试初始化MyObj的数组:

    for (NSInteger y=0; y<5; ++y) {

    NSMutableArray *rowContent = [[NSMutableArray alloc] init];

    for (NSInteger x=0; x<5; ++x) {

        MyObj *myObj = [[MyObj alloc] initWithX:x Y:y];
                    ....
                    [rowContent addObject:myObj];

对于第一次迭代,当x = 0时,y = 0 myObj按预期创建, 但是当函数initWithX中x = 1,y = 0时,我看到'posX'参数值是1065353216。 所以我用ivar _x = 1065353216得到了无效的myObj对象。 我不明白为什么会这样呢?

0 个答案:

没有答案