0

私の質問はこれです。以下のコードでは、2 番目のパラメーターは aNSString*であり、配列からオブジェクトを再帰的に取得し、それらをbuildDescriptionパラメーターに追加するstringByAppendingFormatときに、ヒープ上に新しいオブジェクトを作成するメソッドを使用します。パラメータに変更可能な文字列があり、他の方法を使用して新しい変数を追加した方がよいでしょうか? Obj-C のすべてのオブジェクトはヒープ上に作成されるため、これは再帰を行うための推奨される方法であり、両方のアプローチの利点は何ですか? もちろん、変更可能なオブジェクトにポインターを渡すだけで、必要なメモリが少なくなります。

+ (NSString *)makeDescriptionRecur:(NSMutableArray *)stack: (NSString *) buildDescription
{
    id topOfStack = [stack lastObject];
    if (topOfStack) [stack removeLastObject];

    if ([topOfStack isKindOfClass:[NSNumber class]])
    {
        return [self makeDescriptionRecur:stack:
               [buildDescription stringByAppendingFormat:@"%@ ", topOfStack]];

    } else if  ([topOfStack isKindOfClass:[NSString class]]) {
4

1 に答える 1

1

パラメータに変更可能な文字列があり、他の方法を使用して新しい変数を追加した方がよいでしょうか?

少なくともそれはO(n ^ 2)メモリを必要としませんO(n)。もう少し「最適」かもしれません。

于 2013-01-30T20:19:03.833 に答える