//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄
Day01
01-分類與繼承的區(qū)別
分類:增加方法,不能增加變量.但是可以訪問類的變量
繼承:子類繼承了父類所有的方法和變量
繼承能增加變量和方法,分類只能增加方法,不能增加變量.
繼承會產(chǎn)生一個新的類.
分類不會產(chǎn)生新的類.同名的方法,分類里面優(yōu)先調(diào)用
02-分類與類擴展的區(qū)別
類擴展:可以添加屬性聲明,添加的方法聲明,匿名的分類
分類不能添加屬性,只能添加方法
Day02
//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{
[superdealloc];
//? ? [_cars release];
_cars =nil;
}
02-NULL,nil,Nil, NSNull
nil是對objective c對象賦空值為了避免野指針對指針賦值一個nil
Nil:表示對類進行賦空值
NULL:用于對非對象指針賦空值,比如C指針
NSNull集合里的空對象
對于像NSArray這樣的類型豌鸡,nil或NULL不能做為加到其中的Object,如果定義了一個NSArray徽诲,為其分配了內(nèi)存,又想設(shè)置其中的內(nèi)容為空导而,則可以用[NSNULL null】返回的對象來初始化NSArray中的內(nèi)容初始化內(nèi)容為空
Day03
寫一個代理
Day04
寫一個代理
Day05
weak和strong的區(qū)別,都是啥時候用?
Day07解釋@selector和SEL的含義和作用
@selector對方法進行包裝
SEL是一個數(shù)據(jù)類型.每一個方法都有一個isa指針
[selfrun]
Day08程序啟動的過程
0.main函數(shù)入口
1.創(chuàng)建UIApplication對象,創(chuàng)建代理對象,設(shè)置兩者的代理關(guān)系
2.開啟消息循環(huán)
3.加載plist文件,看里面有沒有指定storyboard,如果指定了,創(chuàng)建UIWindow對象.加載storyboard文件.根據(jù)storyboard里面箭頭指向的控制器,創(chuàng)建控制器對象,并且設(shè)置成window的根控制器,創(chuàng)建控制器的view,顯示到window上并且展示出來
沒有storyboard,就需要在程序啟動完成以后的代理函數(shù)里面寫代碼創(chuàng)建widow對象,創(chuàng)建控制器設(shè)置成window的根控制器,展示window
Day09數(shù)據(jù)怎么存儲,有幾種方式
偏好設(shè)置
xml xml文件或者plist文件
NSCoding
sqlite
Core data
Day10對內(nèi)存管理的理解
MRC
引用計數(shù)器
alloc new (mutable)copy retain? +1
relese? autorelease -1
蘋果官方的內(nèi)存管理原則:
1.誰創(chuàng)建或者retain,誰釋放
2.alloc new (mutable)copy retain ,就會要對應(yīng)一個
relese? autorelease
dealloc對象被銷毀的之前,調(diào)用
ARC
強指針對象有強指針指向,就不會被釋放
弱指針
循環(huán)引用問題