初識OC

1、 OC簡介

  • C語言的基礎上,增長了一層最小的面向對象語法(c語言的「超集」,動態語言,動態綁定的消息結構,也就是說,在運行時纔會檢查對象類型。接收一條消息以後,究竟應執行何種代碼,由運行環境而非編譯器來決定。)
  • 徹底兼容C語言
  • 能夠在OC代碼中混入C語言代碼,甚至是C++代碼
  • c++混編配置
  • 可使用OC開發Mac OS X平臺和iOS平臺的應用程序
  • 基本上全部關鍵字都是以@開頭
  •  

2、 OC語法預覽

1.     關鍵字

@interface、@implementation、@endc++

@public、@protected、@private、@selector編程

@try、@catch、@throw、@finally 框架

@protocol、@optional、@required、@class函數

@property、@synthesize、@dynamic學習

self、super、id、_cmd、__block、__strong、__weak、ui

 

2.     字符串以@開頭

好比@"Hello"是OC中的字符串,而"Hello"則是C語言中的字符串spa

 

3.     其餘語法

 

 

3、 OC程序的開發過程

與C語言相似:對象

 

 

4、 第1個OC程序

1.     代碼編寫

跟C語言同樣,OC程序的入口依然是main函數,只不過寫到一個.m文件中。好比這裏寫到一個main.m文件中(文件名能夠是中文)接口

#include <stdio.h>開發

int main()

{

    printf("第1個OC程序\n");

    return 0;

}

 

2. 終端指令

  • 編譯cc –c main.m
  • 連接cc main.o
  • 運行./a.out

 

5、 第2個OC程序

1.     代碼編寫

來點跟C語言不同的,使用NSLog函數輸出內容

#import <Foundation/Foundation.h>

int main()

{

    NSLog(@"第2個OC程序");

    return 0;

}

 

2. 終端指令

  • 編譯cc –c main.m
  • 連接cc main.o –framework Foundation
  • 運行./a.out

 

3.     NSLog與printf的區別

  • NSLog接收OC字符串做爲參數,printf接收C語言字符串做爲參數
  • NSLog輸出後會自動換行,printf輸出後不會自動換行
  • 使用NSLog須要#import <Foundation/Foundation.h>
  • 使用printf須要#include <stdio.h>

 

4.     #import的做用

  • 跟#include同樣,用來拷貝某個文件的內容
  • 能夠自動防止文件內容被拷貝屢次,也就意味着頭文件中不用加入下面的預處理指令了

#ifndef     _STDIO_H_

#define     _STDIO_H_

#endif

 

5.     Foundation框架的做用

  • 開發OC、iOS、Mac程序必備的框架
  • 此框架中包含了不少經常使用的API(應用編程接口)
  • 框架中包含了不少頭文件,若想使用整個框架的內容,包含它的主頭文件便可

#import <Foundation/Foundation.h>

 

6.     BOOL的使用

  • BOOL類型的本質

  typedef signed char BOOL;

  • BOOL類型的變量有2種取值:YES、NO

  #define YES (BOOL)1

  #define NO  (BOOL)0

  • BOOL的輸出(當作整數來用)

  NSLog(@"%d %d", YES, NO);

 備註:知其然,知其因此然(學習好習慣)

6、 第3個OC程序

1.        多個.m文件的開發

跟C語言中多個.c文件的開發是同樣的

1)       編寫3個文件

  • main.m

#import "one.h"

int main()

{

    test();

    return 0;

}

  • one.h

void test();

  • one.m

#import <Foundation/Foundation.h>

void test()

{

    NSLog(@"調用了test函數");

}

 

2)       終端指令

  • 編譯:cc –c main.m test.m
  • 連接:cc main.o test.o –framework Foundation
  • 運行:./a.out

 

2.        .m文件和.c文件混用開發

1)    編寫3個文件

  • main.m

#import "one.h"

int main()

{

    test();

    return 0;

}

  • one.h

void test();

  • one.c

#include <stdio.h>

void test()

{

    printf("調用了test函數\n");

}

 

2)    終端指令

  • 編譯:cc –c main.m test.m
  • 連接:cc main.o test.o
  • 運行:./a.out

(沒有使用Foundation框架的話,就不用-framework Foundation)

相關文章
相關標籤/搜索