物件導向C語言(Objective-C)編程簡介

來源:互聯網
上載者:User
Introduction to The Objective-C Programming Language

物件導向C語言編程簡介:

 

    物件導向的C語言是一種簡單的電腦語言,設計的目的是為了進行進階的物件導向編程。物件導向的C語言被定義成對標準C語言的小而強大的擴充集合。是對C語言的擴充但是主要基於Smalltalk語言,最早的物件導向程式設計語言之一。設計物件導向的C語言是為了給C語言完全的物件導向編程能力,通過一種簡單直接的方法。

 

    大部分物件導向開發環境由若干部分組成:

  • 一種物件導向的程式設計語言

  • 一個物件程式庫

  • 一套開發工具

  • 一個運行環境

    這篇文章是關於開發環境的第一個部分—程式設計語言,完全地描述了物件導向C語言,並且提供了學習第二個部分的基礎,Mac OS X 的物件導向C語言應用程式框架—統稱為 Cocoa. 你可以開始學習更多有關Cocoa 通過文章Getting Started with Cocoa.
你可以用的兩種主要的開發工具是 Xcode 和 Interface Builder, 可從該網頁獲得描述Xcode Workspace GuideInterface
Builder
單獨的. 運行時環境在另外單獨的文檔裡描述: Objective-C Runtime Programming Guide.

 

    注意: 該文檔描述的Objective-C的版本是發布在蘋果電腦 Mac OS X v10.6 上的, 引入了新特性:associative references (see“Associative
References”). 想學習Objective-C的1.0版本(在蘋果電腦 Mac OS X v10.4 或者更早的版本上可用), 請閱讀:

Object Oriented Programming and the Objective-C Programming Language 1.0.

 

誰應該閱讀該文檔

 

    該文檔是為有可能對以下內容有興趣的讀者準備的:

  • 使用 Objective-C 編程

  • 想瞭解 Cocoa 應用程式框架的基礎原理相關的內容

    該文檔即介紹了實現 Objective-C語言的物件導向模型,同事也完整的介紹了該語言。重點在於Objective-C對C語言的擴充部分,而不是C語言本事。

 

    由於這不是一篇介紹C語言的文檔,它假定我們之前瞭解C語言。但是,也不需要深入的瞭解。基於Objective-C的物件導向編程和之前基於標準C語言的編程有很大的不同,因此你不會有太大的障礙即使你不是一個有經驗的C程式員。

該文檔的結構

本文檔分為若干章節和一個附錄。

下面的章節涵蓋了所有Objective - C對標準C語言擴充的功能。

  • 對象,類,和訊息

  • 定義一個類

  • 協議

  • 屬性聲明

  • 類別和擴充

  • 關聯引用

  • 快速枚舉

  • 啟用靜態行為

  • 選取器

  • 異常處理

  • 線程

蘋果的編譯器基於GNU的編譯器系列。Objective-C 的文法是 GNU C/C++ 文法的超集,並且Objective-C 的編譯器適用於C, C++ 和Objective-C 的原始碼. 編譯器識別 Objective-C 的代碼檔案是通過副檔名.m, 就像它識別僅包含標準C文法的檔案是通過副檔名.c, 同樣的, 編譯器識別使用Objective-C語言的C++檔案是通過副檔名
.mm
, 其它的在Objective-C 裡使用 C++ 的疑問涵蓋在如下文檔裡:“Using
C++ With Objective-C.”


附錄裡包含的參考資料或許對理解該語言有很大的協助:

  • “Language Summary” 列舉並簡要的評論了所有 Objective-C 對 C 語言的擴充。

約定

   當本文檔導論函數,方法和其他編程元素的時候, 使用了特殊的電腦語言和斜體字。電腦語言表示單詞或者字元直接字面的拿來用(寫成和他們一樣的--就是C語言中的關鍵詞了). 斜體表示能表現為其他東西或者是變化的(比如變數名等)。

比如, 文法:

@interfaceClassName(CategoryName)

表示 @interface 和一對圓括弧是必須的, 但是你可以選擇類名和分類名。

當顯示示範代碼的時候,省略符號表示的部分,通常是內容填充部分,已經省略了:

- (void)encodeWithCoder:(NSCoder *)coder{
   [super encodeWithCoder:coder];   ...
}

涉及到的附錄裡的約定在附錄本身描述了。

 

另請參閱

如果你從來沒有用過物件導向編程來建立過應用程式,你應該閱讀:Object-Oriented Programming with Objective-C. 你應該也要考閱讀下它如果你用過其他的物件導向開發環境比如說:C++,JAVA,因為它們和Objective-C有很多不同的例外情況和約定。Object-Oriented
Programming with Objective-C
的設計師為了協助你熟悉物件導向的開發,向一個 Objective-C的開發人員方向發展。它闡述了一些物件導向設計的實現,給你一些提示真正的編寫物件導向的程式是啥樣的。

 

 

運行環境(運行時)

Objective-C Runtime Programming Guide 描述了Objective-C 運行時的一些情況和你如何去使用它。

Objective-C Runtime Reference描述了Objective-C 運行時支援庫的資料結構和函數。你的程式可以使用這些介面來和Objective-C的運行時系統互動。比如:你可以添加一個類或者方法,或者獲得一個所有已載入得的類定義的列表。Objective-C
Release Notes
描述了在最新版本的 Mac OS X的一些Objective-C運行環境的變化。

 

記憶體管理

Objective-C 支援兩種記憶體管理的環境,垃圾自動回收和引用計數:

  • Garbage Collection Programming Guide 描述了 Cocoa使用的記憶體回收機制。(iPhone上不支援—所以你無法通過iPhone的開發中心訪問此文檔.)

  • Memory Management Programming Guide for Cocoa 描述了Cocoa使用的引用計數系統。

註:本文章是直接翻譯的蘋果官方網頁上的的資料,不會隨著網頁的變化而及時變化,最新官方網頁請參考

https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

歡迎朋友們指導修改~~~~

 

 

轉載請保留以下資訊:
作者(Author):smilelance
時間( Time ):2010.02
出處( From ):http://blog.csdn.net/smilelance

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.