可重复使用的NSMutableDictionary

问题描述:

有人在论坛上提出的我,真是棒极了代码的解决方案,但我的理解,我想知道是什么样的代码的2块之间的区别:可重复使用的NSMutableDictionary

1座

NSMutableDictionary* step_info = [NSMutableDictionary dictionary]; 

块2

NSMutableDictionary* step_info = nil; 
step_info = [NSMutableDictionary dictionary]; 

它可以是同样重要的是提到step_info必须被填充和重用反复加载到另一个的NSMutableDictionary。

感谢您的帮助

+0

我responsed到其他问题。这只是我初始化变量到某个已知状态的个人风格。在这种情况下不需要。更复杂的变量或结构可能更有意义。 这与iPhone编程和C编程和风格更不相关。 – 2010-02-03 18:16:51

无。编译器会优化step_info = nil,并且您剩下的代码完全相同。

下面是另一种方法,你可以采取:

NSMutableDictionary *step_info; 
step_info = [NSMutableDictionary dictionary]; 
+0

好的,这里我的问题再次: 如果我使用该行代码step_info = [NSMutableDictionary dictionary]; 多次在我的程序中的不同位置,它对我的​​step_info NSMutabledicstionnary有什么作用? – user261874 2010-02-03 17:49:59

+1

@gpsdev:以前的'step_info'字典一旦被覆盖就不再可用,填满了autorelease池。 – kennytm 2010-02-03 18:13:41

NSMutableDictionary* step_info;首先让你在相同的代码块以后使用step_info = [NSMutableDictionary dictionary]

如果您希望以多种方式为step_info指定一个值,那么在头文件的@interface部分中添加NSMutableDictionary* step_info会更好。

这样,你可以用任何方法在实现文件中使用step_info = [[NSMutableDictionary alloc] init],然后分配值和键是这样的:[step_info setValue: value forKey: key];