国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

objective-C概述以及Xcode的簡單使用方法。

2019-11-14 19:34:40
字體:
來源:轉載
供稿:網友
  • objcetive-c 介紹:

Objective-C,通常寫作ObjC和較少用的Objective C或Obj-C,是擴充C的面向對象編程語言。它主要使用于Mac OS X和GNUstep這兩個使用OpenStep標準的系統,而在NeXTSTEP和OpenStep中它更是基本語言。1980年代初布萊德·確斯(Brad Cox)在其公司Stepstone發明Objective-C。他對軟件設計和編程里的真實可用度問題十分關心。Objective-C最主要的描述是他1986年出版的Object Oriented PRogramming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.

  • objective-c 用途:

Objective-C用途:編寫IOS操作系統(如:iphone、iPod touchiPad 等蘋果移動終端設備 )應用程序和Mac OS X操作系統應用程序的利器。 Objective-C的流行當歸功于iPhone的成功,因為Objective-C被用于編寫iPhone應用程序。

  • objective-c 語言特性:

ObJC是非常實際的語言,它是一個用C寫成,很小的一個運行庫,只會使應用程序的尺寸增加很小。ObJC完全兼容標準C語言(C++兼容C語言只是在大部分語法上)而在此基礎上增加了面向對象編程語言的特性以及smalltalk消息機制。

ObJC為何不支持垃圾回收機制,因為在smalltalk回收時有漫長的死亡時間,容易令整個系統市區功用,ObJC為避免此問題才不擁有這個功能,雖說某些第三方軟件加入了垃圾回收機制這個功能,但是Apple在其Mac OS X 10.3中仍未使用這個功能。

  •  objective-C與C++的不同

和C++不同,Objective-C不支持運算子重載(它不支持ad-hoc多型)。亦與C++不同,但和java相同,Objective-C只容許對象繼承一個類別(不設多重繼承)。Categories和protocols不但可以提供很多多重繼承的好處,而且沒有很多缺點,例如額外執行時間過重和二進制不兼容。

  

  • Objective-C和C++的比較
  單一繼承:
Objective-C不支持多重繼承,(同Java和Smalltalk),而C++語言支持多重繼承。
  動態:
Objective-C是動態定型(dynamicaly typed)所以它的類庫比C++要容易操作。Objective-C 在運行時可以允許根據字符串名字來訪問方法和類,還可以動態連接和添加類。
C++ 跟從面向對象編程里的Simula 67(一種早期OO語言)學派,而Objecive-C屬于Smalltalk學派。
在C++里,對象的靜態類型決定你是否可以發送消息給它,而對Objective-C來說,由動態類型來決定。Simula 67學派更安全,因為大部分錯誤可以在編譯時查出。 而Smalltalk學派更靈活,比如一些Smalltalk 看來無誤的程序拿到Simualr67那里就無法通過。
從很多方面來看,C++和Objective-C的差別,與其說是技術上的, 不如說是思維方式上的。你是否想更安全而舍棄靈活性?Simular67學派的支持者稱既然程序設計出色何必再要靈活性,而 Smalltalk學派則稱為了靈活可以容忍運行時多出錯。
 
  • 優缺點:

Xcode4版本的推出,加入了自動釋放,雖不能直截了當的說那就是“垃圾回收”,因為兩者機制不同。在Xcode4中的自動釋放,也就是ARC(Automatic Reference Counting)機制,是不需要用戶手動去Release一個對象,而是在編譯期間,編譯器自動幫你添加那些以前你經常寫的[NSObject release]。

另一個問題是ObjC不包括命名空間機制(namespace mechanism)。取而代之的是程序設計師必須在其類別名稱加上前綴,時常引致沖突。在2004年,在Cocoa編程環境中,所有Mac OS X類別和函式均有“NS”作為前綴,例如NSObject或NSButton來清楚分別它們屬于Mac OS X核心;使用“NS”是由于這些類別的名稱在NeXTSTEP開發時定下。

雖然Objective-C是C的母集,但它也不視C的基本型別為第一級的對象。

C++不同,Objective-C不支援運算子多載(它不支持ad-hoc多型)。亦與C++不同,但和Java相同,Objective-C只容許對象繼承一個類別(不設多重繼承)。
由于Obj-C使用動態運行時類型,而且所有的方法都是函數調用(有時甚至連系統調用(syscalls)也如此),很多常見的編譯時性能優化方法都不能應用于Obj-C(例如:內聯函數常數傳播、交互式優化、純量取代與聚集等)。這使得Obj-C性能劣于類似的對象抽象語言(如C++)。不過Obj-C擁護者認為既然Obj-C運行時消耗較大,Obj-C本來就不應應用于C++或Java常見的底層抽象。
  • 編寫ObJC程序:

編譯器:我用的就是Xcode 6.01/5.11(愿意用哪個就用哪個吧,每個版本都有自己的優勢。)

 
 
如果你是第一次使用Xcode,那么你就需要創建一個新的Xcode文件(Create a new Xcode project 選項)
 
選擇 Command Line Tool 建立一個程序或者文件夾都是可以的
 
 
接下來就是創建工程的名字(Product Name)要符合建項的命名標準,然后是組織名(Organization Name) 組織名一般的命名規則是你的公司或者團隊的域名的反向 比如說你的公司的域名是www.example.com,那么建議你的組織名就起為:com.example.接下來就是組織標識符(Organization identifier),命名規則就是你喜歡就好。language當然要選擇ObJC啦。

一路next下去,我們基本上就已經創建好所需的工程了,現在圖示的就是一些基本信息,上面有你的系統信息,還有一些工程選項BALABALALA,筆者現在英語水平有限,一大部也是看不太懂,主要還是靠猜。

OK,在Xcode左邊的功能欄上,你會看見main.m的文件,這就是主函數了。單擊main.m你就會看見如下代碼。

@autoreleasepool 這個就是前文提到的,傳說中的自動釋放池了!這個代碼當你創建好工程之后就已經幫你寫好了,那么如何編譯運行呢?

有沒有看到那個播放鍵? 什么? 看不到? 那就先請你check一下你正在使用的編譯器叫什么名字,有可能是你安裝錯了。。。

如果你清楚明白的看到了這個黑色的播放鍵,那么我就明確的說,這就是傳說中的編譯運行按鈕~快捷鍵是(command+R)如果你的代碼沒有錯誤的話,那么將會有十分神奇的事情發生。神奇的事情發生了,在編譯器的下方(左面的圖框是調試框,右邊的圖框是編譯框),你會看到編譯結果。

到這里,基本的ObJC的概述和Xcode的簡單使用方法就已經結束。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴东县| 佛冈县| 新建县| 河北区| 祥云县| 灌云县| 彭州市| 元谋县| 永德县| 临邑县| 安宁市| 安图县| 响水县| 屏东县| 哈密市| 河池市| 广灵县| 马关县| 泰州市| 永平县| 平江县| 正镶白旗| 浙江省| 漳州市| 库车县| 方城县| 金沙县| 巴楚县| 祥云县| 手机| 砀山县| 胶南市| 临江市| 淮安市| 武功县| 垫江县| 昆明市| 东方市| 宽城| 鞍山市| 龙里县|