<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                編譯運行Objective-C程序有兩種主要方式: 1、Xcode集成開發環境。 2、使用GNU Objective-C編譯器的Terminal命令行窗口。 使用Xcode XCODE和iOS SDK下載地址: [developer.apple.com](http://blog.csdn.net/haomengzhu/article/details/developer.apple.com) 當然也可以從App Store里面下載。 當然,你需要創建一個開發者賬號,不過暫時是不需要的。 Objective-C源文件使用.m結尾,.m也就是擴展名。 Objective-C++是C++的擴展,類似于Objective-C是C的擴展。 A、使用Xcode創建新程序的操作步驟: 1、啟動Xcode應用程序。 2、如果開發新項目,選擇File->New->New Project...,或者在起始頁選擇Create a New Xcode Project。 3、選擇應用程序類型,選擇Application->Command Line Tool(剛開始學習,就不搞什么圖形界面了先。這個和C語言差不多),然后Next。 4、為應用程序取一個名稱,并且將Type設置為Foundation,確定Use Automatic Reference Counting復選框已經選中(這個是為了使用新的特性,即ARC),單擊Next。 5、選擇項目目錄的名稱,還可以選擇在哪個目錄中存儲項目文件,然后點擊Create。 6、在左上窗格中會看到文件main.m(在與項目名同名的文件夾下可以找到),突出顯示該文件(就是單擊那個文件)。在該窗口下面的編輯窗口中輸入或編輯你的程序。 7、在工具欄中,選擇位于View下方中間的圖標,將顯示調試區域,在這個區域會將顯示輸出結果。l 8、在工具欄中點擊Run按鈕,或者從Product菜單中選擇Run,編譯并運行程序。 如圖示: ![](https://box.kancloud.cn/2015-12-31_5684a3efb06b8.jpg) ![](https://box.kancloud.cn/2015-12-31_5684a3efd4441.jpg) B、使用Terminal命令行寫程序的操作步驟: 1、打開Terminal。 2、選擇你的工作(工程)目錄。如果沒有: ~~~ $mkdir test ~~~ 進入工作目錄 ~~~ $cd test ~~~ 新建并編輯, ~~~ $vi main.m ~~~ VI的使用,請參考以下鏈接: [http://en.wikipedia.org/wiki/Vi](http://en.wikipedia.org/wiki/Vi) 輸入你的第一個Program: ~~~ //?My?first?Program?? #import??? ??? int?main(int?argc,?charchar?*argv[]){?? ????@autoreleasepool{?? ????????NSLog(@"Hello?World!");?? ????}?? ??return?0;?? }?? ~~~ 3、編譯,編譯鏈接器使用clang的LLVM Clang Objective-C。這個和Linux下的GCC使用差不多。大家不會的話,可以看看GCC那套編譯。 $clang -fobjc-arc -framework Foundation main.m -o test 4、運行,這個和Linux是一樣的編譯的可執行文件前面加上“./”。也可以把工程目錄加到PATH中(這樣就可以不要"./"),一般沒必要。 $./test 5、輸出結果就會顯示在命令行中。 需要注意的一點是:Objective-C是大小寫敏感的,也就是說區分大小寫,所以寫代碼的時候注意這點。 詳解: a、注釋:使用//或者/* ... */ b、#import:告訴編譯器找到并處理名為Foundation.h文件,?這是一個系統文件; `#import表示將該文件的信息導入到程序中;` 在C和C++中采用 #include指令,?在本例中也可以采用#include,? 而#import是#include改進指令,?它可以防止頭文件重復包含問題; c、int main(int argc, const char * argv[])?,?這個方法是程序的入口?。? 參數argc-參數數目?,?argv-參數值 d、@autoreleasepool自動釋放池:它使得應用在創建新對象時,系統能夠有效地管理應用所使用的內存; 或者使用下面的方式: ~~~ //?First?program?example?? #import??? int?main?(int?argc,?const?charchar?*?argv[])?{?? NSAutoreleasePool?*?pool?=?? [[NSAutoreleasePool?alloc]?init];?? //?insert?code?here...?? NSLog(@"Hello?World!");?? [pool?drain];?? return?0;?? }?? ~~~ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init] 語句是創建一個自動釋放內存池對象,?使用它來維護內存釋放和回收,? 其中alloc方法是分配內存,?init方法是初始化類,?相當于C++或Java的構造方法作用。 [pool drain]語句是用來釋放內存池,?它將納入到這個內存池中管理的對象內存全部釋放掉,? 關于NSAutoreleasePool問題我們將在內存管理部分詳細討論。 e:NSLog:oc庫函數,僅僅顯示或記錄其參數,還能顯示變量,使用%i; NSLog是Foundation框架提供的Objective-C日志輸出函數, 與標準C中的printf函數類似,?并可以格式化輸出。? @“Hello, World!”,?常量NSString對象,是代表NSString字符串對象,?它是Objective-C常用的字符串類。? f:retrun 0:程序正常退出; 它表示要終止main的執行,?一般情況下0代表正常結束,?非0代表異常情況,? 這是沿用了C語言的習慣。 Objective-C代碼的文件擴展名 ![](https://box.kancloud.cn/2015-12-31_5684a3eff1850.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看