我正在尝试在函数中使用以下代码来返回字典对象数组。不幸的是,在返回堆栈中的下一个函数后,可变数组中的所有行都“超出范围”。根据我的理解,数组应该自动保留行(字典)对象,所以即使在返回之后,行指针超出范围,行对象的保留计数仍然应该为 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;