所以我有这个方法:
-(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添加到我的数组racingLanes。有任何想法吗?
这是属性的设置方式:
@property (strong,nonatomic)NSArray *laneDataObjects;
@property (strong,nonatomic) NSMutableArray *racingLanes;
我已经完成了标记,但它们都有效。标签工作使得通道1是标签0,其数据对象为0,然后通道2为标签1,其数据为1,依此类推。我已经预先测试了这个。我已经检查了两个laneDataObject数组是否已正确设置。是因为我的racingLanes没有使用自定义吸气剂或定位器吗?我该如何改变呢? 因为我使用了
NSLog(@" %i",self.racingLanes.count);
查明数组是否为空。
答案 0 :(得分:1)
几乎可以确定racingLanes
尚未初始化:因为您添加的对象是非零的(否则会看到抛出的异常),racingLanes
必须为{ {1}}然后。
您需要在指定的初始值设定项中将nil
设置为racingLanes
:
NSMutableArray
答案 1 :(得分:0)
您确定在班级的-init
或-viewDidLoad
函数中初始化您的NSMutableArray吗?
// WITH ARC
self.racingLanes = [NSMutableArray array];
// WITHOUT ARC
self.racingLanes = [[NSMutableArray alloc] init];