iOS面試題

1  iOS中傳值的方式

屬性  代理  通知  單例  block  

2 寫一個單例  代理  類別

單例

+(id)allocWithZone:(struct _NSZone *)zone
{
    
    static Person *person;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        person = [super allocWithZone:zone];
    });
    return person;
}

+(Person *)sharePerson
{
    return [[self alloc] init];
}


3 info.plist 和Prefix.pch的用處
info.plist
項目的配置屬性
 
Prefix.pch
1.存放一些全局的宏(整個項目中都用得上的宏)

2.用來包含一些所有的頭文件(整個項目中都用得上的頭文件)

3.能自動打開或者關閉日誌輸出功能



4iOS中是否有多線程?怎麼實現多態?

 沒有

分類和協議



5 多線程有哪些?主線程和次線程有什麼區別?怎麼通訊?

NSThread  GCD NSOperation

主線程不須要建立就存在,子線程須要建立,初始時候不存在

更新UI必須在主線程  而進行延時操做通常都在子線程



-(void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

 dispatch_async(dispatch_get_main_queue(), <#^(void)block#>)

6 數據存儲的方式

1 plist

2 歸檔

3 SOLite

4CoreData

7jason解析遇到大量數據解析過程時,在內存上的優化辦法

利用json的反序列話的幾個代理方法,實現大數據的分割,解析,拼接,保存,從而下降內存的消耗。

優化後臺接口,使後臺返回的數據大小更合理

在APP中,通常不會出現大數據,所以注意接口的優化,儘可能不要使用數據分割的方式,由於可能引發數據解析錯誤



8mvc模式

1>  M:Model,模型,封裝數據

2>  V:View,視圖界面,負責展現數據

3>  C:Controller,控制器,負責提供數據(Model)給界面(View)



9iOS中的文件目錄以及常保存的數據內容 

一、Documents 目錄:您應該將全部de應用程序數據文件寫入到這個目錄下。這個目錄用於存儲用戶數據或其它應該按期備份的信息。

二、AppName.app 目錄:這是應用程序的程序包目錄,包含應用程序的自己。因爲應用程序必須通過簽名,因此您在運行時不能對這個目錄中的內容進行修改,不然可能會使應用程序沒法啓動。

三、Library 目錄:這個目錄下有兩個子目錄:Caches 和 Preferences
Preferences 目錄:包含應用程序的偏好設置文件。您不該該直接建立偏好設置文件,而是應該使用NSUserDefaults類來取得和設置應用程序的偏好.
Caches 目錄:用於存放應用程序專用的支持文件,保存應用程序再次啓動過程當中須要的信息。

四、tmp 目錄:這個目錄用於存放臨時文件,保存應用程序再次啓動過程當中不須要的信息。

10查找table中id<10和隨機10條的sql語句

select  top 10* from Table where id < 10

select  top 10* from Table order by newid()
相關文章
相關標籤/搜索