0

新手来了 在以下代码中:

+ (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;
}

我不断在循环中的代码上收到“未使用的表达式结果”警告。但是,当我在下一行返回表达式结果时,怎么可能呢?

4

3 回答 3

1

您收到的警告是因为您应该使用stringByAppendingFormat:method 而不是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;
}
于 2012-07-30T17:51:42.840 回答
0

使用stringByAppendingFormat:而不是stringByAppendingString:

我不认为[mutableCopyOfProgram objectAtIndex:i]你使用时使用过stringByAppendingString:,所以那将是未使用的。

格式类似于@"%@", @"a string"while 字符串 is just @"a string",因此如果要使用格式,请确保使用正确的方法。

于 2012-07-30T17:31:53.007 回答
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;
}
于 2012-07-30T17:51:30.530 回答