国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ios開(kāi)發(fā)手冊(cè)中文版 / Objective-C 基礎(chǔ)知識(shí)

Objective-C 基礎(chǔ)知識(shí)

Objective-C 簡(jiǎn)介

在iOS的開(kāi)發(fā)中使用的是Objective C語(yǔ)言,它是一種面向?qū)ο蟮恼Z(yǔ)言,因而對(duì)于已經(jīng)掌握面向?qū)ο笳Z(yǔ)言知識(shí)的編程者來(lái)說(shuō)是非常簡(jiǎn)單的。


接口和實(shí)現(xiàn)

在Objective里完成的文件被稱(chēng)為界面文件,該類(lèi)文件的定義被稱(chēng)為實(shí)現(xiàn)文件。

一個(gè)簡(jiǎn)單的界面文件MyClass.h將如圖所示:

@interface MyClass:NSObject{ // 類(lèi)變量聲明}// 類(lèi)屬性聲明// 類(lèi)方法和聲明@end

執(zhí)行MyClass.m文件,如下所示

@implementation MyClass// 類(lèi)方法定義@end

創(chuàng)建對(duì)象

完成創(chuàng)建對(duì)象,如下所示

MyClass  *objectName = [[MyClass alloc]init] ;

方法(methods)

Objective C中聲明的方法如下所示:

-(returnType)methodName:(typeName) variable1 :(typeName)variable2;

下面顯示了一個(gè)示例:

-(void)calculateAreaForRectangleWithLength:(CGfloat)length 
andBreadth:(CGfloat)breadth;

你可能會(huì)想什么是andBreadth字符串,其實(shí)它的可選字符串可以幫助我們閱讀和理解方法,尤其是當(dāng)方法被調(diào)用的時(shí)候。

在同一類(lèi)中調(diào)用此方法,我們使用下面的語(yǔ)句。

[self calculateAreaForRectangleWithLength:30 andBreadth:20];

正如上文所說(shuō)的andBreath使用有助于我們理解breath是20。Self用來(lái)指定它是一個(gè)類(lèi)的方法。

類(lèi)方法(class methods)

直接而無(wú)需創(chuàng)建的對(duì)象,可以訪(fǎng)問(wèn)類(lèi)方法。他們沒(méi)有任何變量和它關(guān)聯(lián)的對(duì)象。示例如下:

+(void)simpleClassMethod;

它可以通過(guò)使用類(lèi)名(假設(shè)作為MyClass類(lèi)名稱(chēng))訪(fǎng)問(wèn),如下所示:

[MyClass simpleClassMethod];
實(shí)例方法

可以創(chuàng)建的類(lèi)的對(duì)象后只訪(fǎng)問(wèn)實(shí)例方法,內(nèi)存分配到的實(shí)例變量。實(shí)例方法如下所示:

-(void)simpleInstanceMethod;

創(chuàng)建類(lèi)的對(duì)象后,它可以訪(fǎng)問(wèn)它。如下所示:

MyClass  *objectName = [[MyClass alloc]init] ;[objectName simpleInstanceMethod];

Objective C的重要數(shù)據(jù)類(lèi)型

序號(hào)數(shù)據(jù)類(lèi)型
1NSString字符串
2CGfloat 浮點(diǎn)值的基本類(lèi)型
3NSInteger 整型
4BOOL 布爾型

打印日志

NSLog用于打印一份聲明,它將打印在設(shè)備日志和調(diào)試版本的控制臺(tái)和分別調(diào)試模式上。

如 NSlog(@"");


控制結(jié)構(gòu)

除了幾個(gè)增補(bǔ)的條款外,大多數(shù)的控制結(jié)構(gòu)與C以及C++相同

屬性(properties)

用于訪(fǎng)問(wèn)類(lèi)的外部類(lèi)的變量屬性

比如:@property(非原子、強(qiáng))NSString*myString

訪(fǎng)問(wèn)屬性

可以使用點(diǎn)運(yùn)算符訪(fǎng)問(wèn)屬性,若要訪(fǎng)問(wèn)上一屬性可以執(zhí)行以下操作

self.myString = @"Test";

還可以使用set的方法,如下所示:

[self setMyString:@"Test"];

類(lèi)別(categories)

類(lèi)用于將方法添加到現(xiàn)有類(lèi)。通過(guò)這種方法可以將方法添加到類(lèi),甚至不用執(zhí)行文件,就可以在其中定義實(shí)際的類(lèi)。MyClass的樣本類(lèi)別,如下所示:

@interface MyClass(customAdditions)- (void)sampleCategoryMethod;@end@implementation MyClass(categoryAdditions)-(void)sampleCategoryMethod{   NSLog(@"Just a test category");}

數(shù)組(arrays)

NSMutable和NSArray 是ObjectiveC中使用的數(shù)組類(lèi),前者是可變數(shù)組,后者是不可變數(shù)組。如下:

NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];[anArray addObject:@"firstobject"];NSArray *aImmutableArray = [[NSArray alloc]initWithObjects:@"firstObject",nil];

詞典

NSMutableDictionary和NSDictionary是Objective中使用的字典,前者可變?cè)~典,后者不可變?cè)~典,如下所示:

NSMutableDictionary*aMutableDictionary = [[NSMutableArray alloc]init];[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];