亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

OC筆記(1)

2019-11-09 15:11:57
字體:
來源:轉載
供稿:網友

1.#import有兩個用途,第一個用途:與C 語言中的 include 完全一樣。第二個用途:可以自動防止文件內容被重復拷貝,也就是說多次書寫#import <Foundation/NSObjCRuntim.h>就只拷貝一次,相當于只寫了一次。

2.類方法的好處和使用場合

(1) 不依賴于對象,執行效率高(2) 能用類方法,盡量用類方法(3) 場合:當方法內部不需要使用到成員變量時,就可以改為類方法

可以允許類方法和對象方法同名

3.self的用途:

(1) 誰調用了當前方法,self就代表誰* self出現在對象方法中,self就代表對象* self出現在類方法中,self就代表類

(2) 在對象方法利用"self->成員變量名"訪問當前對象內部的成員變量

(3)[self方法名]可以調用其他對象方法/類方法

使用 self 與 super調用方法的區別:使用 self 調用方法時,self先從當前類中尋找方法,如果沒有尋找到再去父類中尋找。而super直接在父類中尋找方法。

4.super的作用1.直接調用父類中的某個方法2.super處在對象方法中,那么就會調用父類的對象方法

super 處在類方法中,那么就會調用父類的類方法

3.使用場合:子類重寫父類的方法時想保留父類的一些行為

5.多態

多態就是用父類類型的指針創建子類的對象,比如Dog類繼承了Animal類,下面都是多態:

Animal *aa = [Dog new];

Dog *dd = (Dog *)aa;

1.沒有繼承就沒有多態2.代碼的體現:父類類型的指針指向子類對象3.好處:如果函數/方法參數中使用的是父類類型,可以傳入父類、子類對象4.局限性:父類類型的變量不能直接調用子類特有的方法。必須強轉為子類類型變量后,才能直接調用子類特有的方法

6.

在 xcode4.4 之后,@PRoperty的功能更加強大,它同時具有了@synthesize的功能,比如@property int age;具有如下三個功能:(1)生成_age成員變量的get和 set 方法的聲明(2)生成_age成員變量的get和 set 方法的實現

(3) 生成一個名為_age的成員變量

7.

@property的參數:

(1)  set方法內存管理相關的參數

(a) retain:release舊值,retain新值(適用于OC 對象類型)(b) assign:直接賦值(默認,適用于非OC 對象類型),常用在 BOOL、int等基本數據類型。(c) copy:release舊值,copy新值,常用在NSString對象

(2)  是否要生成set方法(a) readwriter:同時生成set和 get 方法的聲明和實現(b) readonly:只生成get的聲明和實現

(3)  多線程管理(a) nonatomic:性能高(一般都是使用這個)(b) atomic:性能低(默認)

(4)  set和 get 方法的名稱(a) setter:決定了set方法的名稱,一定要加個冒號“:“(b) getter:決定了get方法的名稱,不要加冒號

(5)  strong和 weak(a) strong:用于一般對象

(b) weak:用于UI 控件

8.

默認情況下,除字符串對象外,使用NSLog和%@打印對象的結果都是<類名 對象所在內存地址>。使用NSLog和%@打印對象的步驟如下:1.調用對象p的-description方法2.拿到-description方法的返回值(NSString *)顯示到屏幕上3.-description方法默認返回的是“類名+內存地址

在必要情況下,我們需要重寫description方法以達到改變輸出結果目的,

還有一個以“+”開頭的description,“+”開頭的description決定的是類對象的輸出結果,“-”開頭的description決定的是實例對象的輸出結果。

當然也可以像重寫“-”開頭的description一樣去重寫它?!緜渥ⅰ款愐彩菍ο螅魏晤惗际?Class的對象,獲得類對象(和類的對象不是同一個概念)的方法為

Class c = [Person class];

9、SELSEL其實是對方法的一種包裝,將方法包裝成一個SEL類型的數據,去找對應的方法地址。找到方法地址就可

以調用方法, 其實消息就是SEL。對于下列方法調用:

[p test2];

主要有以下步驟:1.把test2包裝成SEL類型的數據2.根據SEL數據找到對應的方法地址3.根據方法地址調用對應的方法比如一個類中有兩個方法:+test和-test2每個方法在內存中的地址都有一個對應的SEL與之對應

SEL s1 == +test地址

SEL s2 == -test2地址

對象找要調用的方法時,isa指針會根據調用的方法名在類中找到相關的SEL對象(方法地址)去調用。所以,調用方法還可以用如下形式:

[p performSelector:@selector(test2)];

performSelector:@selector(test2)返回的就是test2的方法地址。如果方法還有參數,比如- (void)test3:(NSString *)abc,還可以按照如下格式調用:

[p performSelector:@selector(test3:) [Object:@”abc”]];

對于上述調用方法,test3后一定要加”:“,因為”:”也是有參數方法的方法名的一部分。

10、內存管理(高頻面試題)

無論是 ios 還是 android 中,系統對每個程序運行時內存的占用都有一個限制,默認都是幾十M 左右大小,當程序占用的內存的大小超過限制時,程序可能就會被強制退出。拿 iphone4來說,當程序內存占用超過40M時,會出現內存警告,當內存占用達到45M,還會再一次內存警告,對于以上兩次警告如果不做出釋放內存操作,當達到120M時,系統會自動kill掉程序。在內存中,分為堆和棧,棧中主要存放變量,堆中主要存放對象。棧中的東西是系統自動回收的,當一個變量使用完畢后,存放在棧中的東西會立刻被回收。但堆中存儲的東西是不會隨便回收的。

每個 OC 對象里都有一個引用計數器,是一個整數,用來統計正在被引用多少次,每個引用計數器占用4個字節,對象剛剛創建時引用計數器默認為1。如果OC 對象引用計數器為 0 時,系統就可以回收這個對象了。引用計數器的操作:

(1) 給對象發送一條 retain 消息,可以使引用計數器值+1(retain方法返回對象本身)(2)給對象發送一條release消息,可以使引用計數器值-1(3) 給對象發送一條retainCount消息,可以獲得當前的引用計數器值

對象的銷毀:

(1) 當一個對象的引用計數器的值為0 時,那么它將被銷毀,其占用的內存會被系統回收。(2)當一個對象被銷毀時,系統會自動向對象發送一條dealloc消息

(3) 一般會重寫 dealloc 方法,在這里釋放相關資源,dealloc就像對象的遺言。(4)一旦重寫了dealloc方法,就必須調用[super dealloc],并且放在最后面調用。(5)不要直接調用dealloc方法。(6)一旦對象被回收了,它占用的內存不再可用,堅持使用就會導致程序崩潰(指針錯誤)。概念:僵尸對象:所占用的內存已經被回收的對象,僵尸對象不能再使用野指針:指向僵尸對象的指針,給野指針發送消息會報錯空指針:沒有指向任何東西的指針(存儲的東西是 nil、null、0),給空指針發送消息不會報錯?!緜渥ⅰ縩il與 null 不同,null是一個宏定義,值為0,nil表示無值,任何變量在沒有賦值之前都是nil,對于真假判斷,只有nil和 false 表示假,其他均為真。內存管理原則:(1)誰創建,誰release:如果你通過 alloc、new或[mutable]copy來創建一個對象,那么必須調用release或 autorelease(2)誰retain,誰release:只要你調用了 retain,無論這個對象如何生成的,你都要調用release。綜上:有始有終,有加就有減。曾經讓對象計數器+1,就必須在最后讓對象計數器-1。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热这里只有精品免费看| 国产在线高清精品| 亚洲午夜色婷婷在线| 欧洲日本亚洲国产区| 中文字幕欧美日韩| 亚洲激情久久久| 在线观看欧美日韩国产| 97av在线视频免费播放| 成人写真视频福利网| 亚洲黄色在线观看| 欧美另类极品videosbest最新版本| 成人激情免费在线| 91精品国产免费久久久久久| 中文字幕一区二区精品| 亚洲片av在线| 88国产精品欧美一区二区三区| 国产精品香蕉国产| 久久久久久免费精品| 91精品在线观| 国产一区私人高清影院| 日韩国产精品视频| 成人欧美一区二区三区黑人| 国产精品96久久久久久又黄又硬| 欧美日韩另类视频| 亚洲电影av在线| 国产ts一区二区| 中文字幕亚洲欧美一区二区三区| 欧美美女操人视频| 日本免费久久高清视频| 精品久久久久人成| 国产午夜精品久久久| 亚洲护士老师的毛茸茸最新章节| 亚洲伊人久久综合| 亚洲日韩中文字幕| 国产精品亚发布| 92看片淫黄大片看国产片| 91探花福利精品国产自产在线| 日韩av电影在线免费播放| 国产精品69av| 久久影视电视剧免费网站清宫辞电视| 久久久女女女女999久久| 91精品久久久久久久久久入口| 欧美一级大片在线免费观看| 欧美在线亚洲在线| 国产男人精品视频| 国内成人精品视频| 日韩高清a**址| 68精品久久久久久欧美| 久久久精品美女| 伊人一区二区三区久久精品| 91国偷自产一区二区三区的观看方式| 成人xxxxx| 国产综合香蕉五月婷在线| 国产精品久久在线观看| 91精品国产精品| 午夜精品久久久久久99热| 欧美一级黄色网| 欧美黑人巨大xxx极品| 亚洲人永久免费| 国产成人亚洲精品| 91精品久久久久久久久久久久久| 欧美人在线视频| 成人激情视频在线播放| 国产精品福利小视频| 川上优av一区二区线观看| 亚洲人线精品午夜| 欧洲成人在线视频| 国产精品91久久久久久| 国产一区二区三区三区在线观看| 国产亚洲精品久久| 国产精品久久婷婷六月丁香| 国产精品影院在线观看| 91色在线视频| 亚洲第一中文字幕在线观看| 亚洲国产美女精品久久久久∴| 亚洲精品99久久久久中文字幕| 日韩精品欧美国产精品忘忧草| 成人黄色免费片| 亚洲天堂av女优| 日韩激情av在线免费观看| 亚洲一区二区三区视频| 在线激情影院一区| 国产精品91久久久久久| 色婷婷**av毛片一区| 国产激情久久久| 日韩精品视频在线观看免费| 国产精品十八以下禁看| 97色伦亚洲国产| 亚洲国产精品嫩草影院久久| 成人黄色影片在线| 午夜精品在线视频| 国产精品免费看久久久香蕉| 亚洲欧美在线一区| 九九精品在线视频| 久久精视频免费在线久久完整在线看| 色偷偷偷综合中文字幕;dd| 综合网中文字幕| 国产精品视频导航| 国产精品视频永久免费播放| 欧美wwwxxxx| 欧美性xxxxhd| 欧美最猛黑人xxxx黑人猛叫黄| 久久人人爽亚洲精品天堂| 日韩在线免费高清视频| 久久久精品999| 中文字幕久热精品在线视频| 亚洲欧美日韩高清| 成人精品aaaa网站| 亚洲偷熟乱区亚洲香蕉av| 91亚洲精华国产精华| 日韩精品视频观看| 久久精品国产一区二区电影| 欧美中文在线观看国产| 欧美在线一区二区视频| 久久精品男人天堂| 91精品久久久久久综合乱菊| 伊是香蕉大人久久| 亚洲欧洲偷拍精品| 国产精品一区二区三区成人| 亚洲精品suv精品一区二区| 欧美亚洲国产日韩2020| 欧美一级淫片aaaaaaa视频| 91成人天堂久久成人| 久久国产精品免费视频| 午夜免费在线观看精品视频| 精品国产91久久久久久| 国产一区二区日韩精品欧美精品| 久久精品国产2020观看福利| 亚洲成人免费网站| 国产精品高潮视频| 精品国产区一区二区三区在线观看| 国产精品xxx视频| 一本色道久久综合狠狠躁篇怎么玩| 精品久久久久国产| 亚洲精品在线91| 久久人体大胆视频| 久久九九全国免费精品观看| 欧美孕妇性xx| 欧美麻豆久久久久久中文| 亚洲精品福利资源站| 在线视频欧美日韩| 少妇高潮久久久久久潘金莲| 国产精品久久中文| 国产亚洲人成网站在线观看| 欧美精品videossex88| 久久久久久久久国产| 亚洲精品一二区| 久久久久久国产三级电影| 亚洲欧美另类自拍| 午夜免费在线观看精品视频| 亚洲黄色有码视频| 国产精品美女网站| 欧美精品18videos性欧美| 97成人精品视频在线观看| 亚洲国内精品在线| 亚洲社区在线观看| 亚洲综合大片69999| 成人精品在线视频| 亚洲美女精品久久| 最近2019年手机中文字幕| 国产精品国产三级国产专播精品人| 久久精品视频在线| 欧美激情视频在线| 欧美日韩亚洲高清|