在第一部分中,我討論了學(xué)習(xí)iOS開發(fā)的一些基本問題免糕。第二部分將更多地討論一些實際問題是目,這些問題都是你在開發(fā)iOS應(yīng)用時會遇到的。
Debugging
毋庸置疑贪薪,你在開發(fā)應(yīng)用的過程中一定會遇到很多錯誤和異常媳禁。比如,你會遇到NSInvalidArgumentException画切,遇到NSInternalInconsistencyException竣稽,還會遇到“0xfaded322”這種錯誤代碼。有時候你可以在Stack Overflow或Quora上找到答案霍弹,但大部分時候你得自力更生毫别。
Xcode具有斷點(diǎn)、視圖調(diào)試和日志的功能典格,是debug的不二之選岛宦。但畢竟孤掌難鳴,你仍需為它找些得力的幫手耍缴。
1.Pony Debugger
??
可能大多數(shù)應(yīng)用都需要將各種任務(wù)的數(shù)據(jù)存儲在本地砾肺。數(shù)據(jù)存儲是一個復(fù)雜的話題挽霉。它有很多選擇,每個選擇都對應(yīng)一種情況变汪。但我很喜歡Stack Overflow上的一種法則侠坎,用它來選擇數(shù)據(jù)存儲方式就很不錯。
若數(shù)據(jù)完全匹配內(nèi)存且相對非結(jié)構(gòu)化裙盾,則使用plist
若數(shù)據(jù)完全匹配內(nèi)存且具有樹狀結(jié)構(gòu)实胸,則使用XML
若數(shù)據(jù)與內(nèi)存不匹配且具有圖形結(jié)構(gòu),同時應(yīng)用不需要額外的查詢能力番官,則使用Core Data
如果數(shù)據(jù)與內(nèi)存不匹配且具有復(fù)雜結(jié)構(gòu)庐完,或應(yīng)用需要關(guān)系數(shù)據(jù)庫提供的強(qiáng)查詢能力,則使用sqlite
如果數(shù)據(jù)必須保密(例如密碼)徘熔,則使用keychain门躯。
? ?
? ?
http://www.cocoachina.com/ios/20150611/12111.html
? ?
? ?
???
我以迅雷不及掩耳盜鈴之勢開始在Xcode上編程,用了page view controller和scroll view近顷。在Stack Overflow和Google的幫助下生音,我用了2天把它完成了。當(dāng)我把產(chǎn)品給一個同樣搞iOS開發(fā)的朋友看時窒升,他跟我說,如果我用了這個開源項目的話慕匠,一個小時就可以搞定一切饱须。
過去這一年我經(jīng)歷了不少類似的事情,這些事情讓我成長台谊,讓我能夠成為一個更好的iOS開發(fā)工程師蓉媳。我想跟大家分享一下我的經(jīng)驗,希望你們可以不再犯我這些錯誤锅铅,一路平坦走向成功酪呻。
重視基礎(chǔ)
剛開始學(xué)iOS開發(fā)的時候,我直接去學(xué)習(xí)了斯坦福大學(xué)的這門課程盐须,非常有用玩荠。然而,雖然我從課程中學(xué)到了很多贼邓,但它并沒有教給我多少iOS開發(fā)語言的基礎(chǔ)知識——當(dāng)時的iOS開發(fā)語言主要是Objective-C阶冈。開始寫自己的app以后,我發(fā)現(xiàn)自己在基礎(chǔ)知識方面欠缺很多塑径,這導(dǎo)致我老是弄出來一些bug女坑。
如果你在面向?qū)ο缶幊痰恼Z言方面沒啥經(jīng)驗的話,我建議你在投身進(jìn)行iOS開發(fā)之前先讀一本這方面的經(jīng)典書籍统舀。我最喜歡的兩本是Big Nerd Ranch Guide for Objective-C和Swift的The Apple's Guide匆骗。
????
沒錯劳景,Ray Wenderlich上的教程和Team Treehouse上的視頻課程能教給你很多,但缺少基礎(chǔ)知識的程序員就像無源之水、無本之木碉就,總是長久不了的盟广。
???
學(xué)習(xí)使用Xcode中的快捷鍵。雖然看上去使用快捷鍵沒節(jié)省幾秒鐘铝噩,但“不積小流衡蚂,無以成江海“骏庸,久而久之省下的時間就多了毛甲。以上這些都是我親測有效的手段,它們在提高開發(fā)效率方面給了我很大幫助具被。
使用Cocoapods來進(jìn)行依賴管理玻募。你的團(tuán)隊會因此輕松很多。
在項目早期就學(xué)會使用持續(xù)整合(continuos integration)一姿,這樣就可以避免未來可能出現(xiàn)的冗余工作七咧。
使用Testflight來分發(fā)測試版本。在被蘋果收購之后叮叹,Testflight變得更加簡單易用了艾栋,每個人都可以通過它來使用iTunes賬號進(jìn)行測試版本的分發(fā)。
在app中整合Crashlytics蛉顽,這樣當(dāng)app崩潰的時候你就可以獲取Crash報告了蝗砾。
如果你不想自己弄后端服務(wù)器的話,Parse為我們提供了很好的服務(wù)携冤。
? ?
? ?
http://www.cocoachina.com/ios/20150608/12052.html
? ?
? ?