Objective-C 是一種通用的,面向?qū)ο蟮木幊陶Z言。雖然蘋果公司強勢推出了Swift語言,但Objective-C 仍然是主流的iOS開發(fā)語言,尤其在國內(nèi)。這里給大家介紹Objective-C編程語言的基礎知識,幫助大家快速入門。
Interface 和 Implementation 在Objective-C中,定義類的文件叫Interface文件,類的實現(xiàn)文件叫Implementation文件。 一個簡單的Interface文件MyClass.h看起來像下面這樣: @interface MyClass:NSObject{ // class variable declared here } // class properties declared here // class methods and instance methods declared here @end 而相應的Implementation文件看起來像下面這樣: @implementation MyClass // class methods defined here @end
創(chuàng)建對象 創(chuàng)建對象: MyClass *objectName = [[MyClass alloc]init] ;
方法 在Objective-C中創(chuàng)建方法的語法: -(returnType)methodName:(typeName) variable1 :(typeName)variable2; 例如: -(void)calculateAreaForRectangleWithLength:(CGfloat)length andBreadth:(CGfloat)breadth; 你也許好奇andBreadth代表的是什么;它只是一個可變字符串,幫助我們更容易理解方法的作用。在同一類中調(diào)用這個方法: [self calculateAreaForRectangleWithLength:30 andBreadth:20]; 如上所述,使用andBreadth可以幫助我們理解andBreadth的值為20。self用來說明被調(diào)用的是一個類方法。
類方法 類方法可以直接調(diào)用,不需要先創(chuàng)建類的對象。它們沒有任何變量和與之相關聯(lián)的對象。例如: +(void)simpleClassMethod; 類方法的調(diào)用可以直接通過類名來調(diào)用,例如: [MyClass simpleClassMethod];
實例方法 實例方法僅在創(chuàng)建該類的對象之后才能被調(diào)用。實例變量會分配有內(nèi)存。如下面一個實例方法: -(void)simpleInstanceMethod; 創(chuàng)建類的對象之后,可以像下面例子一樣調(diào)用方法: MyClass *objectName = [[MyClass alloc]init] ; [objectName simpleInstanceMethod];
Objective-C中的重要數(shù)據(jù)類型
輸出日志 NSLog可以用來在打印輸出信息,信息可輸出到設備日志和debug控制臺中,例如: NSlog(@"");
控制結構 Objective-C中的絕大多數(shù)控制結構和C語言、C++的一樣,除了個別語句,如for..in結構語句。
屬性 當外部類訪問該類的時候,需要用property關鍵字。例如: @property(nonatomic , strong) NSString *myString;
訪問屬性 你可以使用點操作符來訪問屬性。訪問上面的屬性,可以這樣做: self.myString = @"Test"; 你也可以使用set方法,如下: [self setMyString:@"Test"];
Categories Categories被用來為已存類添加方法。利用這種方法,可以為連implementation文件都沒有的類添加方法。一個簡單的category使用例子如下: @interface MyClass(customAdditions) - (void)sampleCategoryMethod; @end
@implementation MyClass(categoryAdditions)
-(void)sampleCategoryMethod{ NSLog(@"Just a test category"); }
數(shù)組 NSMutableArray 和 NSArray 是objective-C中的數(shù)組類。正如其名,前面的NSMutableArray是可變數(shù)組,NSArray是不可變數(shù)組。簡單的數(shù)組例子如下: NSMutableArray *aMutableArray = [[NSMutableArray alloc]init]; [anArray addObject:@"firstobject"]; NSArray *aImmutableArray = [[NSArray alloc] initWithObjects:@"firstObject",nil];
Dictionary(字典) NSMutableDictionary 和 NSDictionary 是objective-C中的字典類,如其名所示, NSMutableDictionary是可變字典,NSDictionary是不可變的字典。簡單的字典例子如下: NSMutableDictionary*aMutableDictionary = [[NSMutableArray alloc]init]; [aMutableDictionary setObject:@"firstobject" forKey:@"aKey"]; NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects: [NSArray arrayWithObjects:@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];
原文來自:codecloud