今天我的大脑让我失望。我知道这应该是一个简单的,但我只是没有看到它。ios NSUinteger输入'id'
CGFloat *minutes = [self.displayData objectForKey:index];
不相容整数指针转换发送 'NSUInteger'(又名 '无符号整型')至类型的 'id'
index
是在一个循环中一个NSUInteger
的参数,(0 1 2 3等)
我该如何克服这一点?谢谢。
今天我的大脑让我失望。我知道这应该是一个简单的,但我只是没有看到它。ios NSUinteger输入'id'
CGFloat *minutes = [self.displayData objectForKey:index];
不相容整数指针转换发送 'NSUInteger'(又名 '无符号整型')至类型的 'id'
index
是在一个循环中一个NSUInteger
的参数,(0 1 2 3等)
我该如何克服这一点?谢谢。
字典等待一个对象作为键(id
)而不是一个纯整数(NSUInteger
)。
尝试将整数包装在NSNumber
对象中。
CGFloat *minutes = [self.displayData objectForKey:[NSNumber numberWithUnsignedInteger:index]];
你不应该使用指针这样的:
CGFloat minutes = [self.displayData objectForKey:index];
简单的问题。只是不要使用NSUIntegrer。取而代之的是,请执行下列操作:
id index;//then set the index
的-objectForKey:方法返回id
类型的值,但是你要赋值给一个CGFloat的*,这是不符合id
因为CGFloat的ISN兼容一个班级。如果您知道从字典中检索的对象是某种类型(例如NSNumber),则可以在获取它时采取措施将其转换为CGFloat。
也,你试图使用一个int作为一个字典的关键,但字典要求他们的键也是对象。如果您想通过索引访问您的对象,请将它们存储在数组中而不是字典中。
全部放在一起,你有这样的事情:
// after changing the displayData to an array
NSNumber *number = [self.displayData objectAtIndex:index];
CGFloat minutes = [number floatValue];
'objectForKey:'='objectAtIndex:!' – 2012-02-20 19:55:57