创建一个空的字典,我应该调用
它们有什么区别?
[NSMutableDictionary dictionary]
还是 [[NSMutableDictionary alloc] init]
?它们有什么区别?
[NSMutableDictionary dictionary]
还是 [[NSMutableDictionary alloc] init]
?[NSMutableDictionary dictionary]
等同于[[[NSMutableDictionary alloc] init] autorelease]
为了完整起见,几年后我们找到了另一种分配字典的更短的方式:
NSMutableDictionary* dictionary = @{}.mutableCopy;
区别在于,如果您使用 NSMutableDictionary* myDictionary = [[NSMutableDictionary alloc] init]
,则在完成后必须调用 [myDictionary release]
,否则将会泄漏内存。如果您使用另一种方法,则无需担心内存管理。
使用ARC时,这三个选项没有任何区别:
@{}.mutableCopy
[NSMutableDictionary dictionary]
[[NSMutableDictionary alloc] init]
只有第一个和第二个选项可以根据简洁性或可读性进行证明。