ObjectC 類的一些問題解析

2021-07-02 22:14:08 字數 796 閱讀 5064

在cocoa框架中,nsobject是所有類的根類。其它類都要從nsobject繼承。

類的定義在.h標頭檔案裡定義,如:

@inte***ce myclass:nsobject

@property(nonatomic,retain)nsstring *name;

@property(nonatomic,retain)nsnumber* age;

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

@end

類的定義由@inte***ce開始,到@end結束

類名後面緊跟冒號和父類

大括號定義成員變數

@property宣告屬性

方法放在成員變數後。

屬性不是必須要有成員變數對應。如果上面沒有定義成員變數,oc會自動提供與屬性名同名的例項變數。

在.m檔案裡,使用@synthesize,編譯器會自動給name、age加上get、set方法。

@impletation

@synthesize name,age;

nonatomic的意思是對屬性進行操作時,是執行緒不安全的,多執行緒環境下,該屬性很可能不同步。加nonatomic,該屬性不會在多執行緒下使用,相對會獲得更好的效能。

在object-c裡,使用retain的屬性在賦值後一直到物件銷毀之前始終可用。如果例項變數或屬性不是retain,對屬性賦值後,再訪問這個屬性,這個屬性就變成空了。

屬性還可以用readonly,readwrite修飾。

String類的一些問題

string a hello string b hello string c he llo string d he new string llo a b 1 a c 2 a d 3首先公布答案,式子1返回true,式子2返回true,式子3返回false 式子1很好理解,由於存在字面量池,在用字面量...

Linux vim一些問題解決

1.按 i 後,沒有出現insert 解決方法 在vimrc檔案中,加入set showmode 2.backspace鍵不能刪除,同時方向鍵在insert模式下會打出abcd 解決方法 在vimrc檔案中,加入set nocompatible 3.backspace在insert模式下不能刪除空行...

ubuntu的一些問題解決

引用 http dx.ylmf.net read.php?tid 1085946 fpage 0 toread uid 722851 page 1 解決問題 知識所在樓層及內容 1.ubuntu是什麼?2.零命令玩轉ubuntu 8.10 livecd光碟安裝篇 3.什麼是wine? 4.零命令玩轉...