[英]Why am I getting this compiler warning?
使用以下代碼時收到編譯器警告:
for(int i=0; i<[mutableTempArray count]; i++){
//...
[tempInfoDictionary setValue:i forKey:@"tag"];
//...
}
警告是:
傳遞'setValue:forKey:'的參數1使指針從整數開始而無需強制轉換
我在這里做錯了什么?
Objective-C中的集合只能保存對象 ,因此您需要將i
包裝在NSNumber
對象中。
i
本身是原始類型,而不是對象,因此不能將其放在集合對象中。
setValue:forKey:
的第一個參數應該是指針類型,而i
本身顯然不是。
我建議在NSDictionary
上使用setObject:forKey:
方法,而不要使用setValue:forKey:
因為它可以更好地說明您的意圖。 您不僅在存儲值 ,還在存儲對象
[tempInfoDictionary setObject:[NSNumber numberWithInt:i] forKey:@"tag"];
您正在嘗試將int
放入對象數組中,但是它需要一個id
即指針)。 嘗試[tempInfoDictionary setValue:[NSNumber numberWithInt:i] forKey:@"tag"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.