首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Objective-C @property 屬性完整指南

     編輯:關於C語言

@property 基本概念

@property 是一種代碼生成機制,能自動生成不同類型的 getter/setter 方法。若想使用點語法(.)存取變量,必須使用 @property。

語法格式

@property (attribute1, attribute2) float value;

常用屬性修飾符詳解

  • readonly:只讀,僅生成 getter,不可設置值。
  • readwrite:可讀可寫(默認)。
  • assign:設置時直接替換舊值(默認),適用於標量類型(如 NSInteger、CGRect)或不擁有所有權的對象(如 delegate)。
  • retain:設置時 retain 新值,release 舊值(手動引用計數環境下)。
  • copy:設置時複製新值,release 舊值,確保對象不可變性。
  • nonatomic:非原子操作,多線程環境下性能較好但不保證線程安全(默認為 atomic)。
  • strong:ARC 環境下默認,等同於 retain,表示擁有所有權。
  • weak:iOS 5 引入,類似 assign 但對象釋放時自動置為 nil,避免野指針。

內存管理注意事項

assign 僅做簡單賦值,用於基本數據類型或不擁有所有權的對象。在垃圾回收環境下 retain 和 assign 行為一致。生成的 setter 代碼類似:

- (void)setValue:(float)newValue {
    value = newValue;
}

關鍵提醒:使用 property 時務必加 self. 前綴(如 self.xxx),否則直接訪問實例變量會繞過 setter,導致內存管理錯誤(如漏掉 retain/release),造成內存洩漏或崩潰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved