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

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

OC筆記(1)

2019-11-09 16:26:10
字體:
來源:轉載
供稿:網友

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),給空指針發送消息不會報錯。【備注】nil與 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
一二美女精品欧洲| 九色精品免费永久在线| 欧美极品少妇xxxxⅹ裸体艺术| 国产精品夜间视频香蕉| 亚洲性69xxxbbb| 亚洲综合视频1区| 一本色道久久88精品综合| 最近中文字幕2019免费| 国产精品中文字幕在线| 久久九九精品99国产精品| 国产一区二区三区在线免费观看| 一本色道久久88综合亚洲精品ⅰ| 国产精品国产福利国产秒拍| 九九热这里只有在线精品视| 日本精品在线视频| 亚洲午夜久久久久久久| 欧美极品xxxx| 久久夜色精品国产欧美乱| 亚洲视屏在线播放| 91免费国产视频| 欧美性猛交xxxxx免费看| 久久久在线免费观看| 51色欧美片视频在线观看| 97久久精品人搡人人玩| 欧洲精品在线视频| 中文字幕在线观看日韩| 欧美肥臀大乳一区二区免费视频| 欧美大人香蕉在线| 国产亚洲精品久久久优势| 欧美肥老太性生活视频| 国产在线拍揄自揄视频不卡99| 欧美一级免费看| 久久国产精品久久久久久| 欧美一级黄色网| 日韩电影中文字幕| 成人激情av在线| 欧美性20hd另类| 91最新在线免费观看| 欧美xxxx综合视频| 成人福利网站在线观看| 成人激情综合网| 国产亚洲欧美日韩精品| 亚洲香蕉伊综合在人在线视看| 日韩专区在线播放| 成人午夜在线影院| 亚洲aⅴ男人的天堂在线观看| 欧美国产一区二区三区| 欧洲中文字幕国产精品| 精品国产一区二区三区久久狼5月| 91精品国产777在线观看| 国产欧美日韩中文字幕在线| 亚洲天堂网在线观看| 亚洲2020天天堂在线观看| 久久av中文字幕| 日日狠狠久久偷偷四色综合免费| 大桥未久av一区二区三区| 日韩av电影免费观看高清| 亚洲欧美精品suv| 久久久电影免费观看完整版| 日韩免费黄色av| 91亚洲国产成人久久精品网站| 欧美激情综合色综合啪啪五月| 国产精品久久久久久搜索| 91高清在线免费观看| 韩国美女主播一区| 亚洲国产中文字幕久久网| 大伊人狠狠躁夜夜躁av一区| 国产成人在线精品| www国产91| 另类少妇人与禽zozz0性伦| 久久亚洲影音av资源网| 国产成人av在线播放| 久久久视频精品| 欧美第一黄色网| 97精品国产aⅴ7777| 日韩一区二区三区xxxx| 日韩中文字幕久久| 伊人精品在线观看| 亚洲视频网站在线观看| 成人网在线免费看| 91久久精品美女| 深夜福利亚洲导航| 国产在线播放91| 欧美大胆a视频| 中文字幕久久亚洲| 亚洲欧美激情精品一区二区| 日韩中文字幕免费视频| 91久久久久久久久久久久久| 成人网在线观看| 欧美午夜精品久久久久久浪潮| 欧美片一区二区三区| 欧美日韩亚洲网| 91天堂在线视频| 亚洲美女在线视频| 97视频国产在线| 午夜精品久久久久久久男人的天堂| 日本久久久a级免费| 亚洲欧美一区二区激情| 欧美激情国产精品| 亚洲精品久久久久久久久久久久久| 久久久久久久久网站| 欧美成人精品在线| 亚洲男人天堂九九视频| 成人做爽爽免费视频| 日韩av在线影视| 51色欧美片视频在线观看| 最近中文字幕mv在线一区二区三区四区| 国产视频久久久| 91久久国产综合久久91精品网站| 亚洲综合av影视| 精品色蜜蜜精品视频在线观看| 亚洲影院污污.| 欧美日韩美女在线观看| 亚洲人午夜色婷婷| 国产精品久久久999| 91国产视频在线播放| 97国产真实伦对白精彩视频8| 国产自摸综合网| 5566日本婷婷色中文字幕97| 国产成人精品av在线| 日韩在线视频观看正片免费网站| 国产精品久久久久久搜索| 欧美日韩另类字幕中文| 成人福利在线视频| x99av成人免费| 国产欧洲精品视频| 欧美成人午夜激情在线| 久久久精品美女| 亚洲无限av看| 欧美激情亚洲另类| 亚洲伊人一本大道中文字幕| 日韩成人在线视频观看| 国产精品99久久久久久白浆小说| 成人激情视频网| 高潮白浆女日韩av免费看| 91美女福利视频高清| 午夜精品一区二区三区av| 国产精品久久久久av免费| 秋霞av国产精品一区| 日日摸夜夜添一区| 国产精品美女主播在线观看纯欲| 国产精品99久久久久久人| 欧美精品在线网站| 精品国产精品三级精品av网址| 55夜色66夜色国产精品视频| 日韩欧美在线观看视频| 欧美黑人国产人伦爽爽爽| 国产精品网红福利| 亚洲激情视频网站| 欧美精品久久一区二区| 亚洲男人的天堂在线| 成人精品久久一区二区三区| 国内精品久久久| 91欧美激情另类亚洲| 欧美人交a欧美精品| 在线电影中文日韩| 国产成人免费av电影| www日韩中文字幕在线看| 亚洲欧美另类在线观看| 红桃视频成人在线观看| 国产精品av免费在线观看| 一区二区三区国产视频| 日韩精品极品在线观看| 亚洲自拍av在线|