以下のコードを関数で使用して、辞書オブジェクトの配列を返そうとしています。残念ながら、スタック内の次の関数に戻った後、可変配列内のすべての行が「スコープ外」になりました。私の理解では、配列は行(ディクショナリ)オブジェクトを自動的に保持する必要があるため、行ポインターがスコープ外になった場合でも、行オブジェクトの保持カウントは1のままです。ここで何が間違っているのでしょうか。含まれているオブジェクトが解放されないようにこの配列を構築するにはどうすればよいですか?
for (int i = 1; i < nRows; i++)
{
NSMutableDictionary* row = [[[NSMutableDictionary alloc] initWithCapacity:nColumns] ];
for(int j = 0; j < nColumns; j++)
{
NSString* key = [[NSString stringWithUTF8String:azResult[j]] ];
NSString* value = [[NSString stringWithUTF8String:azResult[(i*nColumns)+j]] ];
[row setValue:value forKey:key];
}
[dataTable addObject:row];
}
return dataTable;