- iOS 教程
- iOS - 首頁
- iOS - 入門
- iOS - 環境搭建
- iOS - Objective-C 基礎
- iOS - 第一個 iPhone 應用
- iOS - 動作和出口
- iOS - 代理
- iOS - UI 元素
- iOS - 加速計
- iOS - 通用應用程式
- iOS - 相機管理
- iOS - 位置處理
- iOS - SQLite 資料庫
- iOS - 傳送郵件
- iOS - 音訊和影片
- iOS - 檔案處理
- iOS - 訪問地圖
- iOS - 應用內購買
- iOS - iAd 整合
- iOS - GameKit
- iOS - 故事板
- iOS - 自動佈局
- iOS - Twitter 和 Facebook
- iOS - 記憶體管理
- iOS - 應用程式除錯
- iOS 有用資源
- iOS - 快速指南
- iOS - 有用資源
- iOS - 討論
iOS - Objective C
iOS 開發中使用的語言是 Objective C。它是一種面向物件的語言,因此對於那些具有一定面向物件程式語言背景的人來說,它很容易學習。
介面和實現
在 Objective C 中,宣告類的檔案稱為介面檔案,定義類的檔案稱為實現檔案。
一個簡單的介面檔案MyClass.h如下所示:
@interface MyClass:NSObject {
// class variable declared here
}
// class properties declared here
// class methods and instance methods declared here
@end
實現檔案MyClass.m如下所示:
@implementation MyClass // class methods defined here @end
物件建立
物件建立如下所示:
MyClass *objectName = [[MyClass alloc]init] ;
方法
在 Objective C 中,方法的宣告如下所示:
-(returnType)methodName:(typeName) variable1 :(typeName)variable2;
下面顯示了一個示例。
-(void)calculateAreaForRectangleWithLength:(CGfloat)length andBreadth:(CGfloat)breadth;
您可能想知道andBreadth字串是做什麼用的;實際上,它是一個可選字串,可以幫助我們輕鬆地閱讀和理解方法,尤其是在呼叫時。要在同一個類中呼叫此方法,我們使用以下語句:
[self calculateAreaForRectangleWithLength:30 andBreadth:20];
如上所述,使用 andBreadth 可以幫助我們理解寬度為 20。Self 用於指定它是一個類方法。
類方法
類方法可以直接訪問,無需為類建立物件。它們沒有任何與之關聯的變數和物件。下面顯示了一個示例。
+(void)simpleClassMethod;
可以透過使用類名(假設類名為 MyClass)來訪問它,如下所示:
[MyClass simpleClassMethod];
例項方法
例項方法只有在為類建立物件後才能訪問。記憶體分配給例項變數。下面顯示了一個示例例項方法。
-(void)simpleInstanceMethod;
建立類物件後,可以訪問它,如下所示:
MyClass *objectName = [[MyClass alloc]init] ; [objectName simpleInstanceMethod];
Objective C 中的重要資料型別
| 序號 | 資料型別 |
|---|---|
| 1 | NSString 用於表示字串。 |
| 2 | CGfloat 用於表示浮點值(也允許使用普通浮點數,但最好使用 CGfloat)。 |
| 3 | NSInteger 用於表示整數。 |
| 4 | BOOL 用於表示布林值(YES 或 NO 是允許的 BOOL 型別)。 |
列印日誌
NSLog - 用於列印語句。它將分別在釋出和除錯模式下列印在裝置日誌和除錯控制檯中。例如,
NSlog(@"");
控制結構
大多數控制結構與 C 和 C++ 中的相同,除了像 for in 語句這樣的少量新增內容。
屬性
為了讓外部類訪問類,使用了類變數屬性。例如,
@property(nonatomic , strong) NSString *myString;
訪問屬性
您可以使用點運算子來訪問屬性。要訪問上述屬性,我們將執行以下操作。
self.myString = @"Test";
您還可以使用 set 方法,如下所示:
[self setMyString:@"Test"];
類別
類別用於向現有類新增方法。透過這種方式,我們可以向我們甚至沒有實現檔案的類新增方法,這些檔案定義了實際的類。我們類的示例類別如下所示:
@interface MyClass(customAdditions)
- (void)sampleCategoryMethod;
@end
@implementation MyClass(categoryAdditions)
-(void)sampleCategoryMethod {
NSLog(@"Just a test category");
}
陣列
NSMutableArray 和 NSArray 是 Objective C 中使用的陣列類。顧名思義,前者是可變的,後者是不可變的。下面顯示了一個示例。
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init]; [anArray addObject:@"firstobject"]; NSArray *aImmutableArray = [[NSArray alloc] initWithObjects:@"firstObject",nil];
字典
NSMutableDictionary 和 NSDictionary 是 Objective C 中使用的字典類。顧名思義,前者是可變的,後者是不可變的。下面顯示了一個示例。
NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init]; [aMutableDictionary setObject:@"firstobject" forKey:@"aKey"]; NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects: @"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];