1、iOS app執行工做過程app
大部分工做都是由UIApplicationMain函數完成;框架
UIApplicationMain函數由UIKit框架提供(UIKit框架提供應用程序構建、管理用戶界面所須要的所有類);函數
在源文件main.m中自動調用;ip
UIKit框架只是Cocoa Touch提供的衆多框架中的一個;資源
Cocoa Touch是全部iOS應用程序的應用環境;編譯器
調用UIAppilcationMain掃描應用程序中的Info.plist文件,Info,plist是鍵值對結構化列表;it
2、Objective-C語言基本語法io
OC是C語言的超集,支持與C相同的基本語法; 編譯
eg.1. @interface MyClass(類名稱) : NSObject*(父類名稱)class
{
int count;
id data;
NSString* name;
}(成員變量)
- (id)initWithString:(NSString*)aName;(實例的方法聲明)
+(MyClass*)createMyClassWithString:(NSString*)aName;(類的方法聲明)
@end
eg.2. -(void)insertObject:(id)anObject atIndex:(NSUInteger)index
語句說明:
- : 方法類型標識符(+爲類,-爲實例);
void : 返回類型;
insertObject:, atIndex: :方法簽名關鍵詞;
id,NSUInteger : 參數類型;
anObject,index : 參數名;
eg.3. block:可移植的匿名函數,可用做回調。
int multiplier = 7;
int (^myBlock)(int) = ^(int num){ return num * multiplier; };
語句說明:
第一個int : myBlock是一個塊,會返回int值;
第二個int : block採用一個參數,也是int類型;
^myBlock :'^'將變量myBlock聲明爲一個塊;
^(){} : 一個字面常量塊定義,分配給變量myBlock;
num : 參數名;
return num * multiplier; : 塊的主體部分;
eg.4. 協議
@inteface HelloWorldViewController : UIViewController <UITextFieldDelegate>
@end
遵照了<UITextFieldDelegate>協議
eg.5 #import
預處理指令;
#import由#include衍生來,是#include的改良版,#import能夠保證一個頭文件不被屢次包含;
#import和@class:
#import包含這個類的全部信息,包括實體變量和方法;@class只告訴編譯器,後面聲明的名稱是類的名稱,並不考慮類如何定義等;
#import用於實現類裏面,@class用於頭文件;通常@class是放在interface中;
#import相對於@class更加耗費資源;
#import使文件之間有依賴關係,@class不須要文件之間的依賴;