我在iPhone应用程序,将构建工作的对象,在运行时,一个NSMutableDictionary针对(键值对)的值将是NSMutableArrays。作为有点新的Objective-C的,我所关注的是,以下将导致内存泄漏:当释放添加到一个NSMutableDictionary
- (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)的键值对中的对象是否为零。如果它是零,我分配一个新的NSMutableArray并将其设置为该键的对象,然后释放它。假设我在包含此方法的类的dealloc中释放了NSMutableDictionary,那么这些引用是否会被释放?在释放NSMutableDictionary之前,我是否需要遍历它并释放包含在内的个别NSMutableArrays?
感谢,
奔B.
,我要补充的完整性,该方法是不完整的;我只是展示了我创建NSMutableArrays的方法。 – 2010-01-18 19:43:00