我试图确定数组中的一个值并对该数组进行更改,但我一开始就无法访问该数组...
NSNumber *row = [NSNumber numberWithInt:recognizer.view.tag];
NSInteger *newRow = [row integerValue];
NSInteger *index = [selectedItems indexOfObject:row];//0=Not selected 1=selected;
NSLog(@"%@ & ",row);
if (index == 0) {
[selectedItems removeObjectAtIndex:newRow];
[selectedItems insertObject:@"1" atIndex: newRow];
[(UITableViewCell *)(recognizer.view) setAccessoryType:UITableViewCellAccessoryCheckmark];
} else {
[selectedItems removeObjectAtIndex: newRow];
[selectedItems insertObject:@"0" atIndex: newRow];;
[(UITableViewCell *)(recognizer.view) setAccessoryType:UITableViewCellAccessoryNone];
}
你可以看到我正在尝试从变量 `row` 中获取信息,该变量是一个 NSNumber,并查找具有索引变量的数组的值。 我也在我的 onload() 函数中声明了这个变量...
selectedItems = [NSArray arrayWithObjects: 0, 0, 0, nil];
问题是我一直收到这些警告信息说...
Incompatible integer to pointer conversion initializing 'NSInteger *' (aka 'int *') with an expression of type 'NSUInteger' (aka 'unsigned int');
无论何时我使用变量row或newRow。如您所见,newRow只是row作为整数。我做错了什么?
long
的 typedef(即使它不是)。它的大小取决于目标架构。 - Jonathan Grynspan%@
是用于对象的。请使用%d
代替。@Jonathan Grynspan:你说得对。 - user529758