3

所以我有这个方法:

-(void)addLaneToRacingLanes:(UITapGestureRecognizer*)sender{


    laneDataObject *data=[self.laneDataObjects objectAtIndex:sender.view.tag];
    [self.racingLanes addObject:data];


    NSLog(@"%i",self.racingLanes.count);
    [sender.view setBackgroundColor:[UIColor yellowColor]];

}

它使用发件人视图中的标签来找出与该视图对应的数据对象。我正在使用它来添加到我的racingLanes,这是我更新这些视图的方式,但我的问题是由于某种原因我无法添加我的laneDataObjects到我的阵列赛车车道。有任何想法吗?

这是设置属性的方式:

@property (strong,nonatomic)NSArray *laneDataObjects;
@property (strong,nonatomic) NSMutableArray *racingLanes;

我已经浏览了这些标签,它们都可以工作。标签工作时,通道 1 为标签 0,其数据对象为 0,然后通道 2 为标签 1,其数据为 1,依此类推。我已经预先测试过了。我已经检查了两个 laneDataObject 数组是否已正确设置。是因为我的racingLanes 没有使用自定义的getter 或setter 吗?我将如何改变它?万一这很重要,我用过

NSLog(@" %i",self.racingLanes.count);

找出数组是否为空。

4

2 回答 2

1

几乎可以肯定的是,racingLanes尚未初始化:因为您添加的对象不是零(否则您会看到抛出异常),那么racingLanes必须是nil

您需要在指定的初始化程序中设置racingLanes为:NSMutableArray

_racingLanes = [NSMutableArray array];
于 2012-11-25T02:49:26.853 回答
0

你确定在你的类-init-viewDidLoad函数中初始化你的 NSMutableArray 吗?

// WITH ARC
self.racingLanes = [NSMutableArray array];

// WITHOUT ARC
self.racingLanes = [[NSMutableArray alloc] init];
于 2012-11-25T02:52:02.423 回答