關於一些iOS開發中容易忽略的一些屬性設定

2021-07-07 02:08:01 字數 1615 閱讀 7680

ios 開發手記

ios私有方法:

我們有時會遇到,希望某個類的方法不能被它的繼承類所繼承,這個時候我們就要用到私有方法,所謂的私有方法就是把方法不寫在標頭檔案.h裡面而是寫在.m中,這樣別人不能直接呼叫,**例子如下。

假設現有的類為myclass:

在類的標頭檔案**為:

@inte***ce myclass

- (void)publicmethod;//公共方法,可以被繼承類繼承

@end

而在類的.m檔案中,採用類別來實現私有方法,具體操作為:

@inte***ce myclass()//注意(),即定義乙個空類別

- (void)privatemethod;//在類別中定義私有方法

@end

@implementation myclass

- (void)publicmethod

- (void)privatemethod

@end

ios的屬性和成員變數在

.h檔案和

.m檔案的不同

屬性在.h檔案中和在.m中宣告是有區別的。區別就是,在.h檔案中宣告的屬性,外部類可以通過「類例項.屬性」來呼叫,但在.m中宣告的則不可以,獲取和設定的方法,只能是通過setvalue:forkey和valueforkey來實現。

私有變數:

成員變數,有三種許可權,就是大家都知道的@private、@protected、@public

,寫在.m檔案中時,相當於是@private許可權,子類無法訪問。而寫在.h檔案中,預設是@protected許可權,子類可以訪問,可以做許可權修改。因為訪問許可權指針對.h檔案。

ios開發

- 詳談屬性設定

readwrite

、readonly

、retain

、copy

、assign

、nonatomic

1 . 可讀性: readonly、readwrite

@property(readwrite,....) valuetype value;

這個屬性是變數的預設屬性,就是如果你 (readwrite and readonly 都沒有使用,那麼你的變數就是readwrite屬性 ) ,通過加入 readwrite 屬性你的變數就會有 get 和 set 方法。

property(readonly,...) valuetype value;

這個屬性變數就是表明變數只有可讀方法,也就是說,你只能使用它的 get 方法。

2 . assign , setter方法直接賦值,不進行任何 retain 操作,為了解決原型別與環循引用問題

3 . retain , setter方法對引數進行 release 舊值再 retain 新值,所有實現都是這個順序

4 . copy ,setter 方法進行 copy 操作,與 retain 處理流程一樣,先舊值release ,再 copy 出新的物件,retaincount 為 1 。這是為了減少對上下文的依賴而引入的機制。

5 .nonatomic ,非原子性訪問,不加同步,多執行緒併發訪問會提高效能。

注意,如果不加此屬性,則預設是兩個訪問方法都為原子型事務訪問。鎖被加到所屬物件例項級 。 所以不加nonatomic 對與多執行緒是安全的 。

C 中容易忽略的一些概念

1.幾個名詞 cts common language sytem clr common language runtime cls common language specification 2.物件型別 值型別 簡單型別 結構型別 列舉 應用型別 class string 陣列 介面。delegat...

C 一些容易忽略的知識點

先看下c語言 c語言是一種面向過程的程式語言,是由資料結構和演算法組成的c語言程式設計,強調的是執行效率。1 c語言的歷史 1969至1973年 美國貝爾實驗室 2 c語言的功能 結構化程式設計 3 c語言的優點 高效 靈活,應用領域廣泛 4 c語言的缺點 c語言沒有自動釋放的機制,如果程式設計師在...

html5一些容易忽略的細節

最近由於經常寫前端,所以系統性的看了一下html5頁面的基礎資訊,雖然以前寫了很久的html 但是其中的一些細節還是容易被忽略,所以這裡一起整理一下。在html5中,空元素結尾處的空格和斜槓是可以忽略的。標籤中屬性值兩邊的引號是可選的。不過習慣上還是會寫上。屬性的數字值無需輸入單位,只需輸入數值本身...