The*_*Man 16 iphone cocoa-touch objective-c
我正在尝试确定数组中的值是什么,然后在数组上实现更改,但我无法首先访问数组...
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];
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试从行变量获取信息,这是一个NSNumber,并使用索引变量查找数组的值.我也在我的onload()中声明了这个...
selectedItems = [NSArray arrayWithObjects: 0, 0, 0, nil];
Run Code Online (Sandbox Code Playgroud)
问题是我得到所有这些警告说......
Incompatible integer to pointer conversion initializing 'NSInteger *' (aka 'int *') with an expression of type 'NSUInteger' (aka 'unsigned int');
Run Code Online (Sandbox Code Playgroud)
每当我使用varaibles row或newRow时.正如您所看到的,newRow只是一个整数行.我究竟做错了什么?
小智 52
NSInteger只是一个typedef,int所以它不是一个对象类型,它是一个标量,你不必将它声明为指针类型.使用
NSInteger newRow = [row integerValue];
Run Code Online (Sandbox Code Playgroud)
代替.
| 归档时间: |
|
| 查看次数: |
21875 次 |
| 最近记录: |