[英]Objective C memory management question with NSArray
我正在使用這樣的浮點數加載數組:
NSArray *arr= [NSArray arrayWithObjects:
[NSNumber numberWithFloat:1.9],
[NSNumber numberWithFloat:1.7],
[NSNumber numberWithFloat:1.6],
[NSNumber numberWithFloat:1.9],nil];
現在我知道這是正確的做法,但是我對零售數量感到困惑。
每個對象都是通過[NSNumber numberWithFloat:]
方法創建的。 這給對象保留一個1個dosnt的計數嗎? -否則將回收該對象
arrayWithObjects:
方法向每個對象發送保留消息。
這意味着每個對象的保留續數為2。取消分配數組時,釋放每個對象的保留數為1。
我錯過了什么?
NSNumber numberWithFloat:方法未返回保留的對象。
通常,除非您使用alloc
, copy
或new
,否則可以假定您得到的保留計數為零的對象。 這樣,唯一的保留是在NSArray上添加了對象時。
關於此類事情的博客很好: http : //interfacelab.com/objective-c-memory-management-for-lazy-people/
無需釋放這些對象。
arrayWithObjects:
和numberWithFloat:
創建您不擁有的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.