简单的NSInteger和NSMutableArray问题

时间:2011-08-12 21:35:51

标签: objective-c arrays

我正在尝试使用另一个数组整数值作为索引来访问数组。

 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转换警告不兼容的指针。我该如何修复上面的代码呢?我得到的警告来自第一行。

3 个答案:

答案 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。因此发出警告。