簡體   English   中英

為什么會收到此編譯器警告?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM