こんにちは、エラーの無効なオペランドをバイナリ式 nsstring と id に取得しています。型キャストを使用しても、これは問題のあるコードです。このコードを修正してください。
for (int j = 0 ; j<newarray.count ; j++){
if(j<newarray.count){
message = (NSString *) message + [newarray objectAtIndex:j]+ "," ;
}
}
こんにちは、エラーの無効なオペランドをバイナリ式 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 と評価されるため、不要です。
デフォルトの戻り値の型が「id」の「[newarray objectAtIndex:j]」をキャストする必要があります。
また、IIRC NSString には + オペランドがオーバーロードされていません。[NSString stringWithFormat:] を試してみてください。
あなたはC++NSString
のように振る舞うと仮定しているようです。std::string
これを試して:
NSMutableString *message = ...;
for (unsigned j = 0; j < newarray.count; j++)
{
if (j > 0)
[message appendString:@", "];
[message appendString:[newarray objectAtIndex:j]];
}