我正在尝试使用另一个数组整数值作为索引来访问数组。
NSInteger index=[appDelegate.randomRiddles objectAtIndex:appDelegate.randomRiddlesCounter];
int i = index;
questionText.text = [[appDelegate.currentRiddlesContent objectAtIndex:i] objectForKey:@"question"];
//where appDelegate.randomRiddlesCounter is an NSInteger and appDelegate.randomRiddles is a NSMutableArray
但是我得到了与int转换警告不兼容的指针。我该如何修复上面的代码呢?我得到的警告来自第一行。
答案 0 :(得分:2)
尝试:
NSNumber *index = [appDelegate.randomRiddles objectAtIndex: appDelegate.randomRiddlesCounter];
int i = [index intValue];
questionText.text = [[appDelegate.currentRiddlesContent objectAtIndex: i] objectForKey: @"question"];
NSInteger是一个整数类型,而不是一个对象。
答案 1 :(得分:0)
试试这个:
int i = [index intValue];
答案 2 :(得分:0)
NSArray like对象只能存储Objective-C对象指针(即可以分配给id的所有内容)
使用objectAtIndex获取对象,使用indexOfObject:(id)anObject获得相应的索引。
这两条指令都有效:
id bla = [appDelegate.randomRiddles objectAtIndex:appDelegate.randomRiddlesCounter];
NSInteger index = [appDelegate.randomRiddles indexOfObject:myObject];
第二个假设myObject至少是id类型 所以你试着将指针转换为int。因此发出警告。