currentSettings
- ivar
settings
- 方法的参数
这是通常多次执行的方法。 ARC已启用。
currentSettings = [[NSMutableDictionary alloc]init];
currentSettings = settings;
这段代码有什么问题吗?
答案 0 :(得分:3)
没有泄漏,如果没有启用ARC,这只会泄漏(因为那时你会松开指向创建的NSMutableDictionary
的指针)。但是因为ARC已启用,所以您只是简单地分配和释放字典,因为currentSettings
实例变量将在设置新值时释放其先前的值。
总而言之,您不需要第一行。默认情况下,实例变量为strong
,因此它将处理(保留)方法参数。
答案 1 :(得分:0)
您的第一行是创建一个新词典,当您在设置中指向currentSettings时,该词典会被丢弃。启用ARC后,我不认为它会泄漏内存(空字典会被释放),但它也没有做任何事情。