使用 @property 時候,xcode 會自動為我們生 setter 和 getter,甚至會自動生成屬性。
例如下面的情況:
//上面的**等價於下面的**(不考慮多執行緒):.h 檔案
@inte***ce
person : nsobject
@property (copy, nonatomic) nsstring *name;
@end
//.m 檔案
@implementation
person
@end
//但是當我們同時重寫 name 的 getter 和 setter 的時候,問題就出現了:.h 檔案
@inte***ce
person : nsobject
- (nsstring *)name;
- (void)setname:(nsstring *)name;
@end
//.m 檔案
@implementation
person
- (nsstring *)name
- (void)setname:(nsstring *)name
@end
同時附上**:
//上面這段**,xcode 會報警告,說並沒有 _name 屬性,所以,我們同時重寫 name 的 getter 和 setter 之後,xcode 就不會自動給我們建立 _name 屬性。為什麼會這樣呢?要理解這個原理就不得不提計算屬性這個概念,有些 @property 定義的屬性並不一定有.h 檔案
@inte***ce
person : nsobject
@property (copy, nonatomic) nsstring *name;
@end
//.m 檔案
@implementation
person
- (nsstring *)name
- (void)setname:(nsstring *)name
@end
batch normalization為什麼效果好
batch normalization為什麼效果好 深度學習中 batch normalization為什麼效果好?龍鵬 言有三的回答 知乎 深度學習中 batch normalization為什麼效果好?魏秀參的回答 知乎 為什麼batch normalization那麼有用?autocyz的文章...
display inline block是什麼意思
很多時候我們必須使一些塊元素併排顯示,一般想到的是必須使用浮動,但是塊元素浮動給邊距 margin 的時候在ie下會出現加倍的bug 所以很多時候不得不把這個塊元素套在乙個內聯元素裡面,然後給內聯元素浮動和邊距。今天看到了懌飛 秦歌和烏龍茶關於display inline block的文章,很不錯,...
no database selected是什麼意思
no database selected是什麼意思?是因為你沒有選擇新建立的表所在的資料庫,no database selected 意思就是沒有選擇資料庫。推薦 mysql 教程 解決辦法 在建立表之前使用use語句,格式 use database name,這樣就開啟了資料庫,就可以對資料庫進行...