1、神拷貝和淺拷貝有什么區別?
? ? 淺拷貝:指針(地址)拷貝,不會產生新對象
? ? 深拷貝:內容拷貝,會產生新對象
2、分類有什么好處? 分類和繼承有什么區別?
? ? 分類可以在不修改原來類模型的基礎上拓充方法
? ? 分類只能擴充方法、不能擴充成員變量;繼承可以擴充方法和成員變量
? ? 繼承會產生新的類
3、分類和拓展有什么區別?
? ? 分類是有名稱的,類擴展沒有名稱
? ? 分類只能擴充方法、不能擴充成員變量;類擴展可以擴充方法和成員變量
? ? 類擴展一般就寫在.m文件中,用來擴充私有的方法和成員變量(屬性)
4、OC中的協議和Java中的接口有什么不同?
? ? Java的接口中聲明的方法必須都實現
? ? Oc的protocol中聲明的方法并不一定要實現
5、什么是 KVO 和 KVC?
? ? KVC是鍵值編碼,可以通過一個字符串的key(屬性名)修改對象的屬性值
? ? KVO是鍵值監聽,可以監聽一個對象屬性值的改變
6、What is purpose of delegates?
? ? 兩個對象之間傳遞數據和消息
? ? 解耦,拆分業務邏輯
7、OC中的mutable 和immutable分別指什么?
? ? mutable是可變類型,比如NSMutableArray,可以動態往里面添加元素
? ? immutable是不可變類型,比如NSArray,固定的存儲空間,不能添加元素
8、為什么我們把OC稱為運行時語言?
? ? 動態綁定:對象類型在運行時才真正確定
? ? 多態性
9、 NSNotification 和 protocol有什么不同?
? ? 通過NSNotification可以給多個對象傳遞數據和消息
? ? 通過protocol(代理模式)只能給一個對象傳遞數據和消息
10、什么是 push notification?
? ? 本地推送:程序內部彈出通知到用戶設備
? ? 遠程推送:由推送服務器推送通知到用戶設備