//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄
1.Object-C有多繼承嗎拌滋?沒有的話用什么代替温亲?
1>? OC是單繼承,沒有多繼承
2>? 有時可以用分類和協(xié)議來代替多繼承
1>? OC沒有類似@private的修飾詞來修飾方法,只要寫在.h文件中篮赢,就是公共方法
2>? 可以使用類擴(kuò)展(Extension)來增加私有方法和私有變量
const int a;
int const a;
const int *a;
int const *a;
int * const a;
int const * const a;
1> 前兩個的作用是一樣:a 是一個常整型數(shù)
2> 第三琉挖、四個意味著 a 是一個指向常整型數(shù)的指針(整型數(shù)是不可修改的启泣,但指針可以)
3> 第五個的意思:a 是一個指向整型數(shù)的常指針(指針指向的整型數(shù)是可以修改的,但指針是不可修改的)
4> 最后一個意味著:a 是一個指向常整型數(shù)的常指針(指針指向的整型數(shù)是不可修改的示辈,同時指針也是不可修改的)
1>? static修飾的函數(shù)是一個內(nèi)部函數(shù),只能在本文件中調(diào)用矾麻,其他文件不能調(diào)用
2>? static修飾的全部變量是一個內(nèi)部變量纱耻,只能在本文件中使用,其他文件不能使用
3>? static修飾的局部變量只會初始化一次险耀,并且在程序退出時才會回收內(nèi)存
1>??一個應(yīng)用程序?qū)?yīng)一個進(jìn)程,一個進(jìn)程幫助程序占據(jù)一塊存儲空間
2>??要想在進(jìn)程中執(zhí)行任務(wù)甩牺,就必須開啟線程蘑志,一條線程就代表一個任務(wù)
3>??一個進(jìn)程中允許開啟多條線程,也就是同時執(zhí)行多個任務(wù)
1>??堆空間的內(nèi)存是動態(tài)分配的急但,一般存放對象澎媒,并且需要手動釋放內(nèi)存
2>??棧空間的內(nèi)存由系統(tǒng)自動分配波桩,一般存放局部變量等戒努,不需要手動管理內(nèi)存
7.為什么很多內(nèi)置的類,如TableView的delegate的屬性是assign不是retain镐躲?
1>? tableView的代理一般都是它所屬的控制器储玫,控制器會對它內(nèi)部的view做一次retain操作
2>? 假設(shè)tableView也對代理(控制器)做一次retain操作匀油,那么就出現(xiàn)循環(huán)retain問題
8.定義屬性時,什么情況使用copy敌蚜、assign、retain弛车?
1>? copy:NSString齐媒、Block等類型
2>? assign:非OC對象類型,基本數(shù)據(jù)類型(兩個對象相互引用的時候喻括,一端用retain,一端用assign)
3>? retain:OC對象類型
每個對象都有一個引用計數(shù)器,每個新對象的計數(shù)器是1唤崭,當(dāng)對象的計數(shù)器減為0時拷恨,就會被銷毀
這里只是簡述:將離開屏幕的cell放到緩存池谢肾,重新拿來顯示到屏幕的其他位置(其他自己詳細(xì)描述)
1>? loadView
?? 當(dāng)?shù)谝淮问褂每刂破鞯膙iew時薪捍,會調(diào)用loadView方法創(chuàng)建view
?? 一般在這里自定義view
2>? viewDidLoad
?? 當(dāng)控制器的view創(chuàng)建完畢時會調(diào)用魁淳,也就是在loadView后調(diào)用
?? 一般在這里添加子控件、初始化數(shù)據(jù)
3>? viewDidUnload
?? 當(dāng)控制器的view因為內(nèi)存警告被銷毀時調(diào)用
?? 一般在這里回收跟界面相關(guān)的資源(界面都會銷毀了界逛,跟界面相關(guān)的資源肯定不要了)
12. ViewController的didReceiveMemoryWarning是在什么時候調(diào)用的纺座?默認(rèn)的操作是什么?
?? 當(dāng)應(yīng)用程序接收到系統(tǒng)的內(nèi)容警告時净响,就有可能調(diào)用控制器的didRece…Warning方法
?? 它的默認(rèn)做法是:
l?? 當(dāng)控制器的view不在窗口上顯示時,就會直接銷毀赞别,并且調(diào)用viewDidUnload方法
13.怎么理解MVC配乓,在Cocoa中MVC是怎么實現(xiàn)的?
1>? M:Model犹芹,模型,封裝數(shù)據(jù)
2>? V:View飒焦,視圖界面屿笼,負(fù)責(zé)展示數(shù)據(jù)
3>? C:Controller牺荠,控制器,負(fù)責(zé)提供數(shù)據(jù)(Model)給界面(View)
1>? self.是調(diào)用get方法或者set放
2>? self是當(dāng)前本身,是一個指向當(dāng)前對象的指針
3>? self->是直接訪問成員變量
1>? id類型的指針可以指向任何OC對象
2>? nil代表空值(空指針的值洒嗤, 0)
Timer Profile