1.When to use NSMutableArray and when to use NSArray?
什么時候使用NSMutableArray积仗,什么時候使用NSArray?
答案:當(dāng)數(shù)組在程序運行時攀细,需要不斷變化的箫踩,使用NSMutableArray,當(dāng)數(shù)組在初始化后谭贪,便不再改變的境钟,使用NSArray。需要指出的是俭识,使用NSArray只表明的是該數(shù)組在運行時不發(fā)生改變慨削,即不能往NSAarry的數(shù)組里新增和刪除元素,但不表明其數(shù)組內(nèi)的元素的內(nèi)容不能發(fā)生改變套媚。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就是委托機制的典型應(yīng)用本辐,是一個典型的使用委托來實現(xiàn)適配器模式桥帆,其中UITableViewDelegate協(xié)議是目標(biāo),tableview是適配器慎皱,實現(xiàn)UITableViewDelegate協(xié)議老虫,并將自身設(shè)置為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?
在應(yīng)用中可以創(chuàng)建多少autorelease對象,是否有限制地梨?
答案:無
4.If we don’t create any autorelease pool in our application then is there any autorelease pool already provided to us?
如果我們不創(chuàng)建內(nèi)存池菊卷,是否有內(nèi)存池提供給我們?
答案:界面線程維護著自己的內(nèi)存池宝剖,用戶自己創(chuàng)建的數(shù)據(jù)線程洁闰,則需要創(chuàng)建該線程的內(nèi)存池
5.When you will create an autorelease pool in your application?
什么時候需要在程序中創(chuàng)建內(nèi)存池?
答案:用戶自己創(chuàng)建的數(shù)據(jù)線程万细,則需要創(chuàng)建該線程的內(nèi)存池
6.When retain count increase?
什么時候內(nèi)存計數(shù)會增加扑眉?
答案:見iOS面試題(一)
7.What are commonly used NSObject class methods?
類NSObject的那些方法經(jīng)常被使用?
答案:NSObject是Objetive-C的基類赖钞,其由NSObject類及一系列協(xié)議構(gòu)成腰素。
其中類方法alloc、class雪营、 description 對象方法init弓千、dealloc、–?performSelector:withObject:afterDelay:等經(jīng)常被使用
8.What is convenience constructor?
什么是簡便構(gòu)造方法献起?
答案:簡便構(gòu)造方法一般由CocoaTouch框架提供洋访,如NSNumber的+?numberWithBool:+?numberWithChar:+?numberWithDouble:+?numberWithFloat:+?numberWithInt:
Foundation下大部分類均有簡便構(gòu)造方法镣陕,我們可以通過簡便構(gòu)造方法,獲得系統(tǒng)給我們創(chuàng)建好的對象姻政,并且不需要手動釋放呆抑。
9.How to design universal application in Xcode?
如何使用Xcode設(shè)計通用應(yīng)用?
答案:使用MVC模式設(shè)計應(yīng)用汁展,其中Model層完成脫離界面鹊碍,即在Model層,其是可運行在任何設(shè)備上食绿,在controller層妹萨,根據(jù)iPhone與iPad(獨有UISplitViewController)的不同特點選擇不同的viewController對象。在View層炫欺,可根據(jù)現(xiàn)實要求,來設(shè)計熏兄,其中以xib文件設(shè)計時品洛,其設(shè)置其為universal。
10.What is keyword atomic in Objective C?
在Objetive-C什么時原子關(guān)鍵字
答案:atomic摩桶,nonatomic見iOS面試題(一)
11.What are UIView animations?
UIView的動畫效果有那些桥状?
答案:有很多,如UIViewAnimationOptionCurveEaseInOutUIViewAnimationOptionCurveEaseInUIViewAnimationOptionCurveEaseOutUIViewAnimationOptionTransitionFlipFromLeftUIViewAnimationOptionTransitionFlipFromRightUIViewAnimationOptionTransitionCurlUpUIViewAnimationOptionTransitionCurlDown
12.How can you store data in iPhone applications?
在iPhone應(yīng)用中如何保存數(shù)據(jù)硝清?
答案:有以下幾種保存機制:
1.通過web服務(wù)辅斟,保存在服務(wù)器上
2.通過NSCoder固化機制,將對象保存在文件中
3.通過SQlite或CoreData保存在文件數(shù)據(jù)庫中
13.What is coredata?
什么是coredata芦拿?
答案:coredata框架是apple提供的一套通用自動的解決方案士飒,包括了對象生存周期、對象關(guān)系圖蔗崎、持久化機制酵幕。
補充答案:上面是翻譯的,按我個人理解coredata提供一種一機制缓苛,讓我們可以方便的把內(nèi)存中對象芳撒,及對象間的關(guān)系,映射到coredata未桥,然后由它為我們持久化數(shù)據(jù)笔刹。相比普通的文件數(shù)據(jù)庫SQlite,它的功能更強大冬耿,不需要我們先將對象數(shù)據(jù)format成SQL語句舌菜,存入數(shù)據(jù)庫,再用select語句讀出亦镶,而現(xiàn)在是從內(nèi)存到coredata的數(shù)據(jù)管理酷师,我們只需管理coredata的managed對象讶凉。
是蘋果提供一套數(shù)據(jù)保存
14.What is NSManagedObject model?
什么是NSManagedObject模型?
答案:NSManagedObject是NSObject的子類 山孔,也是coredata的重要組成部分懂讯,它是一個通用的類,實現(xiàn)了core data 模型層所需的基本功能,用戶可通過子類化NSManagedObject台颠,建立自己的數(shù)據(jù)模型褐望。
15.What is NSManagedobjectContext?
什么是NSManagedobjectContext?
答案:NSManagedobjectContext對象負(fù)責(zé)應(yīng)用和數(shù)據(jù)庫之間的交互串前。
16.What is predicate?
什么是謂詞瘫里?
答案:謂詞是通過NSPredicate,是通過給定的邏輯條件作為約束條件荡碾,完成對數(shù)據(jù)的篩選谨读。
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系統(tǒng)不支持),自動存儲,SQLite,內(nèi)存存儲坛吁。
補充說明:這個問題問的是劳殖,coredate框架的存儲機制,平時使用coredata時拨脉,更多關(guān)注的是managed的對象哆姻,這里是coerdata框架的存儲實現(xiàn)細(xì)節(jié)。BTW: 其他常用的持久化存儲方法 :存入到文件玫膀、?存入到NSUserDefaults(系統(tǒng)plist文件中)矛缨。