OC學習篇之---第一個程序HelloWorld 分類: IOS 2014-11-28 19:18 3215人閱讀 評論(0) 收藏

以前的一片文章簡單的介紹了OC的相關概述,從這篇開始咱們就開始學習OC的相關知識了,在學習以前,我的感受須要瞭解的其餘的兩門語言:一個是C/C++,一個是面向對象的語言(固然C++就是面向對象,不過這裏最好仍是Java)。在幹活以前,得先找到一個好工具,不過偉大的蘋果公司已經給咱們準備好了一個開發利器:XCode。在這方面Google可能作的就差了點,其實在開發Android的人大部分人都喜歡用Eclipse,可是Eclipse的可視化編程的效果和XCode差的不是一個級別的。固然Google後來開發了一個AndroidStudio,反正我沒用過,不知道效果怎麼樣,應該不怎麼樣,否則Eclipse仍是那麼受歡迎。java

學習任何一門語言都是從HelloWorld開始的,這個是一個套路了,那麼OC也不例外,咱們就從第一個HelloWorld開始,Xcode下載仍是很方便的,這裏就不作太多的介紹了,咱們打開Xcode:點擊新建一個Project:編程


咱們如今時學習OC,因此選擇下面的OS X,而後選擇命令行,點擊下一步:框架


這個和Android就差很少了,第一個是項目名,第二個是組織者名稱(企業開發就是公司的名稱,我的開發就是我的的名字,這個值會在每一個代碼中體現出來的,做用不大,能夠忽略),第三個是組織者的惟一標識,和Android中應用的packagename,第四個就是選擇開發語言,這裏選擇OC,不過他還有其餘選項:函數


Swift,C++,C,因此說吧,Xcode仍是很強大的,並且超級方便,Eclipse中也是能夠開發C/C++的,可是須要安裝插件,感受用起來也不是很方便。工具

後面的工做就是選擇文件夾了,簡單。新建一個工程以後,咱們在左側欄中能夠看到項目的結果,其中main.m源文件是自動建立的。學習

* C語言的源文件拓展名爲".c",OC的源文件拓展名爲".m"
* main.m文件是咱們這個程序中的惟一一個源文件
* 編譯器會將.m文件編譯爲.o目標文件,好比main.m編譯成功後會變成main.o文件

spa



下面就來看一下代碼:插件

//
//  main.m
//  01_HelloWorld
//
//  Created by jiangwei on 14-10-10.
//  Copyright (c) 2014年 jiangwei. All rights reserved.
//

//OC中使用#import導入一個頭文件
//和#include<Foundation/Foundation.h>效果是相同的,可是仍是有區別的,後續會說明
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    //建立一個自動釋放池
    @autoreleasepool {
        //把"Hello,World!"字符串打印到控制檯
        //打印的時候是自動換行的
        //OC語言中字符串用@""表示
        //NS開頭都是OC裏面的命名習慣,須要區分,jobs成立的Next setp公司有關係
        NSLog(@"Hello, World!");
        
        //OC中經常使用的類型
        NSInteger s = 10;
        
        //布爾類型
        BOOL a = YES;//NO
        BOOL b = TRUE;//FALSE
        
        //OC中的字符串(不屬於基本類型,是對象類型,是指針)
        NSString *str = @"jiangwei";
        
        //%@打印一個字符串對象
        NSLog(@"%@",str);
        
        //表示範圍的結構體
        //第一個參數是起始位置
        //第二個參數是範圍長度
        NSRange rang = {1,3};
        NSMakeRange(1,3);//等價於上面的一行代碼
    }
    return 0;
}
看到了吧,第一個HelloWorld程序都是main函數開始的,不過這個和C更像。。

來分析代碼:命令行

#import <Foundation/Foundation.h>
其中#import關鍵字是用來導入頭文件的,相似於C中的#include,不過他們兩仍是有區別的,後面的例子中會說明,固然這個和Java中的import關鍵字效果差很少,不過OC不是開源的,因此,只能導入頭文件,咱們也只能看到頭文件中的定義,是看不到源碼的,可是Java中點擊就能夠查看源碼了,這個蘋果就沒Google好了。。

這裏的Foundation.h頭文件是系統提供的最基本的框架,後面咱們仍是能夠本身開發框架的,這個就和C語言中的stdio.h效果相似,是系統給咱們提供了一個最基本的開發庫。咱們按住Command鍵(功能和Window中的Ctrl同樣的),單擊就能夠查看Foundation.h中的全部定義了:指針

(若是咱們想回去的話,能夠點擊control+command+左右箭頭,這個相似於Eclipse中的Alt+左右箭頭)


其實它內部全是導入頭文件的代碼,而這些頭文件就是組成這個系統框架的基礎,咱們後面的學習就是一個一個來學習的。


接着看代碼:

//建立一個自動釋放池
    @autoreleasepool {
        //把"Hello,World!"字符串打印到控制檯
        //打印的時候是自動換行的
        //OC語言中字符串用@""表示
        //NS開頭都是OC裏面的命名習慣,須要區分,jobs成立的Next setp公司有關係
        NSLog(@"Hello, World!");
        
        //OC中經常使用的類型
        NSInteger s = 10;
        
        //布爾類型
        BOOL a = YES;//NO
        BOOL b = TRUE;//FALSE
        
        //OC中的字符串(不屬於基本類型,是對象類型,是指針)
        NSString *str = @"jiangwei";
        
        //%@打印一個字符串對象
        NSLog(@"%@",str);
        
        //表示範圍的結構體
        //第一個參數是起始位置
        //第二個參數是範圍長度
        NSRange rang = {1,3};
        NSMakeRange(1,3);//等價於上面的一行代碼
    }

這裏有一個知識點就是自動釋放池概念,這裏咱們就不太深刻介紹了,後面會有專門的一篇文章去介紹他,由於他是OC語言的一個特點,並且也是最難理解的一個知識點,他和Java中的垃圾回收器差很少。咱們在建立一個工程的時候,這個自動釋放池的代碼會自動建立的,咱們只要在這個池子中寫咱們的代碼就能夠了。


NSLog(@"Hello, World!");
這句和C中的printf同樣,以及Java中的System.out.println效果都是同樣的,打印結果,不過他和printf更像,由於他支持格式化輸出。


在看一下OC中的一個很重要的對象是字符串,並且咱們在定義字符串對象的時候,要加@符號,這個和Java是有區別的,不過還有其餘方式去建立字符串的,效果和Java很想,好比用構造方法去建立。後面會介紹

//OC中的字符串(不屬於基本類型,是對象類型,是指針)
NSString *str = @"jiangwei";


使用NSLog打印對象,用格式化輸出,佔位符是%@,打印字符串的對象的時候,輸出的是字符串的值,這個和Java中的System.out.println輸出結果同樣,其實就是調用對象的toString方法,固然OC中也是會調用一個方法的,後面會說。

//%@打印一個字符串對象
NSLog(@"%@",str);

其餘就是OC中的基本類型了,這裏就不作介紹了。

好了,到這裏一個HelloWorld就介紹完了。

瞭解了OC中的定義變量方法,打印信息方法,基本類型等知識點。點擊Xcode左上角的運行按鈕:


咱們能夠看到運行結果了,同時右上角的那幾個按鈕,就是選擇開啓四個方向上的窗口,屢次點擊就知道功能了。

相關文章
相關標籤/搜索