嗨我得到errer无效的operends到二进制表达式nsstring和id甚至我使用类型转换这是我有问题的代码。请更正此代码。
for (int j = 0 ; j<newarray.count ; j++){
if(j<newarray.count){
message = (NSString *) message + [newarray objectAtIndex:j]+ "," ;
}
}
答案 0 :(得分:4)
您不能将+
运算符与对象一起使用,对于您的具体情况,您可以用以下代码替换整个循环:
NSString* message = [newarray componentsJoinedByString:@","];
FIY Objective-C根本不支持运算符重载。
答案 1 :(得分:1)
我不确定这是否是你的意图,但如果你试图将新信息附加到以逗号分隔的字符串中,你可以使用以下内容:
for (int j = 0 ; j<newarray.count ; j++){
[message stringByAppendingString:[NSString stringWithFormat:@"%@,",[newarray objectAtIndex:j]]];
}
此外,您的条件if(j<newarray.count)
将始终在此循环中评估为true,因此不必要。
答案 2 :(得分:0)
您应该投射“[newarray objectAtIndex:j]”,其默认返回类型为“id”
IIRC NSString也没有+操作数重载。所以也许你应该尝试[NSString stringWithFormat:]。
答案 3 :(得分:0)
您似乎在C ++中假设NSString
行为类似std::string
。试试这个:
NSMutableString *message = ...;
for (unsigned j = 0; j < newarray.count; j++)
{
if (j > 0)
[message appendString:@", "];
[message appendString:[newarray objectAtIndex:j]];
}