私の質問はこれです。以下のコードでは、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]]) {