新手在这里。在以下代码中:
+ (NSString *)descriptionOfProgram:(id)program
{
NSMutableArray *mutableCopyOfProgram = [program mutableCopy];
NSString *descr = @"";
for (int i=0; i<mutableCopyOfProgram.count; i++)
{
descr = [descr stringByAppendingString:(@"%@",[mutableCopyOfProgram objectAtIndex:i])];
}
return descr;
}
我在循环中的代码上不断收到“表达式结果未使用”警告。但是怎么可能,在下一行中我返回表达式结果?
答案 0 :(得分:1)
您收到的警告是因为您应该使用stringByAppendingFormat:
方法而不是stringByAppendingString:
。无论如何,我建议使用NSMutableString
来构建字符串。此外,最好使用[mutableCopyOfProgram count]
代替mutableCopyOfProgram.count
。以下代码适合您:
+ (NSString *)descriptionOfProgram:(id)program
{
NSMutableArray *mutableCopyOfProgram = [program mutableCopy];
NSMutableString *descr = [[NSMutableString alloc] init];
for (int i=0; i < [mutableCopyOfProgram count]; i++)
{
[descr appendFormat:@"%@", [mutableCopyOfProgram objectAtIndex:i]];
}
return descr;
}
答案 1 :(得分:0)
使用stringByAppendingFormat:
代替stringByAppendingString:
当您使用[mutableCopyOfProgram objectAtIndex:i]
时,我认为不会使用stringByAppendingString:
,因此这将是未使用的。
格式类似于@"%@", @"a string"
,而字符串只是@"a string"
,因此如果您要使用格式,请确保使用正确的方法。
答案 2 :(得分:0)
你有一些迷路括号(),也应该使用stringByAppendingFormat:
+ (NSString *)descriptionOfProgram:(id)program
{
NSMutableArray *mutableCopyOfProgram = [program mutableCopy];
NSString *descr = @"";
for (int i=0; i<mutableCopyOfProgram.count; i++)
{
descr = [descr stringByAppendingFormat:@"%@", [mutableCopyOfProgram objectAtIndex:i]];
}
return descr;
}