書名: Objective-C和Sprite Kit游戲開發從入門到精通作者名: 曹化宇本章字數: 1369字更新時間: 2021-01-07 18:57:35
1.3 第一個Objective-C程序
接下來,我們繼續使用SimpleOC項目,在導航欄中,單擊main.m文件,如圖1-7所示(已關閉右欄)。

圖1-7 命令行項目中的main.m文件
如果不小心按了鍵盤上的Command+R鍵,或者是單擊了工具欄中的小三角圖標,你會發現,在界面的下方會顯示一條信息,如圖1-8所示。

圖1-8 命令行執行結果
我們看到,輸出窗口顯示了一條“Hello World”信息,只是把名字叫錯了,我可不叫“World”。好的,我們將代碼中的“World”修改為自己的名字,這樣,Xcode就真的是好像在給我們打招呼了,如下面的代碼。
NSLog(@"Hello, 你的名字!");
接下來,我們看看這些各種顏色的代碼都是什么情況(它們有點像航空母艦上的艦員,根據不同的顏色來區分工作崗位)。
首先是綠色的內容,它們只是說明性的文字,稱為注釋。本例中,它們都是以“//”開始的行,刪除它們不會對運行結果有任何影響,說干就干,下面就是去掉了綠色內容以后的代碼。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Hello, World! "); } return 0; }
這些代碼就是程序執行相關的內容,我們快速了解一下它們的功能。
第一行代碼是以“#”符號開頭的,它稱作預處理指令,#import指令用于導入當前代碼文件中所需要使用的資源。一般情況下,我們會導入頭文件(.h文件),這和C或C++代碼中使用的#include指令的功能是相同的。
在導入頭文件時,主要使用兩種格式:
? 使用< >包含頭文件,用于引用系統資源,主要是指Xcode中內置的一些開發資源,如代碼中的Foundation.h文件。
? 使用" "包含頭文件,用于引用“外部”資源,這里的“外部”是指非Xcode內置開發資源,如第三方或者你自己開發的代碼。
接下來的main()函數,相信學習過C語言的朋友一定不會陌生,沒錯,它就是程序的入口,代碼會從這里開始執行。在()中是函數的參數,main()中的兩個參數與C語言中的相似,其中,args帶入命令行指令和參數的數量(使用空白字符分隔),參數argv包含了這些內容。
再看@autoreleasepool指令(@開頭的語句也是一種指令),不明白是什么,我們拆開來看,就是auto release pool,自動釋放池?這是什么情況呢?實際上,這是Objective-C中一種新的內存自動管理機制,稱為ARC(Automatic Reference Counting,自動引用計數)。
在Objective-C代碼中,使用ARC技術,可以有效地對內存進行自動管理,將程序員從復雜的內存管理工作中解放出來。如果你在C語言中使用過malloc()、free()等函數手工管理過內存,就會明白我在說什么了。當然,沒有玩過C也沒關系,現在我們只需要知道,使用Objective-C編程時,在main()函數中使用@autoreleasepool指令就可以使用ARC了,如果你沒有百分之二百的信心能夠比ARC更好地管理內存,那就選擇使用ARC吧。
NSLog()函數用于顯示調試信息,其中,第一個參數是顯示的內容,可以包含格式化字符;第二個參數開始是格式化字符所對應的數據。下面的代碼會顯示一個整數的數據。
@autoreleasepool { int intNum = 1; NSLog(@"intNum = %i", intNum); // intNum = 1 }
最后的return語句用于向函數的調用者返回執行結果(活兒干得怎么樣,給調用者發個信號),一般來講,代碼0就意味著任務順利完成了。對于main()函數來講,它的調用者就是操作系統。
通過代碼的執行,我們看到,第一個程序的主要功能就是顯示一條文本信息,這些信息包含在“@”中,我們稱為字符串(string)。在Objective-C中,可以使用兩種風格的字符串:
? C風格字符串,即使用字符數組(char[])組成的字符串,這種字符串除了真正的字符內容,還會由ASC II碼中的0值字符(NULL)作為結束,使用轉義字符“\0”表示。
? 字符串對象,使用NSString或NSMutableString類型處理字符串內容。前面的代碼中,使用@""定義的字符串就是NSString對象,大部分情況下,我們會使用這種字符串。
更多字符串的處理,會在第7章詳細介紹。
- InDesign CS6中文版基礎與實例教程
- Excel VBA語法辭典
- 用友ERP-U8(8.72版)標準財務模擬實訓
- 和秋葉一起學:秒懂Excel
- Word/Excel 2016商務辦公實戰從新手到高手
- Excel 2007函數與公式實戰技巧精粹
- WPS Office 2019 高效辦公
- OpenCV Computer Vision Application Programming Cookbook Second Edition
- Excel公式與函數應用技巧
- Project 2010企業項目管理實踐
- Power BI企業級分析與應用
- Office 2003辦公應用實戰從入門到精通
- Java EE 8 Cookbook
- PowerPoint!讓教學更精彩:PPT課件高效制作(全彩)
- Hands-On Kubernetes on Azure