//聯系人:石虎 QQ: 1224614774昵稱:嗡嘛呢叭咪哄
Day 01
01-分類與繼承的差別
分類:增加方法,不能增加變量.但是可以通路類的變量
繼承:子類繼承了父類所有的方法和變量
繼承能增加變量和方法,分類隻能增加方法,不能增加變量.
繼承會産生一個新的類.
分類不會産生新的類.同名的方法,分類裡面優先調用
02-分類與類擴充的差別
類擴充:可以添加屬性聲明,添加的方法聲明,匿名的分類
分類不能添加屬性,隻能添加方法
Day 02
//retain mrc strong arc
01- 展開:@property (nonatomic,retain) NSArray *cars;
getter方法:
-(NSArray *)cars{
return _cars;
}
setter方法:
-(void)setCars:(NSArray *)cars{
if(_cars = !cars){
[_cars release];
_cars = [cars retain];
}
}
-(void)dealloc{
[super dealloc];
// [_cars release];
_cars = nil;
}
02- NULL,nil, Nil, NSNull
nil 是對objective c對象賦空值為了避免野指針對指針指派一個nil
Nil:表示對類進行賦空值
NULL:用于對非對象指針賦空值,比如C指針
NSNull 集合裡的空對象
對于像NSArray這樣的類型,nil或NULL不能做為加到其中的Object,如果定義了一個NSArray,為其配置設定了記憶體,又想設定其中的内容為空,則可以用[NSNULL null】傳回的對象來初始化NSArray中的内容 初始化内容為空
Day 03
寫一個代理
Day 04
寫一個代理
Day 05
weak 和 strong的差別,都是啥時候用?
Day 07 解釋@selector和SEL的含義和作用
@selector對方法進行包裝
SEL是一個資料類型.每一個方法都有一個 isa指針
[self run]
Day 08 程式啟動的過程
0.main函數入口
1.建立UIApplication對象,建立代理對象,設定兩者的代理關系
2.開啟消息循環
3.加載plist檔案,看裡面有沒有指定storyboard,如果指定了,建立UIWindow對象.加載storyboard檔案.根據storyboard裡面箭頭指向的控制器,建立控制器對象,并且設定成window的根控制器,建立控制器的view,顯示到window上并且展示出來
沒有storyboard,就需要在程式啟動完成以後的代理函數裡面寫代碼建立widow對象,建立控制器設定成window的根控制器,展示window
Day 09資料怎麼存儲,有幾種方式
偏好設定
xml xml檔案或者plist檔案
NSCoding
sqlite
Core data
Day 10對記憶體管理的了解
MRC
引用計數器
alloc new (mutable)copy retain +1
relese autorelease -1
蘋果官方的記憶體管理原則:
1.誰建立或者 retain,誰釋放
2.alloc new (mutable)copy retain ,就會要對應一個
relese autorelease
dealloc 對象被銷毀的之前,調用
ARC
強指針 對象有強指針指向,就不會被釋放
弱指針
循環引用問題