1.單例設計模式的實現,為什么使用單例模式?? ? ? ? ? ? ? ? ? ? ? ? ? ? static ?MusicManager *manager=nil; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
@implementation MusicManager
//獲取單例的方法
+(MusicManager*)defaultManager
{
? ? ?//只調用一次,保證線程安全
? ? ?static ?dispa tch_once_t ?onceToken
? ? ?dispatch_once(&onceToken,^{
? ? ? ? ? ? ? if(manager == nil){
? ? ? ? ? ? ? manager = [[MusicManager alloc]init];
? ? ? ? ? ? ? }
? ? ?});
? ? ? return ? manager;
}
為什么使用單例設計??
? ? 1.單例設計是用來限制一個類只能創建一個對象,那么此對象中的屬性可以存儲全局共享的數據,所有的類都可以訪問,設置此單例對象中的屬性數據。2.如果一個類創建的時候非常消耗性能,那么此類可以設置為單例節約性能,只要能夠滿足需求。
2.CALayer層和UIView的區別是什么???
? ? ? ?兩者最大的區別是,圖層不會直接渲染到屏幕上,UIView是iOS系統中界面元素的基礎,所有的界面元素都是繼承于它。它本身是有CoreAnimation來實現的,它真正的繪圖部分,是由一個CALayer類來管理的。而UIView就像是CALayer的管理器,一個UIView上可以有多個CALayer,每個都可以顯示一種東西,從而增強UIView的展現能力。
3.設計模式:
? ? ?MVC,單例,工廠,KVO,策略
? ? ?MVC是一種架構設計,M表示數據模型,V表示視圖,C表示控制器
? ? ?1>數據模型:負責存儲,定義,操作數據
? ? ?2>視圖:用來展示數據給用戶,和用戶進行操作交互
? ? ?3>控制器是M和V的協調者,控制器獲取數據,將數據交給視圖去展示?
4.數據持久化存儲的方式:
? ? ? plist,歸檔,NSUserdefaults,數據庫(FMDB,CoreData)
5.UITableView的復用機制:
6.系統創建多線程的方式:
? ? GCD,NSOperation,NSThread
7.OC中繼承和類別的區別:
? ? 繼承是繼承父類的方法,子類擁有父類的屬性或者方法,類別是為某個類添加一些新的方法,優先使用自己的方法。
8.KVO和KVC的區別:
9.響應者鏈:
? ? ?響應者鏈表示一系列的響應者對象,事件被交由第一響應者對象處理,如果第一響應者不處理,時間被沿著響應者蓮向上傳遞,交給下一個響應者,一般來說,第一響應者是個視圖對象或者其子類對象,當其被觸摸后時間唄交由它處理,如果它不處理,事件就會被傳遞給它的視圖控制器對象,若存在,就是它的父視圖對象,若還存在,直到頂層視圖。接下來會沿著頂層視圖到窗口,再到程序,如果整個過程都沒有響應這個事件,改事件就會被丟棄。