龍華區蘋果ios開發課程(無限互聯大連iOS培訓)
2023-05-30 23:38:58
無限互聯大連iOS培訓基地正式成立啦!無限互聯是慧科教育集團旗下泛IT職業教育培訓機構。無限互聯於2015年加入慧科教育集團大家庭,成為慧科教育集團旗下專注於線下泛IT職業教育的培訓機構。此次在大連成立新的培訓基地,旨在更好的服務於廣大泛IT學習愛好者。
在成立初期,為了更好的向各位iOS培訓學員提供優質的服務,無限互聯大連iOS培訓中心的專家將會不定期的推送無限互聯內部學習資料,希望對各位iOS培訓學員以及iOS愛好者有所幫助!
無限互聯大連iOS培訓習題集:
1.類別和類擴展的區別。
答案:category和extensions的不同在於 後者可以添加屬性。另外後者添加的方法是必須要實現的。 extensions可以認為是一個私有的Category。
2.obc中的協議和Java中的接口概念有何不同?
答案:OBC中的代理有2層含義,官方定義為 formal和informal protocol。前者和Java接口一樣。 informal protocol中的方法屬於設計模式考慮範疇,不是必須實現的,但是如果有實現,就會改變類的屬性。 其實關於正式協議,類別和非正式協議我很早前學習的時候大致看過,也寫在了學習教程裡 「非正式協議概念其實就是類別的另一種表達方式「這裡有一些你可能希望實現的方法,你可以使用他們更好的完成工作」。 這個意思是,這些是可選的。比如我門要一個更好的方法,我們就會申明一個這樣的類別去實現。然後你在後期可以直接使用這些更好的方法。 這麼看,總覺得類別這玩意兒有點像協議的可選協議。" 現在來看,其實protocal已經開始對兩者都統一和規範起來操作,因為資料中說「非正式協議使用 interface修飾「, 現在我們看到協議中兩個修飾詞:「必須實現(@requied)」和「可選實現(@optional)」。
無限互聯大連iOS培訓:類別和類擴展的區別
5.什麼是kvc鍵?
答案:kvc:鍵 - 值編碼是一種間接訪問對象的屬性使用字符串來標識屬性,而不是通過調用存取方法,直接或通過實例變量訪問的機制。 很多情況下可以簡化程序代碼。 apple文檔其實給了一個很好的例子。 kvo:鍵值觀察機制,他提供了觀察某一屬性變化的方法,極大的簡化了代碼。 具體用看到嗯哼用到過的一個地方是對於按鈕點擊變化狀態的的監控。 比如我自定義的一個button [cpp] [self addObserver:self forKeyPath:@"highlighted" options:0 context:nil]; #pragma mark KVO - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if ([keyPath isEqualToString:@"highlighted"] ) { [self setNeedsDisplay]; } } 對於系統是根據keypath去取的到相應的值發生改變,理論上來說是和kvc機制的道理是一樣的。 對於kvc機制如何通過key尋找到value: 「當通過KVC調用對象時,比如:[self valueForKey:@」someKey」]時,程序會自動試圖通過幾種不同的方式解析這個調用。首先查找對象是否帶有 someKey 這個方法,如果沒找到,會繼續查找對象是否帶有someKey這個實例變量(iVar),如果還沒有找到,程序會繼續試圖調用 -(id) valueForUndefinedKey:這個方法。如果這個方法還是沒有被實現的話,程序會拋出一個NSUndefinedKeyException 異常錯誤。 (cocoachina.com註:Key-Value Coding查找方法的時候,不僅僅會查找someKey這個方法,還會查找getsomeKey這個方法,前面加一個get,或者_someKey以及 _getsomeKey這幾種形式。同時,查找實例變量的時候也會不僅僅查找someKey這個變量,也會查找_someKey這個變量是否存在。) 設計valueForUndefinedKey:方法的主要目的是當你使用-(id)valueForKey方法從對象中請求值時,對象能夠在錯誤發生前,有最後的機會響應這個請求。這樣做有很多好處,下面的兩個例子說明了這樣做的好處。「 來至cocoa,這個說法應該挺有道理。 因為我們知道 button卻是存在一個highlighted實例變量.因此為何上面我們只是add一個相關的keypath就行了, 可以按照kvc查找的邏輯理解,就說的過去了。
6.代理的作用?
答案:代理的目的是改變或傳遞控制鏈。允許一個類在某些特定時刻通知到其他類,而不需要獲取到那些類的指針。可以減少框架複雜度。 另外一點,代理可以理解為Java中的回調監聽機制的一種類似。
更多iOS培訓知識,iOS資料,請關注無限互聯大連iOS培訓中心:http://ios.wuxianedu.com/
加Q325957484可獲得學習視頻
關鍵詞標籤:iOS培訓,大連iOS培訓,大連iOS培訓基地
,