内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

ios開發(fā)技術(shù)分享,ios 開發(fā)

ios 判斷有沒有實(shí)現(xiàn)代理協(xié)議

【iOS開發(fā)技術(shù)分享】協(xié)議與代理

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、東湖網(wǎng)站維護(hù)、網(wǎng)站推廣。

【iOS開發(fā)技術(shù)分享】協(xié)議與代理

一、理解協(xié)議與代理

協(xié)議:

協(xié)議是一個方法簽名的列表,在其中可以定義若干個方法。根據(jù)配置,遵守該協(xié)議的類會去實(shí)現(xiàn)這個協(xié)議中規(guī)定的若干個方法。

代理:

代理是一個概念,很難用一個名詞去定義(如我們可以說協(xié)議其實(shí)就是一個方法列表)。它更像是一種關(guān)系,我要做某一個事情,但我自己不想去做這件事,我委托其他人幫我去做這件事。這個時候,這位其他人就是我的代理。

二、協(xié)議的使用

在定義協(xié)議時,可以通過@required與@optional來配置遵守這個協(xié)議必須去實(shí)現(xiàn)的方法和可以選擇的方法。譬如:

@protocol MyChooseDayViewDelegateNSObject

@required

- returnChooseDay:(id)myChooseDayView;

@optional

- hideThisView;

- changeDateFormatter:(NSString*)formatString;

@end

在定義的協(xié)議 MyChooseDayViewDelegate中,如果遵守該協(xié)議,就必須實(shí)現(xiàn)協(xié)議中的- returnChooseDay: 方法,同時可以根據(jù)實(shí)際程序要求去實(shí)現(xiàn)- hideThisView 與 - changeDateFormatter: 。

同時,協(xié)議支持對本身的一種擴(kuò)展,譬如:

@protocol MyChooseTimeViewDelegate MyChooseDayViewDelegate

- doSomething;

@end

MyChooseTimeViewDelegate

擴(kuò)展了MyChooseDayViewDelegate這個協(xié)議,也就是說,假如遵守了MyChooseTimeViewDelegate的話,也必須實(shí)

現(xiàn)MyChooseDayViewDelegate中的方法(@required)使用分類的話,就是在定義類的頭文件中使用

將所需要的協(xié)議引入,如果引入多個協(xié)議,用","分隔,譬如:

@interface MyClassView:UIViewController MyChooseDayViewDelegate, UIAlertViewDelegate

//TODO: balabalabala...

@end

想要檢查某個類是否實(shí)現(xiàn)了某個協(xié)議或者某個類是否實(shí)現(xiàn)了某個協(xié)議的方法,可以通過以下方式來進(jìn)行測試

//獲取某個對象

MyClassView *myClassView = xxxxxxx;

//判斷該對象是否實(shí)現(xiàn)了MyChooseDayViewDelegate協(xié)議

if([myClassView conformToProtocol:@protocol (MyChooseDayViewDelegate)]){

//TODO: balabalabala...

}

//判斷對象是否實(shí)現(xiàn)了某個方法就用我們經(jīng)常會使用到的

if([myClassView responseToSelector:@selector(xxxx)]){

//TODO: balabalabala...

}

三、代理

代理在iOS開發(fā)會被經(jīng)常使用,而且代理的使用往往配合著協(xié)議。我重復(fù)一次我對他的理解,我要做某一個事情,但我自己不想去做這件事,我委托其他人幫我去做這件事。

舉例來說,我在辦公室里正在寫代碼,突然發(fā)現(xiàn)口

很渴像喝瓶冰百事,但下樓是件麻煩的事情,我不愿意下樓。這個時候我想起小賣部可以商品加價2元就外送到家服務(wù),我就打電話給小賣部,委托小賣部給我送一

瓶水上來。這個時候,小賣部就是我的代理,我委托他幫買水并送上來。這個例子中小賣部是我的代理,商品加價2元外送到家服務(wù)就是商品買賣協(xié)議(這個叫法肯

定不是最佳的,姑且這么叫吧)中的一個方法。

不要覺得麻煩,我們再最后理一遍,小賣部遵守商品買賣協(xié)議,我讓小賣部成為了我的代理,代替我完成了買瓶冰百事的事情。

以iOS開發(fā)的角度來說,UIViewController想使用一個tableview,需要遵守UITableviewDataSource,UITableViewDelegate這2個協(xié)議,同時設(shè)置tableview的代理為自身,才可以完整的實(shí)現(xiàn)Table。

四、代理與協(xié)議的使用

我盡可能的用代碼來進(jìn)行描述,但首先需要進(jìn)行一些context鋪墊

我想實(shí)現(xiàn)的功能:我要自定義一個View,這個

view可能展示了我自己項(xiàng)目中特定的一些信息,它可能是若干控件的組合,譬如UITextField、UISwitch、UIDatePicker、

balabalabala...我們姑且叫這個view為myInformationView 我在一個ViewController使用了這個

view,為了方便,這個ViewController就叫myRootViewController。在使用這個myInformationView

時,我需要即時的在myRootViewController獲取并做相應(yīng)的處理。這是我想實(shí)現(xiàn)的功能。

接下來,就是開始寫代碼的時刻:

1.首先是一個protocol

#import Foundation/Foundation.h

@class MyInformationView;

@protocol MyInformatioViewDelegateNSObject

@required

@returnValueToShow:(MyInformationView*)myInformationView;

@end

2.MyInformationView

#import UIKit/UIKit.h

@interface MyInformationView : UIView

@property (nonatomic, strong) idMyInformationViewDelegate myDelegate;

- (id)initWith......//初始化視圖的方法

//所需要的屬性和方法根據(jù)實(shí)際需要再行添加

@end

#import "MyInformationView.h"

@interface MyInformationView()

@end

@implementation MyInformationView

@synthesize myDelegate = _myDelegate;

//Todo: 處理一些初始化方法和其他一些事件

// changeMyInformationData 是操作此view可能產(chǎn)生的數(shù)據(jù)變動。它可能是選擇器變動、點(diǎn)擊按鈕等等,但我們并不想在此view處理它,因?yàn)樗淖儎涌赡軐φ{(diào)用此view的controller造成影響,所以...

- (void) changeMyInformationData:(id)sender

//TODO:數(shù)據(jù)變動....

if ([self.myDelegate respondsToSelector:@selector(returnValueToShow:)]) {

[self.myDelegate returnValueToShow:self];

}

@end

3.ViewController

這里就不寫代碼了,在頭文件中聲明此類遵守MyInformationViewDelegate協(xié)議。在實(shí)現(xiàn)文件(.m)中,調(diào)用MyinfomationView的時候,設(shè)置代理成自己,

MyInformation *myInfoView = [[MyInformation alloc] init.......];

myInfoView.myDelegate = self;

然后實(shí)現(xiàn)協(xié)議中要求實(shí)現(xiàn)的方法

- (void)returnValueToShow:(MyInformationView*)myInfoView

{

//TODO:做想做的事情

}

如何快速學(xué)會ios開發(fā)

篇一:分享簡單學(xué)習(xí)iOS開發(fā)的方法

隨著3G技術(shù)的普及與智能終端的快速發(fā)展,逐漸的移動開發(fā)者最受企業(yè)的歡迎,特別是iOS軟件開發(fā)人才更是得到了企業(yè)的青睞,從現(xiàn)在情況來看,iOS培訓(xùn)和iOS軟件開發(fā)人才有些嚴(yán)重供不應(yīng)求。

容易上手的,學(xué)習(xí)iOS要注意到每個細(xì)節(jié),因?yàn)槊總€細(xì)小的知識都有可能改變這個程序,如果有一點(diǎn)的錯誤都會導(dǎo)致整個程序無法運(yùn)行,其實(shí)學(xué)習(xí)iOS和上學(xué)學(xué)習(xí)一樣,都是從最基礎(chǔ)的開始學(xué)起,慢慢的積累知識。如果想學(xué)好iOS,現(xiàn)在單單在網(wǎng)上學(xué)習(xí)是有點(diǎn)out了,可以選擇零學(xué)費(fèi),就能夠入學(xué)的培訓(xùn)學(xué)校學(xué)習(xí)一下,如果沒有合適的話,可以了解一下培訓(xùn)機(jī)構(gòu),找一個口碑不錯的,這樣結(jié)合理論和實(shí)際才能夠?qū)W好iOS。

在課前一定要做好準(zhǔn)備資料及準(zhǔn)備內(nèi)容,要知道老師要講什么?先做好預(yù)習(xí),這樣有準(zhǔn)備的上戰(zhàn)場才會學(xué)得更好,在課堂上認(rèn)真聽老師講課,在電腦上操作老師所講的內(nèi)容,如果有不懂的一定要及時向講師問清是怎么回事,課后多做幾次練習(xí),那么就不是問題了。3

如果聽不懂怎么辦?

這些現(xiàn)象很正常,誰也不敢保證講師所講的知識都能夠無一不漏的聽明白,能夠在電腦上操作出來,那么如果遇到不懂得就要直接問,還可以先預(yù)習(xí)今后再去學(xué)習(xí)理論課的時分就能夠有對于性的去聽了,教師講到你現(xiàn)已把握的內(nèi)容時,你能夠注意聽一下講師是不是有了新的見解及創(chuàng)新的認(rèn)識、講的和你了解到的是不是一樣,如果不太一樣的話,那么就要做下記號,課下與老師溝通,承認(rèn)這個

常識點(diǎn)的真實(shí)意義;若是講到你預(yù)習(xí)時不會的常識點(diǎn)的話,你更大概仔細(xì)的去聽了,認(rèn)真的去了解一下到底是怎么個意思?

篇二:如何快速學(xué)會ios開發(fā)

針對學(xué)習(xí)iOS開發(fā)怎么樣?想學(xué)iOS開發(fā)如何才能快速學(xué)習(xí)?沒有基礎(chǔ)怎么快速學(xué)習(xí)iOS開發(fā)等問題,藍(lán)鷗iOS培訓(xùn)專業(yè)老師指點(diǎn)明燈!看著身邊學(xué)iOS開發(fā)的人拿了高工資,很多人按捺不住了。但菜鳥真的也可以成為iOS開發(fā)軟件工程師嗎?只要有恰當(dāng)?shù)膶W(xué)習(xí)方法,學(xué)習(xí)軟件開發(fā)并不難。對于軟件初學(xué)者來說,主要做到以下幾點(diǎn):

一、打好基礎(chǔ),不能一步登天

學(xué)習(xí)iOS,首先要學(xué)習(xí)C語言,很多人跳過C,直接學(xué)Objective-C,這是極不可取的。Objective-C是C的超集,必須有C的基礎(chǔ),學(xué)習(xí)才能更好更快的進(jìn)行。不要一開始就盲目崇拜別人的大項(xiàng)目,要從小項(xiàng)目開始,一步一個腳印,遇到困難不要退縮,解決困難也是學(xué)習(xí)的過程。

二、必須如蜜蜂,多方采集花蜜

在學(xué)習(xí)初期對于iOS沒有概念,最好的辦法就是多看別人的代碼,多吸取別人的養(yǎng)分。遇到不懂得問題不要跳過,而是要多問,多向人請教,學(xué)習(xí)別人的思路,吸取有益的知識,并做好學(xué)習(xí)筆記。積少成多,會成為你不小的財富。

三、勤動腦,多動手,有創(chuàng)新精神

軟件開發(fā)者是為了讓軟件實(shí)現(xiàn)更豐富更強(qiáng)大的功能,必須有很強(qiáng)的實(shí)際操作能力。作為iOS開發(fā)工程師,不但要了解用戶需要哪些功能,有哪些需求,還要多動腦,開發(fā)出符合市場以及時代需求的項(xiàng)目。這都需要軟件開發(fā)者具備很好創(chuàng)新精神。

由此可見,學(xué)習(xí)iOS開發(fā),只要肯吃苦,有恒心,菜鳥也可以有很藍(lán),很廣闊的天空。iOS培訓(xùn)很注重基礎(chǔ)教學(xué),教學(xué)方式與大學(xué)不同,在教授理論知識的同時,更注重實(shí)踐技能的培養(yǎng)。擺正心態(tài),切勿操之過急,囫圇吞棗,將每天所學(xué)定義為就是今后工作要用的,這樣你便會認(rèn)真對待每一次學(xué)習(xí)、每一行代碼和遇到的每一個難題。

參加iOS開發(fā)培訓(xùn)也可以,現(xiàn)在iOS開發(fā)培訓(xùn)大概也就4個月時間,花一兩萬系統(tǒng)學(xué)4個月也是一個不錯的選擇,雖然要一兩萬,但是效果跟自己學(xué)肯定是不一樣的,要是自己學(xué)跟有老師帶著學(xué)一樣,那這個世界上將沒有學(xué)校存在了。對于參加iOS開發(fā)培訓(xùn)的一定

要選對機(jī)構(gòu),有句話說得好,選對比選好有時候重要太多。你考30分的'成績讓你去北大清華也不一定能夠成就了呢,所以選擇口碑好的機(jī)構(gòu),專注iOS開發(fā)的機(jī)構(gòu)比較好,畢竟咱基礎(chǔ)不好,那些機(jī)構(gòu)做雜很難做精。不管是快速學(xué)還是慢慢自學(xué)還是選擇iOS培訓(xùn)機(jī)構(gòu)系統(tǒng)培訓(xùn),只要你投入進(jìn)去就好,堅持下去一定會有大收獲。不管做什么或者學(xué)什么一定要避免三天打魚兩天曬網(wǎng),這樣效果不會明顯。

篇三:零基礎(chǔ)學(xué)iOS開發(fā)的方法

怎么學(xué)習(xí)iOS開發(fā),尤其是對于沒有基礎(chǔ)的,甚至是0基礎(chǔ)的朋友而言,要學(xué)習(xí)iOS開發(fā)就需要注重方法了。由于iphone手機(jī)帶來的手機(jī)應(yīng)用狂潮,現(xiàn)在很多人都希望從事這塊的開發(fā)。很多初學(xué)者可能會問,沒有基礎(chǔ)怎么樣才能學(xué)好iOS開發(fā),我們要看什么書呢,還是什么視頻,其實(shí)這些都不是重要的,重要的是,你認(rèn)為自己可以學(xué)好iOS開發(fā),認(rèn)為自己可以堅持下來,這是關(guān)鍵啦。

其實(shí)學(xué)很多語言都是通的,即使0基礎(chǔ)學(xué)習(xí)也不怕,從C語言入門,因?yàn)閕OS開發(fā)用的是OC語言,是在C基礎(chǔ)上的,不過也跟C不是很搭界,你可以直接學(xué)習(xí)OC語言也可以,還有開發(fā)工具是用Xcode,是在Mac系統(tǒng)的,你多摸索一下就可以開發(fā)簡單的應(yīng)用了,建議你買一本iphone開發(fā)秘籍第二版看看。學(xué)語言,無非就是要學(xué)好基礎(chǔ),弄清楚概念,然后做個簡單的例子,慢慢的體會,基礎(chǔ)打好了,到后面你會覺得突然自己提高了很多,很多東西都自然而然地明白了,在黑暗中的努力是為了迎接光明。

我覺得學(xué)iOS開發(fā),首先心態(tài)要好,不要想著我已經(jīng)學(xué)習(xí)很長時間了,可以找個好工作,可以賺錢了,牛人除外,不過大多都是普通人。

先慢慢培養(yǎng)興趣下定決心,然后開始找資料,找視頻,查百度。等你覺得這些基礎(chǔ)的都差不多理解了,那就別看書,將精力集中于界面開發(fā)、一定的數(shù)據(jù)庫開發(fā)、通訊接口開發(fā)、協(xié)同開發(fā)與聯(lián)調(diào)。然后自己設(shè)計個東西,可以涵蓋他們的,做個自己想做的東西出來,雖然可能很難,但是你會在過程中學(xué)到很多,是別人教不會你的。

在學(xué)習(xí)過程中遇到什么問題,你可以百度一下看看別人的回答,看多了印象就深了,也就慢慢掌握了。遇到什么思路上的問題,可以來藍(lán)鷗網(wǎng)站技術(shù)論壇發(fā)帖,論壇肯定會有人來幫忙的,就算不能完全解決,也可以提供點(diǎn)參考。學(xué)習(xí)要會利用資源,論壇上那么好的資源不用可惜的哦,還有資料堆的東西,只要你能掌握70%,不相信你可以試試。

有沒有自學(xué) iOS 開發(fā)的一些經(jīng)驗(yàn)

基礎(chǔ)

一定的編程經(jīng)驗(yàn)

這里說的編程經(jīng)驗(yàn)是至少熟練一門編程語言,對 OOP 有一定的了解,最好熟悉一些基本的設(shè)計模式。遇到過的好多 iOS 開發(fā),大多是從別的語言轉(zhuǎn)過來的,所以有一定的編程基礎(chǔ),學(xué)起來會更容易 get the point.

如果是第一次接觸編程,當(dāng)然也是沒問題的,只是要做好心理準(zhǔn)備,可能會比想象的難。

英語

發(fā)現(xiàn)不少開發(fā)對于英語似乎有點(diǎn)接受不能,通常都是中文優(yōu)先,除非迫不得已,才硬著頭皮看看 StackOverflow,英文文章,文檔等。忘了是誰說過「難走的路越走越好走」,通常如此。其實(shí)只要稍微 push 一下自己,那些技術(shù)文章啃下來應(yīng)該不會有太大的問題,有過幾次成功的體驗(yàn)后,這種恐懼感就會減少很多。優(yōu)質(zhì)的文章、視頻、書籍,多是英文的,不邁過這個 坎,將來要么成為瓶頸,要么花更大的成本去填補(bǔ)。

入門

書籍

要學(xué)習(xí) iOS 開發(fā),自然要先學(xué) Objective-C (當(dāng)然現(xiàn)在也可以直接上 Swift,不過如果多人協(xié)作的話,OC目前還是主流),因?yàn)?OC 是 C 語言的超集,所以了解 C 語言對于學(xué)習(xí) OC 肯定會有幫助,不過就算不了解,直接學(xué) OC 也沒太大問題。

這里推薦 BNR (Big Nerd Ranch) 的這本 Objective-C Programming The Big Nerd Ranch Guide,講解地比較細(xì)致,能幫助你更好的理解 OC,更重要的是教你遇到問題時,如何去解決問題,以及這個問題對應(yīng)的一些知識點(diǎn),如何使用文檔等等。

來到一個新的世界,肯定會對這個世界充滿好奇,想訂閱一大堆博客,買一堆書,看各種教程和視頻,然后就變得浮躁,不知該從哪下手,這會導(dǎo)致拖延癥。 我渴了,給我倒一杯水,這個很直接,馬上就可以做,但如果是給我買一瓶飲料,而自己對那些飲料又不怎么熟悉時,就糾結(jié)了,不如刷會微博,看看朋友圈,玩?zhèn)€小游戲先。

所以一本好的入門教材很重要,要契合自己當(dāng)前的水平,且常常會有收獲,這種成就感會激勵著你繼續(xù)學(xué)下去。

在看書的過程中,往往會有這樣的經(jīng)歷:書中提到某個人、觀點(diǎn)、知識點(diǎn)、書、文章,然后就順著它提到的這些東西出去了,可能某個知識點(diǎn)又牽扯到另一些內(nèi)容,然后就這樣越走越遠(yuǎn)。想起了一個故事——

三只獵狗追一只土拔鼠,土拔鼠逃跑時鉆進(jìn)了一個樹洞。這個樹洞只有一個出口,不一會兒,忽然從樹洞里跑出一只兔子。兔子飛快地向前跑,并爬上另一棵大樹。兔子因?yàn)榛艁y在樹上沒站穩(wěn),掉了下來,砸暈了正仰頭看的三只獵狗,最后,兔子終于逃脫。

對于這個故事可以從不同的角度去解讀,我更愿意以初心去解讀。兔子為什么會爬樹?為什么能砸暈三只獵狗?這不是重點(diǎn),重點(diǎn)是,之前追趕的土撥鼠哪去了?看書時難免會有延伸閱讀,這個深度我覺得不宜超過 2 層,不然很容易就回不來了。

還有就是如果有可能,最好每天都看點(diǎn),這其實(shí)是很難的,因?yàn)榭偸菚袃?yōu)先級更高的事,或者之前的某些習(xí)慣在干擾。一旦斷了幾天,就不想再拿起來了。

還有,蘋果官方的 Start Developing iOS Apps Today 也是很不錯的入門材料。

視頻

推薦斯坦福老頭子(Paul Hegarty)的 Developing iOS 7 Apps for iPhone and iPad ,當(dāng)初也是看的這個(那時還是更老的版本),Paul 是資深的 Mac/iOS 開發(fā)(前蘋果員工?),很多知識點(diǎn)講得很到位,學(xué)生們的提問也大都在點(diǎn)上,同時配有Demo,總之聽下來會對 iOS 開發(fā)有比較全面的了解。

同時推薦一本小冊子:objc-zen-book,花不長時間就能看完,里面是一些 Best Practices,對于編寫優(yōu)質(zhì)代碼會很有幫助。

筆記

這是一個持久的過程,任何階段都適用。以前也沒太在意這個,覺得概念性的東西,腦子過一遍,就大概知道了,然后就去啃其他的東西了,現(xiàn)在看來,如果有記筆記的話,會更有助于消化概念、知識點(diǎn),也可以記錄自己的思考過程。達(dá)芬奇就記錄了10000多頁的筆記。

記筆記可以加深對知識點(diǎn)的理解,而成為編程巨星的唯一秘訣就是:對所做的事情理解地越深,就會做得越好。同時如果遵循遺忘曲線去復(fù)習(xí)的話,效果更佳。對知識點(diǎn)了解地足夠透徹后,Debug 時才更有可能知道問題出在哪,解決問題也更容易有思路。

筆記不僅可以記知識點(diǎn),也可以記錄調(diào)試過程,比如這篇筆記,有一種調(diào)試方法:小黃鴨調(diào)試法

許多程序員都有過向別人(甚至可能向完全不會編程的人)提問及解釋編程問題,就在解釋的過程中擊中了問題的解決方案。一邊闡述代碼的意圖一邊觀察它實(shí)際上的意圖并做調(diào)試,這兩者之間的任何不協(xié)調(diào)會變得很明顯,并且更容易發(fā)現(xiàn)自己的錯誤。

生活中我們可能不會真的這么去做,這時抽離出另一個自己,記錄下跟ta的對話,也是個發(fā)現(xiàn)問題的好方法。

練習(xí)

這也是一個持續(xù)的過程,知道了些概念或原理后,總是會想著去驗(yàn)證下是不是這樣,無論結(jié)果是否如自己預(yù)期,實(shí)踐的過程會降低對語言的陌生感,慢慢地培養(yǎng)一種駕馭這門語言的自信,如果出了錯,正好可以重新梳理一下。

目標(biāo)

如果靜下心來看完了 BNR 的這本書,以及斯坦福的 iOS 開發(fā)視頻,那么對 OC 應(yīng)該比較了解了,一些常用的 UIKit 用起來也沒什么問題了,比如 UIViewController / UIView / UIScrollView / UIImageView / UITableView。也熟悉一些概念,如 KVO / MVC / Delegate / DataSource。

這個階段下來,應(yīng)該會有:哦,iOS 開發(fā)也就這樣嘛,多翻翻文檔,熟悉 Cocoa Touch 的一些 Class,差不多也能做出一個簡單的 App 了。

進(jìn)階

入門之后,接下來可以折騰的東西還會有不少。

書籍

Effective Objective-C 2.0,里面提到了 52 種提高 iOS App 質(zhì)量的途徑。涉及了 API 設(shè)計、protocols / category 的使用、寫出更模塊化的代碼等,讀下來應(yīng)該會有不少收獲。

iOS Programming: The Big Nerd Ranch Guide (4th Edition),又是一本 BNR 的書,這本書的特點(diǎn)是通過 Demo 來引出知識點(diǎn),然后提一些問題,并且會細(xì)說解題思路??磿倪^程中,對于元學(xué)習(xí)能力的提升也會有一定幫助。

--- update ---

發(fā)現(xiàn)巧哥的 iOS開發(fā)進(jìn)階 已經(jīng)可以在京東買到了,雖然沒有細(xì)看,但巧哥出品質(zhì)量肯定有保障。

其他資源

進(jìn)入這個階段后,可以去探索更大的世界了,現(xiàn)在的資源已經(jīng)很豐富了,但還是要遵循「少而精」的原則。以下是我覺得挺不錯的資源

iOS Dev Weekly 每周一期,內(nèi)容多為這一星期里值得關(guān)注的Github項(xiàng)目、文章、工具等。

iOS 移動開發(fā)周報 這是唐巧大大整理的每周不錯的 iOS 開發(fā)相關(guān)的內(nèi)容,多為中文。

RayWenderlich 很多詳細(xì)又全面的教程,不容錯過。

iOS Dev Slack 國內(nèi)不少 iOS 開發(fā)(包括大大們)都在這里,不過現(xiàn)在好像不怎么能拿到邀請了。

中文 iOS/Mac 開發(fā)博客列表,打開工具訂閱吧。

還有,如果可能的話,多去分享自己學(xué)到的東西,教是最好的學(xué),我試過幾次,效果真的很不錯。

目標(biāo)

這個階段下來,對于常用的設(shè)計模式、內(nèi)存管理、Blocks 的使用、圖像操作、網(wǎng)絡(luò)請求和管理、多線程應(yīng)該比較熟悉了。對于 CALayer、Animation、UIScrollView、UITableView、UICollectionView、 ViewController Container 則非常熟悉,對「非常熟悉」的定義是:不打開 Xcode,腦子里就能把相應(yīng)的知識點(diǎn)復(fù)述出來 80% ,比如這個類有哪些方法,Delegate / DataSource 有哪些方法,怎么使用,如果要實(shí)現(xiàn)某個效果,應(yīng)該怎么做(好吧, UICollectionView 除外)。

高級

其實(shí)高級、進(jìn)階、入門并沒有嚴(yán)格的界限,在入門階段也可以探究高級階段的一些東西。我覺得支撐我們不斷探索和前進(jìn)的動力不是興趣,而是永不滿足的好奇心,和對優(yōu)雅代碼的追求。

If your standards are low, you're going to stop pretty early on in the process.

BNR 的這篇 Leveling Up 已經(jīng)講得很好了,也更加細(xì)致。

書籍

iOS 7 Programming Pushing the Limits 這本書對 iOS 7 的一些特性會講解地比較深入,當(dāng)然也不僅僅是 iOS 7。只嘆 iOS 更新實(shí)在太快,書籍往往跟不上,一本好書往往需要很長時間來撰寫,等書可以出版了,iOS 又出新版本了。

源碼

看優(yōu)秀的源碼,可以學(xué)到很多東西,使用過程中遇到問題也更容易解決。這些是我覺得值得細(xì)看的源碼:AFNetworking(NSOperation, HTTP, Block), SDWebImage(Image Handle, Cache, NSOperation, Block),SVPullToRefresh(UIScrollView, State Handle), JSONModel(runtime)

如果有興趣,也可以翻翻 CoreFoundation / OC runtime 的源碼。

資源

oleb

NSHipster

objc.io || objcio.cn

WWDC 視頻

工具

chisel Facebook 出品的 LLDB 助手,用于調(diào)試很方便

Reveal 每當(dāng)好奇某個 App 的實(shí)現(xiàn)時,都會打開它一窺究竟,用于調(diào)試自己的 App 也很方便

Aspects steipete 大大出品的一款方便使用 method swizzling 的工具,可以在運(yùn)行時動態(tài)添加代碼到某個方法

class-dump 從 Mach-O 文件生成 OC 頭文件,有時想看看某個 App 大概是如何組織的會比較方便

Hopper 可以對二進(jìn)制文件進(jìn)行反編譯,甚至可以生成偽代碼!有時想看看 UIViewController 里某個方法大概是怎么實(shí)現(xiàn)的,就可以用它。

Instruments 這個內(nèi)置的工具對于發(fā)現(xiàn) App 的各種問題很有幫助,如內(nèi)存占用、泄露,渲染問題等。

目標(biāo)

這個階段,對于底層的實(shí)現(xiàn)會有更深入的了解,各種 Core 開頭的 Framework 至少可以說出個大概,工具也能熟練使用,「正經(jīng)的代碼」寫過數(shù)萬行,可能天天在翻 Dash。如果別人讓你實(shí)現(xiàn)某個功能,能在較短的時間內(nèi)給出不錯的實(shí)現(xiàn)方案,并且足夠細(xì)致,甚至精細(xì)到如何使用 Core Graphic 去畫某個圖像。

其他

我覺得無論學(xué)習(xí)什么,「速成」的心態(tài)是最要不得的,這只會讓自己變得浮躁,一知半解,整個過程也很難讓自己的元學(xué)習(xí)能力得到提升。慢慢來,攻占一個城后,再去打下一個,這時心態(tài)也會平和許多。

文章題目:ios開發(fā)技術(shù)分享,ios 開發(fā)
當(dāng)前路徑:http://m.rwnh.cn/article8/dscodip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、微信小程序、網(wǎng)站排名、微信公眾號、動態(tài)網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
石棉县| 呼图壁县| 托克托县| 双流县| 启东市| 安图县| 佛坪县| 合水县| 遵义市| 乾安县| 湖南省| 台州市| 金平| 兴安县| 外汇| 赣榆县| 皋兰县| 邵阳县| 武清区| 武山县| 九龙城区| 绩溪县| 忻州市| 大洼县| 无棣县| 龙井市| 新龙县| 河曲县| 巴楚县| 滨州市| 库尔勒市| 平潭县| 邯郸县| 余姚市| 民和| 武义县| 江川县| 永泰县| 三明市| 长汀县| 多伦县|