簡體   English   中英

內存管理:手動保留/釋放或訪問方法?

[英]Memory management: manual retain/release or accessor methods?

在以下方面最好的方法是什么:

  • 安全和控制泄漏?
  • 性能?
  • 課外能見度?

第一 :保持對每個變量的控制

if (objectProperty_ != anObject) {
    [objectProperty_ release];
    objectProperty_ = [anObject retain];
}

第二 :聲明屬性並使用訪問器並讓系統完成工作

@property (nonatomic, readwrite, retain) NSObject *objectProperty;
...
@synthesize objectProperty = objectProperty_;
...
self.objectProperty = anObject;

謝謝。

盡可能使用屬性。

  1. 它們可以節省您編寫大量樣板訪問器方法的麻煩。 在屬性之前的幾天,可能每個Cocoa程序員都有一對用於定義訪問器的宏。
  2. @property自動記錄訪問者的語義。 例如,在您的示例中,我可以從界面中看到objectProperty保留其值,而不是分配或復制它。

當您聲明屬性但定義自己的訪問者時,第2點甚至成立。

最有可能保持理智的方法是盡可能使用Apple編寫的訪問器,並在必要時編寫自己的訪問器。

訪問方法調用確實增加了一點時間; 我在iPad上計時,我覺得它大概是10 ^ -7秒。 無論您是自己編寫方法還是使用Apple,都應該如此。 除了最極端的情況之外的所有情況,這都不太重要。

更少的代碼意味着更少的錯誤,所以如果你必須為公共訪問聲明讀寫屬性,只需使用屬性來獲取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM