我的大脑今天快不行了。我知道这一定很简单,但我就是不明白。
CGFloat *minutes = [self.displayData objectForKey:index];不兼容的整数到指针转换,将'NSUInteger‘(又名’无符号int')发送到'id‘类型的参数
index是循环中的NSUInteger (0,1,2,3等)
我怎么才能通过这个呢?谢谢。
发布于 2012-02-20 19:55:25
字典将对象作为键(id)而不是普通整数(NSUInteger)等待。
尝试将整数包装在NSNumber对象中。
CGFloat *minutes = [self.displayData objectForKey:[NSNumber numberWithUnsignedInteger:index]];发布于 2012-02-20 20:11:22
-objectForKey:方法返回一个类型为id的值,但是您试图将它分配给CGFloat*,因为CGFloat不是一个类,因此CGFloat与id不兼容。如果您知道从字典中检索的对象是特定类型(比如NSNumber ),则可以在得到它时采取步骤将其转换为CGFloat。
此外,您还试图使用int作为字典中的键,但是字典也要求它们的键是对象。如果要按索引访问对象,请将它们存储在数组中而不是字典中。
把这一切加在一起,你就会得到这样的东西:
// after changing the displayData to an array
NSNumber *number = [self.displayData objectAtIndex:index];
CGFloat minutes = [number floatValue];发布于 2012-02-20 19:57:05
您不应该使用这样的指针:
CGFloat minutes = [self.displayData objectForKey:index];https://stackoverflow.com/questions/9367532
复制相似问题