今天我的大腦讓我失望。我知道這應該是一個簡單的,但我只是沒有看到它。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