Ios 将整数转换为类型';id';

Ios 将整数转换为类型';id';,ios,Ios,我今天脑子不好。我知道这一定很简单,但我就是不明白 CGFloat *minutes = [self.displayData objectForKey:index]; 不兼容的整数到指针转换将“NSUInteger”(也称为“unsigned int”)发送到“id”类型的参数 索引是循环中的整数(0 1 2 3等) 我怎样才能通过这一关?谢谢。字典等待一个对象作为键(id),而不是普通整数(NSUInteger) 尝试将整数包装到NSNumber对象中 CGFloat *minutes =

我今天脑子不好。我知道这一定很简单,但我就是不明白

CGFloat *minutes = [self.displayData objectForKey:index];
不兼容的整数到指针转换将“NSUInteger”(也称为“unsigned int”)发送到“id”类型的参数

索引
是循环中的
整数
(0 1 2 3等)


我怎样才能通过这一关?谢谢。

字典等待一个对象作为键(
id
),而不是普通整数(
NSUInteger

尝试将整数包装到
NSNumber
对象中

CGFloat *minutes = [self.displayData objectForKey:[NSNumber numberWithUnsignedInteger:index]];

您不应该使用这样的指针:

CGFloat minutes = [self.displayData objectForKey:index];
// after changing the displayData to an array
NSNumber *number = [self.displayData objectAtIndex:index];
CGFloat minutes = [number floatValue];

简单的问题。只是不要使用整数。请执行以下操作,而不是执行此操作:

id index;//then set the index

-objectForKey:method返回类型为
id
的值,但您试图将其分配给CGFloat*,该值与
id
不兼容,因为CGFloat不是类。如果您知道从字典中检索的对象是某种类型的,比如NSNumber,那么您可以在获取它时采取步骤将其转换为CGFloat

此外,您试图使用int作为字典的键,但字典也要求它们的键是对象。如果要通过索引访问对象,请将它们存储在数组中而不是字典中

把所有这些放在一起,你会得到如下结果:

CGFloat minutes = [self.displayData objectForKey:index];
// after changing the displayData to an array
NSNumber *number = [self.displayData objectAtIndex:index];
CGFloat minutes = [number floatValue];

objectForKey:
!=<代码>对象索引: