OC重新開始(八)屬性

2021-09-10 06:04:36 字數 1447 閱讀 8728

一般來說屬性指的是乙個物件的屬性特徵。類似於乙個籃球把它當做乙個物件的話,籃球的**、大小就是它的屬性。而在oc中屬性還被賦予了從外部可以訪問的物件的屬性

能自動生成訪問方法

自動生成例項變數

更簡單的呼叫訪問方法

屬性的內省

屬性的宣告相當於同時宣告了讀寫兩個訪問方法。通過@property編譯器命令宣告,後面接上屬性型別和名稱。

@inte***ce basketball : ball

- (id)initwithname:(nsstring *)str;

@property int length;

@end

也可以新增readonly等限制屬性。

@implementation basketball

- (id)initwithname:(nsstring *)str

return self;

}- (int)lengh

@end

也可以通過@synthesize,一行內生成getter和setter。

@synthesize name;
也可以通過@dynamic手動宣告

@dynamic length;
@synthesize

通常情況下@property宣告的屬性名稱和例項名稱是一樣的,但有時候會不同可以通過@synthesize繫結。

@synthesize length = high;/*完成繫結*/
通過@synthesize自動生成例項變數

種類選項

說明讀寫屬性

readonly

唯讀readwrite

讀寫賦值時候的選項

assign

單純賦值

retain

進行保持操作

unsafe_unretained

同assign一樣(arc)

strong

同retain一樣(arc)

weak

弱引用(arc)

copy

複製物件

原子性操作

nonamatic

非原子性操作、非線性安全

最後這個原子性是多執行緒中使用的,如果是原子性的就意味著在多執行緒下訪問屬性是安全的,在執行過程中不能打斷,而nonamatic則是不安全的,但是對於使用頻繁且不考慮多執行緒競爭的訪問方法,可以加上nonamatic。

子類可以使用父類中定義的屬性,也可以重寫訪問方法,但是同父類中的指定名稱必須完全一樣(特殊情況即是父類定義的readonly在子類中可以變成readwhite)

重新開始忙碌!!!

本以為可以繼續輕鬆到六月份去公司上班,剛剛接到的乙個 又把我拉上了快車道。公司部門的老大讓我盡快去公司實習,下週就要開始,每週三天。唉,又要開始一段非常忙碌的日子了!畢業 還沒有開始寫,又剛報了駕校學駕駛,現在還要去公司實習,每星期三天!天呢,從12月份輕鬆到現在整整三個月,看來我又要忙碌起來了.本...

重新開始學彙編

突然間在書房裡面找到了一本發黃的圖書,是自己在剛進高中的時候買的 組合語言程式設計 曾經的那份衝動不被遺忘,突然間的再次讓我熱血沸騰。於是我重新開始學習彙編,還好機器安裝了gas,ld。第乙個a 程式,比較簡單 2007.8.7 roland lee use dynamic lib to print...

Fluxbuntu重新開始開發

號召大家寄張賀卡 或其他新年祝福 給 災區的孩子們,他們比我們更需要這份祝福。fluxbuntu是一款基於輕便的fluxbox視窗管理器的乙個ubuntu衍生發行版.在7.10之後,曾一度中斷了開發。近日,fluxbuntu官方 更新,宣稱將發布8.10和9.04的fluxbuntu,並且提供測試版...