1.Objective-C 有私有方法嗎?私有變量呢?若是沒有的話,有沒有什麼代替的方法?設計模式
Objective-C 中的方法分爲:靜態方法和實例方法數組
沒有私有方法,有私有變量,全部實例變量默認都是私有的,全部實例方法默認都是公有的架構
私有方法能夠用 category 和 extension 來代替app
2. #import、#include和@class有什麼區別?ide
@class通常用於頭文件中須要聲明該類的某個實例變量的時候用到,它只是聲明瞭一個類名,關於這個類的內部實現都沒有告訴編譯器,在m文件中仍是須要使用#import。 而#import比起#include的好處就是不會引發交叉編譯。spa
3.談談你對MVC的理解?爲何要用MVC?在Cocoa中MVC是怎麼實現的?你還熟悉其餘的OC設計模式或別的設計模式嗎?設計
MVC就是Model-View-Controller的縮寫,M指的是業務模型,V指的是用戶頁面,C指的是控制器。MVC是架構模式,是講M和 V的代碼分離,從而使同那個一個程序可使用不一樣的表現形式。 M:表示數據和業務規則,V是用戶看到的並與之交互的頁面,C是接受用戶的輸入並調用M和V取完成用戶需求的。server
單例模式,Delegate模式,KVC模式,消息通知模式,Target/Action模式對象
4. 如何監測系統鍵盤的彈出?接口
UIKeyboardDidShowNotification(鍵盤彈出通知)
UIKeyboardWillHideNotification (鍵盤消失通知)
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector() name:UIKeyboardWillShowNotification object:nil];
5.舉出5個以上你所熟悉的iOS SDK庫有哪些和第三方庫有哪些?
AFNetworking,SDWebp_w_picpath,ShareSDK,MJRefresh,FMDB,MBProgressHUD
6.如何將產品進行多語言發佈?
在工程InfoPlist.strings中添加發布時須要的語言,並在Info.plist中添加新的屬性Application has localized display name 設置類型爲boolean並將value設置爲YES,建立".strings"文件進行字符串 圖片和其餘文件的多語言處理
7.如何將敏感字變成** ?
// 存取敏感字的數組 NSMutableArray *array = [[NSMutableArray alloc]init]; // 向敏感字數組裏添加元素 NSString *element1 = @"敏感字"; NSString *element2 = @"我"; [array addObject:element1]; [array addObject:element2]; // 要判斷的字符串 NSMutableString *str = [[NSMutableString alloc]initWithString:@"我是敏感字"]; for (int i = 0; i < array.count; i++) { // 敏感字替代字符串 NSMutableString *replaceString = [[NSMutableString alloc]init]; // 判斷字符串是否包含指定字符串,返回位置和長度 NSRange range = [str rangeOfString:array[i]]; for (int j = 0; j<range.length; j++) { [replaceString appendString:@"*"]; } // 某個範圍用字符代替 [str replaceCharactersInRange:range withString:replaceString]; } NSLog(@"%@",str);
8.objc中的減號與加號表明什麼?
前置加號(+)的方法爲類方法 這類方法是能夠直接用類名來調用的。它的做用是建立一個實例,有人把它稱爲建立實例的工廠方法
前置減號(-)的方法爲實例方法,必須使用類的實例才能夠調用
9. 單例目的是什麼?
目的:封裝一個共享的資源 提供一個固定的實例建立的方法 提供一個標準的實例訪問接口,節省內存。
10、 說說響應鏈
首先要明確的是:在IOS中,有響應者鏈對事件進行響應,全部的響應類都是UIResponder的子類,響應者鏈是由不一樣的對象組成的層次結構,其中的每個對象將依次得到響應事件消息的機會。
響應者鏈的過程:
當事件發生的時候,響應鏈首先被髮給第一個響應者(每每是事件發生的視圖,也就是用戶觸摸屏幕的地方)事件將沿着響應者鏈一直傳遞下去,直到被接受並處理。通常來講,第一響應是視圖對象或者其子類,當其被觸摸後事件就交它處理,若是它不處理,事件就會被傳遞給視圖控制器UIViewController(若是存在)而後是它的父視圖,以此類推直到頂層視圖。接下來會沿着頂層視圖(top View)到窗口(UIWidow對象)再到程序的UIApplication對象 ,若是整個過程沒有響應這個事件,則該事件被丟棄。通常狀況下,在響應者鏈中只要有對象處理事件,事件就會傳遞。