Я пытаюсь использовать приведенный ниже код в функции для возврата массива объектов словаря. К сожалению, после возврата к следующей функции в стеке все строки в изменяемом массиве стали «недоступными». По моему мнению, массив должен автоматически сохранять объект строки (словаря) так, что даже после возвращения, где указатель строки выходит за пределы области видимости, объекты строки должны по-прежнему иметь счет сохранения 1. Что я здесь делаю неправильно? Как я могу построить этот массив таким образом, чтобы содержащиеся в нем объекты не освобождались?Объекты NSArray выходят из области видимости после возврата указателя
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;
Пожалуйста, переформатируйте этот код (для удобочитаемости) и покажите нам, как вы создаете и поддерживаете dataTable. –
Почему вы подразумеваете под «вне сферы действия»? Почему вы так странно используете NSMutableDictionary? – unbeli
Как объявляется/определено dataTable? –