2011-12-10 72 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

您鏈接到的帖子與此沒有任何關係。這些方法是「便利的構造函數」。 –