1,請你講講mrc的記憶體管理
mac的記憶體管理是採用了引用計數,
當alloc/new/copy計數器初始值為1
retain時計數器加1
release時計數器減1
我們需要在dealloc方法中釋放變數,當物件被銷毀時,系統就會自動呼叫方法,當計數器為0時,方法也會被自動呼叫
2,請你講講@proprety關鍵字的作用
我認為是提供了乙個外界訪問成員變數的介面,就是給成員變數提供了set和get的方法
3,請你講講@proprety中assign,retain,strong, weak有什麼區別
assign和retain是mrc中的,assign修飾的變數既不能retain也不能被release,所以一般在基本資料型別用assign,(因為基本資料型別都是存放在全域性區或者棧區,不需要手動釋放),而retain用來修飾物件型別
strong與weak都是現在arc中的,我認為強引用strong與retain作用相同,計數器都會加1
而弱引用weak與assign作用相同,可以用來修飾基本資料型別,當然在retain cycle中也確實需要weak
4,請你講講如今ios的頁面約束問題(介面適配)
1,用原生的nslayoutconstraint(非常的麻煩,不推薦)
2,vlf簡化
3,第三方框架masonry (特別簡潔)
uiedgeinsets padding = uiedgeinsetsmake(10, 10, 10, 10);
[view1 mas_makeconstraints:^(masconstraintmaker *make) ];
甚至我們這樣寫得更加簡潔
[view1 mas_makeconstraints:^(masconstraintmaker *make) ];
5,tableviewcell的重用機制
乙個單元格對應乙個reuseidentifer可重用識別符號,當乙個單元格滾出螢幕時可以被用來重用,運用重用機制,即時上百個單元格也只需要螢幕顯示的最大單元格數,當新的cell進入螢幕時,會隨機呼叫已經滾出螢幕的cell所占用的記憶體
uitableviewcel *cell =[tableview dequeuereusablecellwithidentifier:@"cell" ];
if(cell=nil)
iOS面試題 一
圖中包含的設計模式 delegate 模式 notification kvo 觀察者模式 target action 命令模式 mvc 中介者模式 內建了策略模式 裝置並不在開發者賬號裡 有 些閃退,像ios10的時候,要我們加的那個訪問許可權,如相機的訪問,就是在plist 檔案 面加上.清 快取...
iOS 演算法面試題(一)
1 不用中間變數,用兩種方法交換a和b的值 1.中間變數 void swap int a,int b 2.加法 void swap int a,int b 3.異或 相同為0,不同為1.可以理解為不進製加法 void swap int a,int b 2 求最大公約數 1.直接遍曆法 int max...
iOS面試題總結(一)
1.為什麼不能給類別category 新增成員變數?extension呢?2.iskindofclass 和 ismemberofclas區別?3.weak的實現原理 4.理解 self class 與 super class 5.ios中的記憶體管理機制 6.block如何訪問外部變數?下劃線 b...