《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