ios面試題(三)

1.When to use NSMutableArray and when to use NSArray? html

何時使用NSMutableArray,何時使用NSArray?web

答案:當數組在程序運行時,須要不斷變化的,使用NSMutableArray,當數組在初始化後,便再也不改變的,使用NSArray。須要指出的是,使用NSArray只代表的是該數組在運行時不發生改變,即不能往NSAarry的數組裏新增和刪除元素,但不代表其數組內的元素的內容不能發生改變。NSArray是線程安全的,NSMutableArray不是線程安全的,多線程使用到NSMutableArray須要注意。面試

2.Give us example of what are delegate methods and what are data source methods of uitableview.數據庫

給出委託方法的實例,而且說出UITableVIew的Data Source方法數組

答案:CocoaTouch框架中用到了大量委託,其中UITableViewDelegate就是委託機制的典型應用,是一個典型的使用委託來實現適配器模式,其中UITableViewDelegate協議是目標,tableview是適配器,實現UITableViewDelegate協議,並將自身設置爲talbeview的delegate的對象,是被適配器,通常狀況下該對象是UITableViewController。安全

UITableVIew的Data Source方法有- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;服務器

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;多線程

3.How many autorelease you can create in your application? Is there any limit?app

在應用中能夠建立多少autorelease對象,是否有限制?框架

答案:無

4.If we don’t create any autorelease pool in our application then is there any autorelease pool already provided to us?

若是咱們不建立內存池,是否有內存池提供給咱們?

答案:界面線程維護着本身的內存池,用戶本身建立的數據線程,則須要建立該線程的內存池

5.When you will create an autorelease pool in your application?

何時須要在程序中建立內存池?

答案:用戶本身建立的數據線程,則須要建立該線程的內存池

6.When retain count increase?

何時內存計數會增長?

答案:見iOS面試題(一)

7.What are commonly used NSObject class methods?

類NSObject的那些方法常常被使用?

答案:NSObject是Objetive-C的基類,其由NSObject類及一系列協議構成。

其中類方法alloc、class、 description 對象方法init、dealloc、– performSelector:withObject:afterDelay:等常常被使用 

8.What is convenience constructor?

什麼是簡便構造方法?

答案:簡便構造方法通常由CocoaTouch框架提供,如NSNumber的 + numberWithBool:  + numberWithChar:  + numberWithDouble:  + numberWithFloat:  + numberWithInt:

Foundation下大部分類均有簡便構造方法,咱們能夠經過簡便構造方法,得到系統給咱們建立好的對象,而且不須要手動釋放。

9.How to design universal application in Xcode?

如何使用Xcode設計通用應用?

答案:使用MVC模式設計應用,其中Model層完成脫離界面,即在Model層,其是可運行在任何設備上,在controller層,根據iPhone與iPad(獨有UISplitViewController)的不一樣特色選擇不一樣的viewController對象。在View層,可根據現實要求,來設計,其中以xib文件設計時,其設置其爲universal

10.What is keyword atomic in Objective C?

在Objetive-C什麼時原子關鍵字

答案:atomic,nonatomic見iOS面試題(一)

11.What are UIView animations?

UIView的動畫效果有那些?

答案:有不少,如  UIViewAnimationOptionCurveEaseInOut     UIViewAnimationOptionCurveEaseIn     UIViewAnimationOptionCurveEaseOut    UIViewAnimationOptionTransitionFlipFromLeft   UIViewAnimationOptionTransitionFlipFromRight     UIViewAnimationOptionTransitionCurlUpUIViewAnimationOptionTransitionCurlDown 

如何使用可見該博文

12.How can you store data in iPhone applications?

在iPhone應用中如何保存數據?

答案:有如下幾種保存機制:

1.經過web服務,保存在服務器上

2.經過NSCoder固化機制,將對象保存在文件中

3.經過SQlite或CoreData保存在文件數據庫中

13.What is coredata?

什麼是coredata?

答案:coredata框架是apple提供的一套通用自動的解決方案,包括了對象生存週期、對象關係圖、持久化機制。

補充答案:上面是翻譯的,按我我的理解coredata提供一種一機制,讓咱們能夠方便的把內存中對象,及對象間的關係,映射到coredata,而後由它爲咱們持久化數據。相比普通的文件數據庫SQlite,它的功能更強大,不須要咱們先將對象數據format成SQL語句,存入數據庫,再用select語句讀出,而如今是從內存到coredata的數據管理,咱們只需管理coredata的managed對象。

是蘋果提供一套數據保存

14.What is NSManagedObject model?

什麼是NSManagedObject模型?

答案:NSManagedObject是NSObject的子類 ,也是coredata的重要組成部分,它是一個通用的類,實現了core data 模型層所需的基本功能,用戶可經過子類化NSManagedObject,創建本身的數據模型。

15.What is NSManagedobjectContext?

什麼是NSManagedobjectContext?

答案:NSManagedobjectContext對象負責應用和數據庫之間的交互。

16.What is predicate?

什麼是謂詞?

答案:謂詞是經過NSPredicate,是經過給定的邏輯條件做爲約束條件,完成對數據的篩選。

 

    predicate = [NSPredicate predicateWithFormat:@"customerID == %d",n];

    a = [customers filteredArrayUsingPredicate:predicate];

 

17.What kind of persistence store we can use with coredata?

coredata有哪幾種持久化存儲機制?

答案:coredatat提供如下幾種存儲機制:XML(iOS系統不支持),自動存儲,SQLite,內存存儲。 

補充說明:這個問題問的是,coredate框架的存儲機制,平時使用coredata時,更多關注的是managed的對象,這裏是coerdata框架的存儲實現細節。BTW: 其餘經常使用的持久化存儲方法 :存入到文件、 存入到NSUserDefaults(系統plist文件中)。

相關文章
相關標籤/搜索