溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Objective-C的基礎知識有哪些

發(fā)布時間:2021-11-26 11:09:31 來源:億速云 閱讀:100 作者:柒染 欄目:開發(fā)技術

這期內容當中小編將會給大家?guī)碛嘘PObjective-C的基礎知識有哪些,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  1. OC是C語言的一個擴展集,幾乎OS X或IOS平臺上的所有應用程序都是該語言開發(fā)的。

  2. 可以使用工具包Cocoa(針對OS X系統(tǒng))和Cocoa Touch(針對IOS系統(tǒng))來開發(fā)功能完備的Objective-C項目.

  3. Xcode是蘋果提供的用來創(chuàng)建IOS和OS X應用程序的開發(fā)環(huán)境

  4. 點擊window菜單下的Welcome to Xcode選項或使用Command+Shift+l快捷鍵就可以看到最近編輯過的項目

  5. File->New->New Project,選擇Mac OS X->Application,右邊選擇Command Line Tool,最后選擇命令行工具類型為Foundation。 創(chuàng)建一個項目。

  6. 點擊Run按鈕或者快捷鍵Command+R,生成并運行程序。使用View->Debug Area->Activate Console或者快捷鍵Command+Shift+C,打開Xcode控制臺窗口,顯示輸出結果。

  7. main.m 就是包含了OC程序代碼的源文件。

#import <Foundation/Foundation.h>
int main(int argc, const char* argv[])
{
  NSLog(@"HELLO Objectibe-C!");
  return (0);

} //main

8. .m代表message,OC的一個主要特性。

9. import引入框架Foundation中的Foundation.h頭文件

10. 框架是一種把頭文件、庫、圖片、聲音等內容聚集在一個獨立單元中的集合體。

11. Cocoa、Carbon、QuickTime和OpenGL等作為框架集,Cocoa的組成部分有:Foundation、Application Kit(AppKit)框架,支持型框架Core Animation和Core Image。

12. 每個框架都有一個主頭文件,它包含了框架內所有的頭文件。通過在主頭文件中使用#import,就可以訪問框架內的所有功能。

13. Xcode使用預編譯頭文件的方法來加快讀取速度,通過#import導入這種文件時,加載速度會非常快。

14./System/Library/Frameworks/Foundation.framework/Headers/包含了Foundation框架的頭文件

15. NSString字符串,不過字符串一般使用字符串指針NSString. NSLog輸出時,第一個參數必須帶有@

16. BOOL占有8位,用YES和NO兩個值。 8位數*******0表示BOOL時為0,  8位數*******1對應BOOL時為1

17. OOP(Object-Oriented Programming)面向對象編程

18. 間接(indirection),讓其他人代替自己做某件事,或者讓他人代替自己去完成工作

19. 命令行參數(啟動參數)的輸入,如果使用Xcode編輯程序,運行時,Product->Edit Scheme,Arguments,點擊Arguments Passed On Launch標題下的加號按鈕,然后輸入啟動參數,OK。

20. 在OC中,方括號[],用于通知某個對象該去做什么。方括號里的第一項是對象,其余部分是需要對象執(zhí)行的操作。

21. 在OC中,通知對象執(zhí)行某種操作稱為發(fā)送消息(也稱為“調用方法”),[shape draw]表示向shape對象發(fā)送draw消息。

id shape = shapes[i];

[shape draw];

22. 類(class) 是一種表示對象類型的結構體

23. 對象(object) 是一種包含值和指向其類的隱藏指針的結構體

24. 實例(instance) 是“對象”的另一種稱呼

25. 消息(message) 是對象可以執(zhí)行的操作

26. 方法(method) 是為響應消息而運行的代碼

27. 方法調度(method dispatcher) 是OC使用的一種機制

28. 接口(interface) 是類為對象提供的特性描述

29. 實現(xiàn)(implementation) 是使接口能正常工作的代碼

//接口,就是C++中的類

//實現(xiàn),就是C++中類方法的實現(xiàn)

@interface Circle : NSObject

{

  @private

  ShapeColor fillColor;

  ShapeRect bounds;

}

- (void) setFillColor : (ShapeColor) fillColor;

- (void) setBounds : (ShapeRect) bounds;

- (void) draw;

@end //Circle

注釋:聲明了一個類Circle, 父類是NSObject,它有數據成員fillColor和bounds,成員方法setFillColor、setBounds、draw, setFillColor的返回值為void并且有一個ShapeColor類型的參數fillColor,@end表示類Circle聲明結束

30. @interface用于定義類的公共接口。 通常,接口被稱為API(Application programming interface)

31. 類的實現(xiàn)

@implementation Circle

- (void) setFillColor : (ShapeColor) c

{

  fillColor = c;

} //setFillColor

- (void) setBounds : (ShapeRect) b

{

  bounds = b;

} //setBounds

注釋:@implementation是一個編譯器指令,表明你將為某個類提供代碼。接下來的是各個方法的定義。 可以定義一些在聲明中沒有出現(xiàn)過的方法,可以把它們看做是僅能在當前類實現(xiàn)中使用的私有方法。 但是,OC中不存在真正的私有方法,也無法吧某個方法標識為私有方法,從而禁止其他代碼調用它。 這個OC動態(tài)本質的副作用。

32. OC運行時是指用戶運行應用程序時,支持這些應用程序的代碼塊。

33. 創(chuàng)建對象的過程,叫做實例化(instantiation)

34. 實例化對象時,需要分配內存,然后將這些內存初始化并保存為有用的默認值,這些值不同于通過新分配的內存獲得的隨機值。 內存分配和初始化工作完成之后,就意味著新的對象實例已經創(chuàng)建好了。

35. OC的一個特性,可以把類當成對象來發(fā)送消息。

36. 為了創(chuàng)建一個新的對象,需要向相應的類發(fā)送發(fā)送new消息。該類接收并處理完new消息后,我們就會得到一個可以使用的新對象實例。

int main(int argc, const char* argv[])

{

  id shape[3];

  ShapeRect rect0 = {0, 0, 10, 30};

  shapes[0] = [Circle new];

  [shapes[0] setBounds:rect0];

  [shapes[0] setFillColor:kRedColor];

  ...

  drawShapes (shapes, 3);

  return (0);

} //main

面向對象大師Bertrand Meyer的開放/關閉原則(Open/Closed Principle),即軟件實體應該對擴展開放,而對修改關閉。

上述就是小編為大家分享的Objective-C的基礎知識有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

oc
AI