面試題(6)

1、請寫出代碼,用blocks來取代上例中的protocol,并比較兩種方法的優(yōu)勢。實際應用部分?請寫出代碼,用blocks取代協(xié)議或回調方法

聲明:

#import<Foundation/Foundation.h>

typedef void(^TestBlock)(NSString *string);

@interface LO_Person : NSObject

+ (void)showStringFromBlcok:(TestBlock)justBlock;

@end

實現(xiàn):

#import "LO_Person.h"

@implementation LO_Person

+ (void)showStringFromBlcok:(TestBlock)justBlock

{

NSString *str = @"測試blcok";

justBlock(str);

}

@end

調用:

[LO_Person showStringFromBlcok:^(NSString *string) {

NSLog(@"-- %@",string);

}];

1,你做iphone開發(fā)時候,有哪些傳值方式,view和Controller之間是如何傳值的?

屬性、delegate、block, 通知, 單例.

2,給定的一個字符串,判斷字符串中是否還有png,有就刪除它?

[string stringByReplacingOccurrencesOfString:@"png" withString: @""]

3,對于語句NSString* testObject = [[NSData alloc] init];testObject 在編譯時和運行時分別是什么類型的對象?

編譯的時候是NSString類型,運行的時候是NSData類型

4,OC中是所有對象間的交互是如何實現(xiàn)的?

消息發(fā)送機制

5,目標-動作機制

目標是動作消息的接收者。動作是控件發(fā)送給目標的消息,或者從目標的角度看,它是目標為了響應動作而實現(xiàn)的方法。常用的UIButton添加方法

6,for(int index = 0; index < largenumber; index ++){NSString *tempStr = @”tempStr”;NSLog(tempStr);NSNumber *tempNumber = [NSNumber numberWithInt:2];NSLog(tempNumber);}這段代碼有什么問題.?會不會造成內(nèi)存泄露(多線程)?在內(nèi)存緊張的設備上做大循環(huán)時自動釋放池是寫在循環(huán)內(nèi)好還是循環(huán)外好?為什么?

參照第三個文檔

7,描述上拉加載、下拉刷新的實現(xiàn)機制?

一般上拉加載和下拉刷新是使用在請求網(wǎng)絡數(shù)據(jù)的時候, 根據(jù)下拉或者上拉的距離來判斷是否進行網(wǎng)絡請求, 當請求結束以后, 將收回上拉或者下拉的提示框.

8,什么是沙盒(sandbox)?

沙盒包含哪些文件,描述每個文件的使用場景。如何獲取這些文件的路徑?如何獲取應用程序包中文件的路徑?iOS應用程序只能在為該改程序創(chuàng)建的文件系統(tǒng)中讀取文件,不可以去其它地方訪問,此區(qū)域被成為沙盒,所以所有的非代碼文件都要保存在此,例如圖像,圖標,聲音,映像,屬性列表,文本文件等。默認情況下,每個沙盒含有3個文件夾:Documents, Library 和 tmp。Documents:蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下,iTunes備份和恢復的時候會包括此目錄Library:存儲程序的默認設置或其它狀態(tài)信息;

Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除

tmp:提供一個即時創(chuàng)建臨時文件的地方。

iTunes在與iPhone同步時,備份所有的Documents和Library文件。iPhone在重啟時,會丟棄所有的tmp文件。

9,介紹一下XMPP?有什么優(yōu)缺點嗎?

XMPP:基于XML的點對點的即時通訊協(xié)議。XMPP 協(xié)議是公開的,XMPP 協(xié)議具有良好的擴展性,安全性缺點是丟包率比較高

10,談談對性能優(yōu)化的看法,如何做?

從用戶體驗出發(fā):1、程序logging不要太長、2、相同數(shù)據(jù)不做重復獲取、3、昂貴資源要重用(cell、sqlite、data),4、良好的編程習慣和程序設計:選擇正確的集合對象和算法來進行編程、選擇適合的數(shù)據(jù)存儲格式(plist、SQLite)、優(yōu)化SQLite查詢語句5、數(shù)據(jù)資源方面的優(yōu)化(緩存和異步加載)6. 永遠不要一直請求M7協(xié)處理器幾率的數(shù)據(jù), 會造成設備發(fā)熱.

解決方案:

能夠發(fā)現(xiàn)問題

利用log或工具分析問題原因

假設問題原因

改進代碼和設計

http://blog.csdn.net/yangxt/article/details/8173412

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容