你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 淺析Objective-C的法式構造及面向對象的編程方法

淺析Objective-C的法式構造及面向對象的編程方法

編輯:IOS開發綜合

Objective-C法式的構造
就像進修一切編程說話一樣,第一個法式就是在屏幕打印出“Hello World !”。

我看的書上用到的編譯器照樣比擬老的,我如今用的是Xcode4.2.1,它有主動內存治理,所以書上的一些法式或許會報錯。可以在創立工程時不選擇Use Automatic Reference Counting選項處理這個成績。

運轉Xcode,新建一個Command Line Tool工程,取名FirstProgram。

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615501830.jpg (711×466)

鄙人一步,我們也撤消Use Automatic Reference Counting選項。

不論主動生成的代碼是甚麼樣的,我們將代碼改成以下:

//First Program Example
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello, World!");
    [pool drain];
    return 0;
}

運轉,顯示以下:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615501853.png (411×55)
以下是對這段代碼的簡略解釋:

1、法式第一行是正文,跟C/C++/Java一樣,Objective-C正文也能夠用 //、/*??*/來完成。

2、#import <Foundation/Foundation.h>

告知編譯器找到並處置名為Foundation的文件。

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

指定法式稱號為main,這是一個特別稱號,表現法式開端的處所。

4、NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

為主動釋放池在內存中保存了空間。

5、NSLog(@"Hello, World!");

指定要挪用名為NSLog的例程。傳遞給NSLog的參數是字符串@"Hello, World!",它是一個NSString對象。

6、[pool drain];

用於釋放已分派的內存池,和與法式相干聯的對象。

類、對象和辦法
1、實例和辦法

(1)應用類創立一個實例:

yourCar = [Car new];

這裡的Car是一個類,yourCar是一個對象

(2)對類和實例運用辦法:

[ClassOrInstance methed];

類或實例的稱號要緊跟“[”,“];”用於終止。這條語句相當於Java中的:對象名.辦法名

再如:

currentMileage = [yourCar currentOdometer];

個中,currentMileage用於吸收前往值

2、一段具體代碼及解釋:

#import <Foundation/Foundation.h>

//@interface section
@interface Fraction : NSObject {
    int numerator;
    int denominator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
@end


//@implementation section
@implementation Fraction
-(void) print {
    NSLog(@"%i/%i",numerator,denominator);
}
-(void) setNumerator:(int)n {
    numerator = n;
}
-(void) setDenominator:(int)d {
    denominator = d;
}
@end


//program section
int main (int argc, const char * argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    Fraction *myFraction;
    myFraction = [Fraction alloc];
    myFraction = [myFraction init];
       
    [myFraction setNumerator: 1];
    [myFraction setDenominator: 3];
       
    NSLog(@"The value of myFraction is: ");
    [myFraction print];
    [muFraction release];
    [pool drain];
    return 0;
}

(1)第4行是聲明一個類的辦法,@interface 新類名:父類名

(2)第8~10行界說了三個辦法,個中“-”表現實例辦法,“+”表現類辦法。

實例辦法老是可以拜訪它的實例變量,而類辦法卻不可,由於類辦法只處置類自己,而不處置類的任何實例

(3)第31~32行可以歸並成

myFraction = [[Fraction alloc] init];

或許

myFraction = [Fraction new];

(4)第39行用於為對象myFraction釋放內存,值得留意的是,最新的Xcode編譯器可以完成主動釋放內存

【淺析Objective-C的法式構造及面向對象的編程方法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved