91在线视频播放|成人黄视频在线观看|在线视频福利|天天欲色成人综合网站|国产国语videosex护士

機(jī)構(gòu)檔案
  • 機(jī)構(gòu)級(jí)別:普通會(huì)員
  • 信用等級(jí):

在線(xiàn)交談:點(diǎn)擊這里給我發(fā)消息

咨詢(xún)熱線(xiàn):029-62258374

學(xué)校評(píng)價(jià)(我要提問(wèn)/點(diǎn)評(píng))

  • 學(xué)校被點(diǎn)評(píng):0
  • 好評(píng)(0%)
  • 中評(píng)(0%)
  • 差評(píng)(0%)

資料認(rèn)證

    未通過(guò)身份證認(rèn)證 未通過(guò)身份證認(rèn)證

    未通過(guò)辦學(xué)許可認(rèn)證 未通過(guò)辦學(xué)許可認(rèn)證

  • 學(xué)校瀏覽人次:
  • 加盟時(shí)間:2017年03月10日
新聞動(dòng)態(tài)

西安尚學(xué)堂專(zhuān)家告訴你iOS開(kāi)發(fā)是怎樣的一條路線(xiàn)?

發(fā)布者:西安尚學(xué)堂 發(fā)布時(shí)間:2017-04-10 來(lái)源:西安尚學(xué)堂

1 iOS開(kāi)發(fā)環(huán)境

1.1 開(kāi)發(fā)環(huán)境

標(biāo)準(zhǔn)的配置是MacOSX+Xcode。

MacOSX的話(huà)首選用蘋(píng)果電腦,macmini最便宜只要4000多就好了然后自己配一個(gè)顯示器,macbookpro也可以,不推薦使用macbookair。還有很多人使用黑蘋(píng)果或者虛擬機(jī)甚至在windows上裝一些工具都是不可取的。

另外官翻版的也可以去買(mǎi),很便宜就可以買(mǎi)到好機(jī)子,官翻版。

Xcode這個(gè)開(kāi)發(fā)工具自己繼承了iPhoneSDK,所以不用單獨(dú)下載SDK。調(diào)試的模擬器可以從Xcode里面下載不同版本的模擬器。

1.2 賬號(hào)證書(shū)上架等

iOS調(diào)試真機(jī)是需要證書(shū)的,所以這個(gè)時(shí)候需要從申請(qǐng)一個(gè)iDP賬號(hào),不過(guò)僅僅需要調(diào)試的話(huà),某寶上有很多賣(mài)20幾塊的證書(shū)。應(yīng)用上傳appstore的話(huà)有很多種方法,證書(shū)分為企業(yè)和個(gè)人,個(gè)人的可以到appstore,企業(yè)是不可以的。

2 Obejct-C語(yǔ)言

Object-C語(yǔ)言通常寫(xiě)作objective-c或者obj-c,是根據(jù)C語(yǔ)言所衍生出來(lái)的語(yǔ)言,繼承了C語(yǔ)言的特性,是擴(kuò)充C的面向?qū)ο缶幊陶Z(yǔ)言,它能夠和C、C++混合編程。OC是一個(gè)編譯型的語(yǔ)言,通過(guò)gcc編譯器把object-c代碼編譯成機(jī)器指令。關(guān)于基本概念可以參考,十分鐘讓你明白Objective-C的語(yǔ)法(和Java、C++的對(duì)比)

2.1動(dòng)態(tài)特性

Object-C具備一些動(dòng)態(tài)特性,包括動(dòng)態(tài)類(lèi)型、動(dòng)態(tài)綁定、動(dòng)態(tài)加載,也就是Object-C在運(yùn)行時(shí)才能知道一些對(duì)象的類(lèi)型以及所調(diào)用的方法。

2.2內(nèi)存管理

OC是使用引用計(jì)數(shù)原則,現(xiàn)在OC引入ARC(自動(dòng)引用計(jì)數(shù)原則)。引用計(jì)數(shù)有幾個(gè)規(guī)則,一是誰(shuí)創(chuàng)建誰(shuí)釋放,通過(guò)alloc、new和copy創(chuàng)建對(duì)象,然后調(diào)用release或者autorelease去釋放對(duì)象,第二是,除了alloc、new和copy之外創(chuàng)建的對(duì)象都是autorelease的,第三誰(shuí)retain了,誰(shuí)釋放。

2.3 一些語(yǔ)言特性

OC首先是只有單一繼承,沒(méi)有多重繼承。

屬性訪(fǎng)問(wèn),@property加上@synthesize使用后能夠自動(dòng)生成setter和getter方法。

category,中文一般叫做類(lèi)別,他能夠?yàn)楝F(xiàn)有的類(lèi)提供新的方法,他將類(lèi)的實(shí)現(xiàn)分散到多個(gè)不同的文件或框架中,創(chuàng)建對(duì)私有方法的前向引用,向?qū)ο筇砑臃钦絽f(xié)議。

block語(yǔ)法,塊,他通常代表小段的自包含的代碼片段,因此,他們封裝為可以并行執(zhí)行的工作單元額外有用,還可以用于在集合中進(jìn)行遍歷,或者在其他操作完成時(shí)作為回調(diào)。塊代替?zhèn)鹘y(tǒng)回調(diào)函數(shù)的意義有兩個(gè):一是他們?cè)试S在方法實(shí)現(xiàn)的調(diào)用中就近寫(xiě)入代碼,而且塊經(jīng)常被作為框架中一些方法的參數(shù);二是他們可以訪(fǎng)問(wèn)本地變量。

OC中有很多類(lèi)是以NS開(kāi)頭的,那是cocoa層里面Foundation框架的類(lèi)庫(kù)。

3 iOS開(kāi)發(fā)

3.1 iOS操作系統(tǒng)簡(jiǎn)介

iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(Core OS layer)、核心服務(wù)層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。每層都包含很多系統(tǒng)框架,例如著名的UIKit框架就是在cocoa touch。

3.2 常用的設(shè)計(jì)模式

最基礎(chǔ)的是MVC模式,就是把項(xiàng)目分為Model、View和Controller三層進(jìn)行管理。

常用的還有代理模式,通過(guò)協(xié)議和block實(shí)現(xiàn)。觀(guān)察者模式的話(huà)體現(xiàn)在了KVO和notification上了。target-action模式是OC中非常常見(jiàn)的對(duì)象之間方法調(diào)用的方式,一般在和UI打交道的時(shí)候處理各種GUI上的事件會(huì)利用到這種模式,他通常會(huì)有一個(gè)target作為消息的接收者。單例模式,使得單例對(duì)象在項(xiàng)目中只會(huì)創(chuàng)建一次。工廠(chǎng)模式,是一個(gè)類(lèi)族的概念,很符合敏捷軟件開(kāi)發(fā)的開(kāi)放封閉原則。關(guān)于各種設(shè)計(jì)模式,可以看卡奴達(dá)摩的專(zhuān)欄。

3.3 Interface Builder和Storyboard

一般寫(xiě)iOS的UI有三種方式。xib,Storyboard以及代碼創(chuàng)建。

我之前自學(xué)用了一會(huì)的xib,之后一直用代碼創(chuàng)建,代碼更容易區(qū)做多語(yǔ)言版本,而且xib啟動(dòng)需要事件比用代碼直接寫(xiě)慢,xib文件比代碼建立UI文件也大。具體對(duì)比可以看喵神的博客代碼手寫(xiě),xib和StoryBoard間的博弈

3.4 常用系統(tǒng)框架和第三方庫(kù)

UIKit是最常用的框架,主要是用來(lái)做UI的。包括視圖UIButton、UILabel,控制器UIViewController等,還有一些觸摸事件、手勢(shì)等。

QuartzCore、CoreAnimation框架是一些繪圖、動(dòng)畫(huà)的類(lèi)庫(kù)。

第三方庫(kù)的話(huà),可以查看github上object -c的倉(cāng)庫(kù)排名,Search · GitHub 。

3.5 數(shù)據(jù)存儲(chǔ)

iOS數(shù)據(jù)存儲(chǔ)主要有四種方式。

NSKeyedArchiver,采用歸檔的形式來(lái)保存數(shù)據(jù),該數(shù)據(jù)對(duì)象需要遵守NSCoding協(xié)議。歸檔形式保存數(shù)據(jù)只能一次性歸檔保存以及一次性解壓,只能針對(duì)小量誰(shuí),而且數(shù)據(jù)操作笨拙,即如果想改動(dòng)數(shù)據(jù)的某一小部分,需要解壓整個(gè)數(shù)據(jù)或者歸檔整個(gè)數(shù)據(jù)。

NSUserDefaults,用來(lái)保存應(yīng)用程序設(shè)置和屬性。

第三種,Write寫(xiě)入文件。

第四種,相對(duì)前兩種更為復(fù)雜,但也最好用。SQLite,可以自己封裝,也可以使用FMDataBase等第三方封裝庫(kù),還可以使用系統(tǒng)的CoreData

3.6 數(shù)據(jù)通信

iOS的數(shù)據(jù)通信有幾種方式,應(yīng)用層的HTTP,以及傳輸層的封裝TCP或者UDP的socket接口,還有就是藍(lán)牙通訊。

HTTP的網(wǎng)絡(luò)服務(wù)一般可以用post、get或者soap等方式請(qǐng)求數(shù)據(jù),可以用系統(tǒng)的NSURL也可以用第三方類(lèi)庫(kù)(MKNetWorkKit、AFNetWorking),這兩種類(lèi)庫(kù)都可以做緩存,數(shù)據(jù)交換的格式一般有JSon和xml。

socket可以通過(guò)c語(yǔ)言的socket和CoreFoundation框架的CFNetwork實(shí)現(xiàn),也可以用第三方類(lèi)庫(kù)asyncsocket。

藍(lán)牙4.0的話(huà)使用的是CoreBluetooth框架。

3.7 多線(xiàn)程編程

iOS的多線(xiàn)程有NSThread、NSOperation以及GCD。NSThread比其他兩個(gè)輕量級(jí),但是需要自己管理線(xiàn)程的生命周期,線(xiàn)程同步。線(xiàn)程同步對(duì)數(shù)據(jù)加鎖會(huì)有一定的系統(tǒng)開(kāi)銷(xiāo)。operation則不需要關(guān)心線(xiàn)程管理,GCD是一個(gè)替代NSThread和operation的技術(shù)。

3.8 iPad開(kāi)發(fā)

iPad和iPhone開(kāi)發(fā)是異曲同工,但是不要試圖去適配iPad和iPhone,因?yàn)樗麄兊腢I差別太大。

3.9 其他

iOS的地圖是使用MapKit框架,定位用CoreLocation。

iOS有一個(gè)云端機(jī)制iCloud,iOS還有一個(gè)推送機(jī)制,可以由服務(wù)器推送消息到手機(jī)應(yīng)用程序,iOS還可以做本地化。

iOS有一些內(nèi)置的傳感器可以利用起來(lái)編程,比如三軸加速傳感器,用來(lái)測(cè)加速度的,還有陀螺感應(yīng)器,測(cè)角速度,感知移動(dòng)的。

關(guān)于iOS的相機(jī)、相冊(cè)以及音視頻都有相應(yīng)的類(lèi)庫(kù)。

4 工具

第一是多人協(xié)作的問(wèn)題,你可以用svn或者git,git是比較流行的,但是大多數(shù)的公司還在用svn;

第二,iOS的數(shù)據(jù)持久化有很多方案,最高效的就是sqlite,在mac上有很多sqlite的可視化管理工具,我用的是sqlitemanager。

第三,關(guān)于查看模擬器或者真機(jī)的沙盒內(nèi)容,模擬器可以使用SimPholders,真機(jī)可以用ifunbox。

第四,屏幕取色工具,sip。

第五,另外xcode也可以安裝很多輔助工具,例如,格式化xcode代碼的ClangFormat,第三方庫(kù)管理工具CocoaPods,壓力測(cè)試工具uiautomonkey。

第六,移動(dòng)開(kāi)發(fā)有一些常用的平臺(tái)的,比提供社會(huì)化分享、統(tǒng)計(jì)分析等的友盟,sharesdk;內(nèi)測(cè)平臺(tái)fir.im,蒲公英;云測(cè)平臺(tái)testin;廣告平臺(tái)google的admob