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:の代わりにメソッドを使用する必要があるため、警告が表示されます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"文字列がただのようなものな@"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 に答える