1.application:didiFinishLauchingWithOptions:程序啓動後當即執行objective-c
2.啓動界面代碼格式:
self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//1.從Infor.plist中取出版本號
NString *version = [NSBundle mainBundle].infoDictionary[key];
//2.從沙盒中取出上次存儲的版本號
NSString *saveVersion = [[NSUserDefaults standaryUserDefaults] objectForKey:key];數據庫
if(([version isEqualToString:saveVersion])){
//若是不是第一次使用版本
//顯示狀態欄
application.statusBarHidden= NO;
//等待寫
//self.window.rootViewController = [[*** alloc] init];編程
}
else
{
//版本號不同 第一次使用新版本
//將新版本號寫入沙盒
[[NSUserDefaults standardUserDefaults] setObject:version forkey:key];
[[NSUserDefaults standartUserDefaults] synchronize];
//顯示版本新特性界面
self.window.rootViewController = [[*** alloc] init];
}
[self.window makeKeyAndVisible];數組
return YES;網絡
3.管理快照:Xcode快照是一種功能有限的版本控制(適用於中小型項目)app
4.CGRectMake使用前兩個數值表示文本標籤距離離屏幕上邊緣和下邊緣的位置,後兩個數值表示文本標籤的寬度和高度框架
5.info.plist結尾文件:描述項目自己的屬性。必須在什麼地方設置應用程序的圖標、啓動圖像、支持的設備朝向等。項目導航器,可視化設置衆多的plist選項ide
6.用於常規屏幕的圖代表爲Icon.png,而用於Retina屏幕的圖標名爲Icon@2x.png,當應用程序在使用Retina屏幕的設備上運行時,若是它被要求顯示一幅圖像,它將自動使用包含後綴@2x(名稱與指定的名稱相同)的圖像資源。這讓開發人員無需修改應用程序的任何代碼就能支持Retina屏幕。還能夠可視化Summary選線卡的Deployment Info部分設置啓動圖像。對於iPhone,只能設置縱向啓動圖像,但iPad支持橫向和縱向啓動圖像。函數
7.設置狀態欄:Status bar is initially Hidden(默認隱藏狀態欄) NO顯示狀態欄工具
1.(1)OOP(面向對象編程)使用的指令類型與過程型編程相稱,但經過組織它們讓應用程序易於維護,並儘量重用代碼。在OOP中,您將建立對象,其中存儲了描述某種東西的數據以及操縱這些數據的指令。(2)OOP的另外一個重要的方面是繼承
2.術語介紹:
》類:定義對象及其功能的代碼,一般由頭文件/接口文件和實現文件組成。
》子類:創建在另外一個類的基礎之上並添加了額外的功能。您在iOS開發中使用的幾乎任何東西都是其餘某種東西的子類,它繼承了父類的全部功能和屬性
》超類/父類:另外一個類繼承的類
》單例:在程序的整個生命週期內,只能實例化一次的類。例如,獲悉設備朝向的類被實現爲單例,由於只有一個返回朝向信息的傳感器。
》對象/實例:在代碼中調用並出於活動狀態的類。類是讓對象可以工做的代碼,而對象是處於活動狀態的類。對象也被稱爲類的實例。
》實例化:根據類建立活動對象的過程
》實例方法:在類中實現的一項基本功能。對於提醒類,這多是爲給定提醒設置警報的setAlarm
》類方法:相似於實例方法,但使用與根據類建立的全部對象。
》消息:當您須要使用對象的方法時,您給對象發送一條信息,這有稱爲成爲調用方法
》實例變量:對象特有的一項信息的存儲位置。
》變量:信息的存儲位置。不用於實例變量,常規變量一般只能在定義它的方法內使用。
》參數:調用方法時向它提供的一項信息。若是要調用提醒對象的「設置警報」方法,則必須提供要設置的時間。在這種狀況下,該時間將是setAlarm方法的一個參數
》屬性:使用特殊編譯指令配置的一個實例變量,這樣可在代碼中方便地訪問它
》Self:一種在方法中引用當前對象的方式。在應用程序中使用實例方法或屬性時,必須使用特定對象限定它。在類中編寫訪問其方法或屬性的代碼時,可以使用self來引用當前對象。
3.類的接口文件和實現文件的名稱一般與類名相同。.h接口文件 .m實現文件。協議是Objective-C特有的一種功能,須要編寫的方法被集合在一塊兒,並用同一個名稱標識,這被稱爲協議
4.@property編譯指令,與另外一個名爲synthesize的命令結合使用,以簡化與接口中定義的實例變量的交互方式。@property和@synthesize的做用是爲編寫設置函數和獲取函數,而且優雅方便使用
5.在編譯指令@property中指定屬性(strong,nonatomic)告訴Xcode如何處理屬性引用的。屬性(attribute)strong 告訴系統,保留引用的對象,而不要將其從內存中刪除。屬性(nonatomic)告訴Xcode,不用擔憂應用程序的不一樣部分同時使用該屬性的問題。
6.+類方法,-實例方法。
7.定義方法1:+(方法返回的類型)方法名:(方法指望的信息類型)引用該信息的變量名, 定義方法2:+(方法返回的類型)方法名:(方法指望的信息類型)引用該信息的變量名 添加簡短的描述標籤:數據類型:變量名
8.若是您不知道將給方法傳遞什麼或但願可以從同一個方法返回不一樣類型的對象,id類型頗有用
9.使用@property和@synthesize 結合可使咱們可以以直觀的方式訪問和修改實例變量
10.@implementation myclass 告訴Xcode該文件實現那個類
11.使用方法被稱爲給對象發送信息
12.有一些(循環引用)ARC 沒法清理,A引用B B引用C C引用D D引用B 循環引用 ,A可使用完對象B 但BCD存在循環引用,將沒法釋放這三個對象,避免這樣的問題可使用弱引用(Weak reference)
1.Apple每一個iOS應用程序模板中都包括三個重要框架(CoreGraphics、Foundation、UIKit)
2.Cocoa Touch層:(1)UIKit:負責啓動和結束應用程序、控制界面和多點觸摸,並讓您可以訪問常見的數據視圖(Word Excel)(2)Map Kit:讓開發人員在任何應用程序中添加Goodle地圖視圖,包括標註、定位、事件處理功能(3)Game Kit:網絡交互性(4)Message UI/Address Book UI/Event Kit UI:應用程序之間集成需求(5)iAd:使應用程序加入廣告
3.多媒體層:(1)AV Foundation:用於播放和編輯複雜的音頻和視頻。如電影錄製、音軌管理和音頻平移(2)Core Audio:提供iPhone中播放和錄製音頻的方法(3)Core Image:開發人員在應用程序添加高級圖像和視頻處理功能(4)Core Graphics:添加2D回話和合成功能(5)對iPhone屏幕上顯示的文本進行精確的定位和控制(6)Image I/O:導入與導出圖像數據和圖像元數據(7)Media Player:使用典型的屏幕空間輕鬆地播放電影(8)OpenGL ES:建立2D 3D動畫(9)Quartz Core用於建立動畫:利用設備的硬件功能
4.核心服務層:(1)Accounts:用於存儲衆多不一樣服務的帳號信息(2)Address Book:用於直接訪問和操做地址薄(3)CFNetwork:訪問BSD套接字、HTTP和FTP協議請求以及Bonjour發現(4)Core Data:建立數據模型提供一個SQLite關係的數據庫模型
(5)Core Foundation:與Foundation框架相同(6)Foundation:提供一個封裝器(操做字符串 數組和字典都是經過Foundation框架進行的)(7)Event Kit:訪問存儲的日曆信息(8)Core Location:用於iPhone iPad 3G GPS獲取經緯度和測量精度
(9)Core Motion:管理大部分與運動相關的事件:使用加速劑和陀螺儀(10)Quick Look:實現文件瀏覽功能(11)Store Kit:建立購買實物(12)System Configuration:用於肯定設備網絡配置的當前狀態
5.核心OS層:(1)Accelerate:簡化計算和大數據操做任務,包括數字信號處理功能
(2)External Accessory:用於開發到配件的藉口(3)Security:提供執行加密(添加 刪除 修改密鑰項)(4)System:訪問不受限制的UNIX開發環境當中一些典型的工具
6.根類(NSObjct)應用程序類(UIApplication)窗口類(UIWindow)視圖(UIView)響應者(UIResponder)屏幕控件(UIControl)視圖控制圖UIController
7.字符串NSString/NSMutableString其中NSMutableString可用與建立可被修改的字符串。NSString在初始化後就不可改變,NsMutableString能夠修改(加長、縮短、替換等)
8.數組(NSArray/NSMutableArray)
9.字典(NSDictionary/NSMutableDictionary)字典以鍵值對形式存在
10.數字(NSNumber/NSDecimalNumber)能夠將數字做爲對象輕鬆加入數組或字典中,NSDecimalNumber是NSNumber的一個子類
11.日期(NSData)
12.網址(URL)
13界面類:標籤(UILabel)按鈕(UIButton)開關(UISwitch)分段控件(UISegmentedControl)滑塊(UISlider)步進控件(UIStepper)文本框(UITextField/UITextView)選擇器(UIDatePicker/UIPicker)彈出框(UIPopoverController)
1.實例化指的是建立對象的實例,讓您可以在程序當中使用,得到其類當中的全部功能
2.IB(Interface Builder)故事板 打開storyboard顯示該故事板的文件骨架
1.視圖控制器可包含應用程序邏輯,但這不覺得着全部代碼都包含視圖控制器中。能夠在覈實的時候定義額外的類,已抽象應用程序邏輯
2.使用IBOutlet:用於讓代碼可以與視圖中的對象交互(例如:@property(strong,nonatomic) UILbel *myLabel1與:@property(strong,nonatomic) IBOutlet UILbel *myLabel1配套使用)
3.對於接口文件.h中的每一個編譯指令@property實現文件.m中都必須有對應的編譯智力高@synthesize
4.使用IBAction:用於指出在特定的事件發生時應調用代碼中相應的方法。(例如用戶點擊了某個按鈕或更新了文本框)採起相應的措施
5.AppDelegate.h 和AppDelegate.m組成了該項目將建立的UIAppkucation實例的委託,可對文件進行編輯,已添加控制應用程序運行時如何工做的方法。
6.ViewController.h ViewController.m實現一個視圖控制器(UIViewControoler)這個類包含控制試圖的邏輯。
7.確保使用完試圖後,在代碼中定義的實例變量再也不指向對象。能夠將實例變量對應的屬性設置爲nil這樣這些文本框和標籤佔用的內存可被重用