閱讀390 返回首頁    go 阿裏雲 go 技術社區[雲棲]


2.1 Objective-C概述

《iPhone與iPad開發實戰--iOS經典應用剖析》第2章Objective-C語言基礎,通過本章的學習,讀者可以了解Objective-C基本語法,包括:數據類型、表達式,還有類、對象等概念。本節為Objective-C概述。
第2章  Objective-C語言基礎
iOS的項目中主要采用Objective-C語言編寫,因此在開始講解具體項目之前,本章將介紹Objective-C語言基礎。本章重點如下:
Objective-C與iOS開發
數據類型和表達式
類、對象和方法
繼承與多態
分類與協議
內存管理
Foundation框架
2.1  Objective-C概述
Objective-C是一種麵向對象的計算機語言,Brad J Cox 在20世紀80年代設計了Objective-C,該語言是基於SmallTalk-80。1988年NeXT發布了Objective-C,它的開發環境和類庫叫"NEXTSTEP",1994年NeXT與Sun發布了標準的NEXTSTEP係統,取名"OPENSTEP",軟件自由基金會OPENSTEP版本叫做GNUStep。
1996年蘋果公司開始支持NeXT,把NEXTSTEP/OPENSTEP用於Mac OS X操作係統開發,它的版本和開發環境叫做Cocoa,使用Objective-C作為基礎語言,開發工具是Xcode和Interface Builder。2007年蘋果公司推出Objective-C 2.0,Objective-C是Mac OS X和iOS開發的基礎語言。
2.1.1  Objective-C特點
Objective-C可以說是一種麵向對象的C語言,與其他麵向對象的語言有著明顯的不同,它有自己鮮明的特色,下麵介紹它的特點:兼容性、字符串、類、方法、屬性、協議和分類。
1.兼容性
在Objective-C的代碼中可以有C和C++語言,它可以調用C的函數,也可以通過C++對象訪問方法。
2.字符串
Objective-C通常不使用C語言風格的字符串。大多數情況下是使用Foundation框架的NSString類型的字符串。NSString類提供了字符串的類包裝,支持Unicode、printf風格的格式化工具等。它是在普通的雙引號字符串前放置一個@符號,如下麵的例子所示。

  1. NSString* myString = @"My String\n";  
  2. NSString* anotherString = [NSString stringWithFormat:@"%d %s", 1, @"String"]; 
3.類
定義類是Objective-C的基本能力。Objective-C的類聲明和實現包括兩個部分:接口部分和實現部分。
4.方法
定義方法也是Objective-C的基本能力。Objective-C中方法不是采用"."運算符,而是"[]"運算符。有時候方法調用也稱為消息發送。
5.屬性
屬性是Objective-C 2.0提出的概念,它是替代對成員變量訪問的"讀取方法(getter)"和"設定方法(setter)"的手段。為了對類進行封裝,一般情況下不直接訪問成員變量,而是通過屬性訪問。
6.協議
Objective-C中的協議類似於Java中的接口或C++的純虛類,隻有接口部分定義沒有實現部分,即隻有h文件沒有m文件。
7.分類
Objective-C中的分類是類似於繼承機製的,通過分類能夠擴展父類的功能。
2.1.2  Objective-C代碼的文件擴展名
由於在Objective-C中可以編寫多種形式的源文件,因此可以通過不同的文件擴展名來區分,表2-1所示為文件擴展名說明:
表2-1  文件擴展名說明表
文件擴展名
說    明
備    注
.c
C語言源程序文件
 
.cc或.cpp
C++語言源程序文件
 
.h
頭文件
 
.m
Objective-C 源程序文件
代碼包含有Objective-C和C的語句
.mm
Objective-C++源程序文件
代碼包含有Objective-C和C++的語句
.o
編譯之後的文件
 


最後更新:2017-04-02 16:47:43

  上一篇:go SimpleDateFormat嚴格限製日期轉換setLenient(false)
  下一篇:go Contact Me