+(NSMutableDictionary*)getList:(NSString *)key 调用时 Instruments中偶尔提示内存泄漏 指向 请教问题出在哪里? |
|
11分 |
+(NSMutableDictionary*)getList:(NSString *)key { //使用autorelease [NSMutableDictionary *dict=[[NSMutableDictionary alloc] initWithContentsOfFile:key] autorelease]; return dict; } |
+(NSMutableDictionary*)getList:(NSString *)key { //使用autorelease NSMutableDictionary *dict=[[[NSMutableDictionary alloc] initWithContentsOfFile:key] autorelease]; return dict; } |
|
22分 |
1,NSMutableDictionary *obj = [self getList:key];
[obj.release]; 是不对的,肯定报错的 因为(getList:)是+ 2,代码在释放池中的话,可以返回 autorelease |
使用autorelease会报错 obj为空
我现在需要obj持久保持的 |
|
我指的obj为空 是在窗口切换后为空 第一次加载时数据是有的.
|
|
11分 |
obj 设置为类中的成员变量,
obj=[[NSMutableDictionary alloc] init]; obj=[self getlist:key]; 试试看。 |
补充一点。。
在该方法内,记得obj release 一次。 dealloc 中,也要release 一次 |
|
22分 |
最佳写法:
+(NSMutableDictionary*)getList:(NSString *)key 记得外部不需要release了。 |