2011-12-10 215 views
0

可能重复:
Diference between [NSMutableArray array] vs [[NSMutableArray alloc] init]初始化对象

使用Objective-C /可可,有什么区别:

NSMutableData *myData = [NSMutableData data]; 
NSMutableString *myString = [NSMutableString string]; 

NSMutableData *myData = [[NSMutableData alloc] init]; 
NSMutableString *myString = [[NSMutableString alloc] init]; 

据我所知,他们似乎有同样的最终结果?

+2

看看[“Object Creation”](http://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/ObjectCreation.html#//apple_ref/doc/uid/ TP40008195-CH39-SW1)在可可核心能力指南。 –

+1

看@苹果记忆指南 - 重要阅读。 alloc,copy,mutableCopy意味着你拥有它并且你需要释放。其他任何东西(通过约定)都会调用autorelease,并在下一个周期发布... – bryanmac

+1

如果您需要坚持自动发布超出您获得它的函数范围的内容,那么您应该保留它,然后再发布。 – bryanmac

回答

-1

[NSMutableData数据]被称为一个帮手,检查这个帖子,Helper functions in Cocoa

助手一般照顾内存管理你的,也可以用来恢复单身。

[[NSMutableData] alloc] init],你负责内存管理。

虽然如果您使用的是ARC,您不必释放对象,但它可以为您提供帮助。

+5

您链接到的帖子与此没有任何关系。这些方法是“便利的构造函数”。 –