在本章中,你將會學(xué)到:
成都創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有10余年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),上千多家客戶的共同信賴。提供做網(wǎng)站、成都做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、賣友情鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
集成c/c++代碼到iPhone應(yīng)用中的優(yōu)缺點(diǎn)
c編程的基本概念
1)數(shù)據(jù)類型
2)指針
3)內(nèi)存管理
c++編程的基本概念
1)類
2)內(nèi)存管理
3)繼承
4)模板
如何在一個實(shí)際的例子中使用SQLite(一個基于C語言API的數(shù)據(jù)庫)
如何集成c++和Object-c++到你的iPhone應(yīng)用中
在本章,你會學(xué)習(xí)到底層的c/c++編程,這對于高性能應(yīng)用是非常重要的。事實(shí)上Objective-C是C語言的超集,它同樣是一門本地編程語言,但是Objective-C在C語言之上添加了一些包裝,從而降低了性能。如果你接觸過游戲和動畫相關(guān)東西,你應(yīng)該知道使用c/c++提供的OpenGL會有更好的性能。
c++同樣被蘋果所支持。大部分基本的應(yīng)用不需要接觸到c/c++代碼;但是,當(dāng)你的應(yīng)用需要很好的性能時,你應(yīng)該考慮這方面的問題。而且,你不需要編寫很多的c/c++代碼,但是你需要了解如何通過庫正確的調(diào)用c/c++代碼。你有可能需要修改開源庫的源代碼來滿足你的要求。
因?yàn)镺bjective-C是C語言的超集,C語言中能做的事情,在Objective-C也能夠做。他們在語法和新的概念上有所不同,但是在本章我都會涉及到這些。同樣C++和Objective-C也有很多不同的概念,因此對你來說學(xué)習(xí)C++和C可能會比較困難。
實(shí)際上,Objective-C的概念是非常有限的,你在iPhone開發(fā)環(huán)境上看到的classes和supports都來自于Cocoa Touch。為了簡單起見,我將使用Objective-C作為Objective-C和Cocoa Touch Frameworks的簡稱。
優(yōu)點(diǎn)和缺點(diǎn)
在進(jìn)入C/C++編程之前,我想快速的分析一下在iOS應(yīng)用中使用C/C++代碼的優(yōu)缺點(diǎn)。
優(yōu)點(diǎn):
已經(jīng)有很多用c/c++編寫的庫,例如動畫,音頻庫。這些庫通常都是用c/c++編寫的,因?yàn)檫@樣有很高的性能和可移植性。
你的應(yīng)用想要移植到Android,而又不想耗費(fèi)太多的精力。
你可能想通過使用c/c++代碼提高應(yīng)用的性能
缺點(diǎn):
c/c++和Objective-C的語法不同,把他們混在一起,使得代碼比較難理解。
c/c++和Objective-C的內(nèi)存管理機(jī)制不同,因此你必須小心內(nèi)存泄露或應(yīng)用崩潰的問題。
因此,了解了他們的優(yōu)點(diǎn)和缺點(diǎn),你就能夠決定是否要在iPhone應(yīng)用程序中集成c/c++代碼。不管你是使用開源庫還是自己編寫代碼,你都應(yīng)該在這之前理解c/c++。出現(xiàn)的許多問題都是非常微妙的,以至于iPhone instruments并不能幫你太多?;ㄙM(fèi)一個小時的時間很容易集成一個庫 --- 但是往往要花費(fèi)一整天的時間來修復(fù)其中的一個bug。
Objective-C已經(jīng)是一門本地編程語言,因此如果你所有的代碼都用c/c++來編寫,其實(shí)你并不能得到更好的性能。但是,有很多用c/c++編寫的高性能的庫,你可以利用它們的優(yōu)點(diǎn),然后集成到你的應(yīng)用中。