iOS基礎面試題(三)

來源:互聯網
上載者:User

在上一篇中有20道iOS面試題,這是其後半部分。

iOS面試題系列:

iOS如何面試

iOS面試題(一)

iOS面試題(二)

iOS面試題(四)

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

什麼時候使用NSMutableArray,什麼時候使用NSArray?

答案:當數組在程式運行時,需要不斷變化的,使用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?

在應用中可以建立多少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設計跨平台 app?

答案:使用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是蘋果提供一套資料儲存架構,其基於SQlite

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有哪幾種持久化儲存機制?

答案:無



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.