簡體   English   中英

二進制表達式nsstring和id的無效操作數

[英]invalid operands to binary expression nsstring and id

您好,即使我使用類型轉換,我也會得到錯誤的無效操作符,以二進制表達式nsstring和id表示,這是我遇到問題的代碼。 請更正此代碼。

for (int j = 0 ; j<newarray.count ; j++){
        if(j<newarray.count){
 message = (NSString *) message + [newarray objectAtIndex:j]+ "," ;
        }
    }

您不能對對象使用+運算符,對於您的特定情況,可以將整個循環替換為:

NSString* message = [newarray componentsJoinedByString:@","];

而且FIY Objective-C根本不支持運算符重載。

我不確定這是否是您的意圖,但是如果您嘗試將新信息附加到用逗號分隔的字符串中,則可以使用以下內容:

for (int j = 0 ; j<newarray.count ; j++){
    [message stringByAppendingString:[NSString stringWithFormat:@"%@,",[newarray objectAtIndex:j]]];
}

另外,您的條件if(j<newarray.count)在此循環中將始終為true,因此是不必要的。

您應該轉換“ [newarray objectAtIndex:j]”,其默認返回類型為“ id”

檢查一下

另外,IIRC NSString沒有+操作數重載。 因此,也許您應該嘗試[NSString stringWithFormat:]。

您似乎假設NSString行為類似於C ++中的std::string 嘗試這個:

NSMutableString *message = ...;
for (unsigned j = 0; j < newarray.count; j++)
{
    if (j > 0)
        [message appendString:@", "];
    [message appendString:[newarray objectAtIndex:j]];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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