要创建一个空字典,[NSMutableDictionary dictionary]或[[NSMutableDictionary alloc] init]?

Ste*_*Hsu 17 cocoa objective-c

要创建一个空字典,我应该打电话[NSMutableDictionary dictionary]还是[[NSMutableDictionary alloc] init]

有什么不同?

Tyl*_*don 30

[NSMutableDictionary dictionary] 是相同的 [[[NSMutableDictionary alloc] init] autorelease]

  • @Stephen:??? 你为什么这么想?当然,在很多情况下,你可能最好在你完成它们之后立即释放东西,但是你也可以在紧密循环中每n个循环之后杀死自动释放池以管理内存使用.然而,正如你所说,你的评论过于笼统而不实. (5认同)
  • 谢谢.对于iPhone编程,我认为[[NSMutableDictionary alloc] init]是首选. (4认同)

Cod*_*bat 7

不同之处在于,如果你使用它, NSMutableDictionary* myDictionary = [[NSMutableDictionary alloc] init] 你必须 [myDictionary release] 在完成后再打电话.否则你会泄漏内存.如果您使用其他方法,则不必担心内存管理.


die*_*ter 7

为了完整起见,几年后我们得到了另一种更短的方式来分配词典:

NSMutableDictionary* dictionary = @{}.mutableCopy;
Run Code Online (Sandbox Code Playgroud)