person.m
@inte***ce person : nsobject
@property(nonatomic,copy)nsstring *name;
@property(nonatomic,copy)nsstring ****;
-(void)changenamevalue:(nsstring*)newname and***value:(nsstring*) ***value;
@end
-(void)changenamevalue:(nsstring *)newname and***value:(nsstring *)***value
controller.m
nsmutablestring *newname=[nsmutablestring stringwithformat:@"tony"];
nsmutablestring *new***=[nsmutablestring stringwithformat:@"man"];
person *xiaoming = [[person alloc] init];
[xiaoming changenamevalue:newname and***value:new***];
nslog(@"xiaoming newname: %@, new***: %@;", xiaoming.name, xiaoming.***);
nslog(@"to observe the changes : xiaoming name: %@, ***: %@;", xiaoming.name, xiaoming.***);
person中的方法self.使用的是深拷貝,_***使用的是淺拷貝。當controller中newname新增新內容不會影響到其他類的屬性,_***的淺拷貝會隨著呼叫該屬性的變數一起改變。因為self.會生成getter與setter方法,_a並不會生成getter與setter方法。
OC中self a和 a的訪問的區別
久了不回顧基礎知識,猛然間看到,有時候還真想不起來有的知識,比如宣告 property和合成 synthesize的屬性與普通的屬性有什麼本質區別,self.a和 a訪問的區別,所以有必要回顧一下。我們先來說說 property和 synthesize property宣告成員變數,會自動幫我們生成...
OC中 kindof的用法
簡介 kindof是蘋果宣告的乙個新特性,它是和nullability annotations 以及generics 一起在xcode7中出現的。本文將對它進行詳細介紹 使用方法 假如我們宣告了如下屬性 objc view plain copy property nonatomic,strong n...
OC中 kindof的用法
簡介 使用方法 假如我們宣告了如下屬性 property nonatomic,strong nsarray viewcollection 看屬性名我們會認為它是元素為uiview的陣列,但這只是猜測,它並不能保證這個陣列的元素就是uiview,除非通過閱讀完整的 來確認。這種情況下,我們就可以使用泛...