閱讀63 返回首頁    go 微軟 go windows


《iOS6 application development》學習之路:No.2

開始之前先說幾個關鍵字吧 

@property中的weak, nonatomic 和strong

weak告訴係統,補在使用引用對象時,可將其從內存中刪去。nonatomic告訴係統,不用擔心應用程序的不同部分同時使用該屬性的問題。幾乎在任何情況下,都將使用這兩個特性。

但是有時候需要使用特性 strong代替weak。 weak能讓Xcode更高效地將對象從內存中清除。還能避免所謂的循環引用(circular reference),即由於以下的原因,不能把對象從內存中清除:它引用了一個另一個對象,而後者又引用了它。

strong意味著對象將一直駐留在內存中,直到程序員顯示地讓係統將其從內存中清除。

但是@property (nonatomic) Boolean visiable; 卻隻有一個屬性,因為boolean不是對象,因此聲名這種屬性的時候,不需要使用關鍵字weak


int和integer

和Java中的應該是一樣的,引用自:https://developer.51cto.com/art/200906/130459.htm 

int是基本數據類型,而integer是複雜數據類型。

初始化時:

int i =1;

Integer i= new Integer(1);(要把integer 當做一個類看)

int 是基本數據類型(麵向過程留下的痕跡,不過是對java的有益補充)

Integer 是一個類,是int的擴展,定義了很多的轉換方法

類似的還有:float Float;double Double;string String等 
舉個例子:當需要往ArrayList,HashMap中放東西時,像int,double這種內建類型是放不進去的,因為容器都是裝object的,這是就需要這些內建類型的外覆類了。


好了進入第2節的正題:iOS6 Application Development 第11章:多場景和彈出框。

一個很普通的iOS app也不可能隻有一個頁麵,往往是由很多頁麵組成的,這些頁麵之間可以進行切換,可以傳遞數據等等。其實如果以前做過symbian和android的開發,很簡單。但是我覺得Xcode把這個過程做的更加直觀和易於理解。

提到多場景切換,就涉及一個常見的問題,循環引用

如果兩個類需要彼此訪問,而在這兩個類中都導入了對方的接口文件,則很可能出現編譯錯誤,因為這些import語句將導致循環引用:一個類引用另一個類,而後者又引用了前者。

為了解決這種問題,需要添加編譯指令@class,這樣就可以避免接口文件引用其他類時出現循環引用。

例如:

在aClass.h 中添加 #import bClass.h

而在bClass.h中添加@class aClass.h

而在bClass.m中添加 #import aClass.h

這樣就避免了循環引用。

書中提到了這樣一段話:

在有些情況下,隻需要在每個接口文件中添加#import就可以了,因此可以嚐試先用這種方法。如果導致應用程序出現錯誤,再采用第二種方法。

我很好奇的時,在哪些情況下第一種方法可用,因為在我後來coding的過程中,都不管用,我還是需要在第2個類的接口中添加@class ... 才能編譯通過。如果有朋友知道,歡迎指教。


手工控製模態切換:

先說下4種過度類型:

在切換的屬性中有以下4種動畫效果:

cover vertical : 新場景從下往上移動,逐漸覆蓋舊場景

flip horizontal: 試圖水平翻轉,顯示背麵的新場景

cross dissolve:舊場景淡出,新場景淡入

partial curl: 翻書頁一樣,顯示下麵的新場景

個人都嚐試了一下,覺得第3種界麵不好看,怪不得從沒有見應用程序用過,用最多的應該是第2種了把。第4中書頁模式,點擊上麵的部分可以自動退回前一個頁麵,不需要額外的代碼就能實現了。

如果我們想要完成手動控製切換,就需要給這個切換命名,命名的位置和選擇動畫效果一個頁麵,最上麵的identifier,可以明個名字。然後用下麵的代碼就可以實現手動切換了。

        [self performSegueWithIdentifier:@"toAnimalChooser" sender:sender]; 
在一個函數裏麵調用這個方法,就可以實現切換了,@“toAnimalChooser” 就是我們上麵說的切換的名字。如果沒有這個名字,那你的程序將不會發生變化,我就曾出現這個問題,照著書中代碼都寫正確了,但是沒有給切換起名字,結果找了半天才發現問題所在。


場景的視圖背景:

選擇場景中的view,然後在屬性裏麵找background,設置成 scroll view texted background color,就可能設置成ios6及之前的通知中心的那種帶紋理的背景了。


好了,下一章完整介紹一個自定義選擇器的程序,這個程序基本上包含了11章以及12章的所有重點內容。



















最後更新:2017-04-03 07:57:10

  上一篇:go solaris啟動過程詳解
  下一篇:go 中斷處理程序不能使用printf的本質