當前位置:成語大全網 - 書法字典 - Ios變量字典替換

Ios變量字典替換

剛學iOS開發的時候也有同樣的感覺。壹直想知道原理,想知道裏面是怎麽回事。我覺得我在霧中。但iOS開發就是這樣。它關閉了,而且在霧中…

例如,學習iOS開發就像拆卸汽車壹樣:

最低的原材料是塑料和鋼鐵。

然後用這些底層的東西做發動機和座椅。

最後加入書寫螺絲、膠水等。把車組裝起來。

IOS基本都是英文寫的,而且因為是封閉的,所以文檔寫的還挺好。當遇到新的框架時:

理解框架的功能

在文檔中搜索框架的編程指南非常有用。

理解框架類的繼承結構

寫iOS的程序不壹定是用OBJC寫的,很多框架都是用c寫的,學習iOS開發的基礎可以從以下兩個方面學習:

基礎(原材料鋼和塑料)

Obj-C-Grammar理解@interface @property這些東西總是知道它們是做什麽用的,怎麽用。

基礎庫——NS字符串、NS數組、NS字典等等都會出現在所有框架中。

iOS的大多數類別都是從NSObject繼承的(我還沒見過壹個不是從NSObject繼承的..)

還有壹些類似NSCopying(經@李玉龍提醒後應該叫協議)的接口不是專門用的,壹開始不需要了解。

NSObject創建對象時,需要在+(id)alloc方法創建後,由init方法初始化。這個init引用init前面的所有方法。比如UIView的初始化方法是——(ID)initwithframe:(cgrect)Arect在Objc中關於函數命名有很多這樣的約定,類似於python中的函數__xxx。

NSString字符串NSArray數組NSDictionary這些都需要明確。其他課都是套路。

帶有Mutable like NSMutableArray的類表示從對應的不可變類的可變繼承,比如來自NSArray的NSMutableArray,它們都添加了可以改變對象內容的方法,比如

-(void)addObject:(id)anObject添加壹個對象。

-(void)remove object:(id)an object刪除對象。

以上只是壹個大概的總結,需要學習的東西還有很多。iOS5的SDK已經支持ARC自動發布,但是支持iOS4還是有壹個小問題。現在如果要開發應用,可能需要之前MRC方式的alloc release retain autorelease之類的內存管理方法,但是如果現在開始學習如何編譯,體面的APP iOS5可能已經普及,可以直接在ARC中使用(另外之前對ARC的了解很淺,現在開發程序可以直接使用。有壹種方法可以替代ARC iOS4不支持的弱。如果同時支持iOS5和iOS4,則可以使用unsafe_unretained。當然也可以直接用assign)。

還有壹點,剛開始學的時候,壹定很困惑內存管理是基於函數的名字。例如,使用帶有alloc copy的函數後返回的對象必須是release。毫無疑問地去做就是了。

文件:CocoaFundamentals導言

高級庫(引擎)

Uikit-ui庫對象

UIResponder父類是NSObject UIKit中最底層的庫,可以響應壹些觸摸事件來設置焦點等功能。

UIView的父類是UIResponder。all View的父類有太多的方法,大部分都很有用。

UIView有很多子類,需要壹壹分解。從名字就很容易理解文檔是做什麽的。

UIViewController是壹個管理視圖和模型的類(@中中中中中說UIViewController是用來管理視圖的,管理模型的類是自己寫的。當然model也可以用UIViewController來管理,但是我怕會變成壞代碼。換型號最好通過通知傳播,這是真的。吃這樣的虧之前最好不要用委托模式。

UIViewController管理設備中發生的所有事件,比如屏幕旋轉、屏幕關閉或者程序的壹些其他控制邏輯,這裏也要寫。

他的初始化函數是-(ID)initwithNibName:(ns string *)NibName Bundle:(ns Bundle *)Nibname後面的Nibname是接口構建器中設計的接口。

現在IB已經集成到XCode裏了。正在打開。xib文件打開ib。

IB通過IBAction IBOutlet與代碼進行交互。這些標簽追溯到它們的定義。其實對於編譯器來說,除了IB識別,什麽都不是。

IB沒那麽高級。XIB文件解鎖後,就是壹堆代碼。

前面有個小公司,看到當時寫的程序裏用了IB。我不屑的說他們都是用代碼控制視圖的。都玩了高科技IB,垃圾。很多人也在糾結到底用不用IB。的確很多情況下IB靈活性不好,但是不需要靈活性的時候就不用IB了。那不是X裝的嗎?如果沒人用蘋果開發IB,為什麽早早的把IB去掉,很多情況下省了很多工作?

UINavigationController我們再來說說NavigationController

剛接觸開發的時候,不明白如何在視圖和視圖之間切換。最重要的是UINavigationController,層層推送視圖。iPhone中每點擊壹個聯系人屏幕,就會像right壹樣推送至下壹個界面。這就是UINavigationController正在做的事情。

UINavigationController維護壹個堆棧。

-(void)pushviewcontroller:(UIViewController *)view controller animated:(bool)animated類似於在堆棧中按下UIViewController。

-(UIViewController *)popview controller animated:(bool)animated是從堆棧中彈出的uiview controller。

即使妳的程序沒有像聯系人那樣向右推送,妳也可以使用UINavigationController來管理妳的ViewController的層次結構,妳可以自己編寫視圖切換的動畫,關閉他的默認動畫。

document:/view controller pgforiphones/modalview controllers

還有壹個很痛苦的UIWindow,差點忘了,因為iOS來自Mac os X,很多東西都是直接用的。這個UIWindow是iOS裏每個App都獨占屏幕,所以同壹時間只有壹個UIWindow,除了程序加載的時候在他身上加載我的視圖。我還沒用過別的。

蘋果壹直很推崇MVC的程序結構,視圖模型控制器。簡單來說,視圖負責顯示內容,模型負責保存所有數據,或者用其他壹些數據操作控制器來協調視圖和模型來擡車。示例視圖是儀表板模型、發動機控制器和控制芯片。

核心數據-管理數據對象

剛學CD的時候,覺得很高級。事實上,它是最容易使用的庫之壹。他的麻煩在於多線程和膠水代碼。

基於核心數據構建壹個項目,妳會看到它自動創建了三個類的對象。

NSManagedObjectModel

管理數據的存儲結構文件擴展名是xcdatamodeld。

NSPersistentStoreCoordinator

用官方術語來說,用於管理底層數據的存儲

核心數據不是關系數據庫或關系數據庫管理系統(RDBMS)。

所以妳可以用很多方式存儲數據,比如最長的sqlite,當然如果不壹樣,也可以用plist文件或者別的。

NSManagedObjectContext

NSManagedObjectContext將以上兩個對象連接起來,變成壹個整體。

所有的CD操作都是通過這個類,這個需要仔細閱讀。

舉個不恰當的例子,就像三個人收拾衣服,壹個人負責NSManagedObjectModel,壹個人負責整理衣服,冬天穿夏天穿等等。,還有壹個人負責協調他們的工作,如果有新衣服或者以前的衣服要脫,通知他們。

NSManagedObject類是壹個具體的數據對象,在上面的例子中是衣服。

壹般來說,XCode繼承了這個對象,可以幫助妳做特定的搜索。有很多這樣的文章

NSFetchRequest

用於執行CD請求相當於select語句shell。

NSEntityDescription

表中相應的用於描述實體的sql

n預測

謂詞類似於select語句中的條件。

以上三個類可用於請求數據。詳見教程。

掌握了以上內容,寫壹個APP就差不多了。最好的學習方法是自己寫,自己學。當妳在做的時候遇到問題,就去找資料。我覺得學起來更快更紮實。

以下庫都是具有特殊功能的庫

core animation——壹個非常強大的,非常喜歡的制作動畫的框架,可以用很少的代碼寫出很漂亮的動畫C。

石英2D——壹個強大的二維圖形庫c

OpenGL——不用介紹超級強大的3D庫c了。

Core Image——聽說iOS5已經開始支持Core Image了,但是還沒見過Mac上的CI,很強大。

cf network-我從來沒有用過我通常用ASIHttpRequset封裝的高級網絡庫OBJC。CF網絡好像是c實現的。

核心位置——很少也很容易得到庫的位置,OBJC

av foundation-播放視頻相關的庫最近在研究。

以上是學習iOS開發的壹些方法。如果當時有人這麽跟我說,估計會走很多彎路。也提醒初學者,剛開始學的時候會有幾個月的低谷期,很容易放棄。如果妳熬過了最初的幾個月,後面的學習就會變得越來越容易。