我正在开发一个 iPhone 应用程序,它将在运行时构造一个 NSMutableDictionary,其值(键值对的)将为 NSMutableArrays。作为 Objective-C 的新手,我担心以下内容会导致内存泄漏:
- (void) addNewSupplierPhoto:(UIImage*)image toSupplierID:(NSInteger*) supplierID{
NSMutableArray* supplierPhotoArray = [supplierPhotos objectForKey:supplierID];
if(supplierPhotoArray == nil)
{
supplierPhotoArray = [[NSMutableArray alloc] init];
[supplierPhotos setObject:supplierPhotoArray forKey:supplierID];
[supplierPhotoArray release];
}
}
SupplierPhotos 是一个 NSMutableDictionary,它是包含类的成员变量。
如您所见,当我接受一个新的 UIImage* 放入结构时,我首先检查与第二个参数 (supplierID) 对应的键值对处的对象是否为 nil。如果它是 nil,我分配一个新的 NSMutableArray 并将其设置为该键的对象,然后释放它。假设我在包含此方法的类的 dealloc 中释放 NSMutableDictionary,引用会被释放吗?在释放 NSMutableDictionary 之前,我是否需要遍历它并释放其中包含的各个 NSMutableArrays?
谢谢,
本·B。