未使用的表达

时间:2012-07-30 17:22:03

标签: objective-c ios5 xcode4.3

新手在这里。在以下代码中:

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

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

3 个答案:

答案 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;
}