筆試時間 30分鐘
一惨远、Objective-C基礎部分
- Objective-C是一門面向?qū)ο笳Z言翰守,那么面向?qū)ο蟮?要素是什么?
- ARC為什么可以自動管理內(nèi)存孵奶?在哪些情況下ARC無效?
- 如何解決UITableView滑動卡頓的問題蜡峰?
- 自己實現(xiàn)的最有成就感的一個自定義控件是什么了袁,簡單介紹下亮點在哪里?核心實現(xiàn)邏輯是什么湿颅?
- 在A頁面中载绿,點擊按鈕跳轉(zhuǎn)到B頁面,B頁面在用戶操作后生成了一些數(shù)據(jù)油航,數(shù)據(jù)要回傳A頁面崭庸。回傳數(shù)據(jù)有幾種方案谊囚?
- 平時用坐標布局還是AutoLayout自動布局怕享,有何優(yōu)劣?
- 數(shù)據(jù)庫表結(jié)構升級有哪幾種方案秒啦?
- iOS系統(tǒng)中你用過哪幾種持久化存儲方式熬粗,講講它們的適用場景。
- 風格糾錯余境。如下所示代碼驻呐,有哪幾處風格你覺得有問題灌诅,請圈出。
風格糾錯
二含末、Swift基礎部分
- String和String?有什么區(qū)別猜拾?
- 有以下swift代碼
let str1: String? = "123"
let str2: String! = "456"
let str3 = str1 ?? str2
請問str3是什么類型的? - 現(xiàn)在有一個實體類如下所示佣盒,請問如何實現(xiàn)NSCopying協(xié)議挎袜。
class UserEntity : NSObject {
private var userName: NSString!
private var headImageURLStr: NSString!
init(userName: NSString, headImageURLStr: NSString) {
super.init()
self.userName = userName
self.headImageURLStr = headImageURLStr
}
override init() {
super.init()
}
func copyWithZone(zone: NSZone) -> AnyObject {
}
}
- guard關鍵字有何用?if let有何用肥惭?if let … where 有何用盯仪?
- 列舉switch的case支持的數(shù)據(jù)類型。
- 說說Swift中struct蜜葱、enum全景、class分別是什么拷貝類型。
- Swift代碼行末需要以分號結(jié)尾嗎牵囤?
- 定義一個Swift閉包爸黄。
- 定義一個Swift循環(huán)。
三揭鳞、進階部分
- 使用block時什么情況會發(fā)生循環(huán)引用炕贵,如何解決?在調(diào)用諸如UIView的動畫block時野崇,是否需要注意循環(huán)引用称开?
- 如果在一個viewDidLoad()中,定義了一個定時器
NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(handle2SecondTimer:), userInfo: nil, repeats: true)
那么定時器對于ViewController實例的正常銷毀是否會有影響舞骆?如果有影響钥弯,有何影響、如何解決督禽? - 我們現(xiàn)在做的是社交類應用脆霎,擁有聊天功能,用戶跟每一個好友之間狈惫,如果聊過天都會生成一個會話對象睛蛛,且需要持久化存儲。那么問題來了胧谈,如果有若干個子線程和一個主線程都需要訪問會話對象數(shù)組忆肾,應如何實現(xiàn)多線程同步?有幾種方法菱肖?簡單說說效率如何客冈?