| 學習蘋果WWDC 2011視頻講座的筆記(16) |
| 送交者: 茶樹油之家 2011年08月14日21:44:59 於 [教育學術] 發送悄悄話 |
我目前學習WWDC2011視頻節目全部學習完畢,但我的筆記越來越慢。不過我還是想繼續像我學習視頻一樣,在回頭重新瀏覽每個講座的PDF講演概要講稿,整理我自己的學習筆記。Session 119 - Resume and Automatic Termination 恢復和自動中止是蘋果Lion引入的新功能。我認為蘋果在為用戶提供一個非常爽蘋果電腦方面動了許多心機。這場技術講座,從技術的深度剖析了蘋果操作系統設計方面的一個技術點,由此我們可以看出蘋果在技術深層方面做了許多紮實的工作。 雖然目前電腦的硬件越來越先進,CPU的速度和內存不僅更為快和多,而且成本也越來越低,但是蘋果卻與微軟和許多其它公司不同,在操作系統的很多細節方面,蘋果儘量騰出硬件的所有資源,讓用戶能充分利用這些資源。軟件的恢復和自動中止軟件做了一個基本的工作,這樣操作系統將會檢測出這些運行的軟件,如果長時間處於沒有用的狀態,操作系統就會將這些長時間不用的軟件自動關閉,這樣可以騰出電腦的資源讓用戶更爽地使用其它軟件。由於這些關閉的軟具有恢復原來狀態的功能,如果用戶需要,再打開這些軟件將會會到原來的狀態。而在微軟的窗口則根本就沒有考慮,也沒有這些基本的API支持,試想如果用戶打開數個、數十個、甚至上百個軟件,系統可提供的資源肯定變為珍稀保護動物了,而用戶使用電腦將會感到越來越慢。 蘋果在OS方面這些新的支持實際上是將iOS的成功經驗移植過來的。iOS設備因空間的限制,硬件在CPU和內存方面的資源十分有限,因此iOS對軟件要求特別高。比如如果啟動速度太慢,10秒內不能啟動,蘋果操作系統將會將其斃掉。如果系統可用的內存減少到一定極限,蘋果將向所有正在運行的軟件發出警告,如果軟件不釋放資源,蘋果將會按照用量的大小將運行的軟件關閉。過去在蘋果OS上則沒有這種功能,現在蘋果在OS吸取iOS的成功經驗,在Mac上也具有操作系統自動關閉軟件的功能,但採取的方式不同,因為Mac的資源比較豐富,因此提供API讓軟件能夠恢復和自動關閉,這樣操作系統可以將長期不用的軟件自動關閉,讓用戶使用蘋果電腦有更充分的系統資源。 我舉一個簡單的例子,如果公司由你請一個外來的專業人員處理某項工作,你然後處理你的日常工作。如果這位工作者完成任務之後,不是需要你不時去檢查是否完成工作,也不需要你將他送出公司,而是公司的安檢或管理員自動發現這位外來人員沒有做任何工作,則會請出這位閒置人員。如果你發現又需要使用這位專業人員進行工作,你可以再請回來,該專業人員具有恢復能力,能夠回到公司即刻開始接着工作。 在傳統的操作系統中,如果用戶打開數個軟件,這些軟件運行的軟件必須由用戶來關閉,否則這些軟件將會永遠留在系統處於運行狀態。蘋果則主動採取不同的策略,提供API讓這些軟件設計人員設定其具有恢復功能,並能通過API可以讓操作系統知道軟件具有自動關閉的功能,這樣操作系統可以將這些長期不用的軟件自動關閉。這些細小細節和技術上的周密設計思考,體現出蘋果的特殊新功能和優越性。 該講座介紹了這些新的API使用技巧,鼓勵軟件開發者在設計軟件方面考慮到做一個蘋果系統的好的公民,即啟動這種自動恢復的功能,決定是否支持自動關閉。自動恢復從編程角度來說,如果沒有操作系統和平台的支持,這是一個非常複雜的難題。但蘋果提供簡單的API,在打開的View或窗口中只要設定支持自動恢復,軟件人員不必顧及這些複雜的恢復過程。我估計蘋果從操作系統的底層,自動將窗口的狀態用archiev的方式存儲起來,這樣能夠在重新啟動之後從archive庫中取出窗口原來狀態的數據,自動恢復到原來的狀態。 該講座詳細分析了自動恢復的過程,並有實例演示。 雖然這些API給軟件開發者提供了非常簡便的API接口,但軟件開發者還是需要一個學習的過程,講演者十分強調軟件開發者要進行許多測試,保證軟件具有這些功能。有些複雜的情況,程序編碼也會比較複雜些。 自動恢復、自動存盤及Versions是一個有機結構。這樣解決了不需要用戶save的瑣碎工作,操作系統提供了存儲數據和窗口的功能。 在講座最後結束語中,演講者自己提問,下一代操作系統未來還會有什麼新的功能呢?他說也許將來軟件不再需要Quit即退出的功能,因為操作系統可以自動中止軟件的運行,因此用戶就沒有必要親自關閉軟件了。這些瑣碎的過程,軟件開發者和蘋果的操作系統都可以讓電腦來處理了。 Session 120 - View Based NSTableView
OS的NSTableBiew結構比iOS複雜些,但也提供更多的功能,比如NSTableRow和NSTableColumn用於構造整個表格,每個格cell可以用NSTableCellView來更容易描述cell的內容,但NSTableCellView是可選擇的,如果構造複雜的內容,不必使用這個view。 與iOS的NSTableView一樣,NSTableView的構造主要為兩個部分的delegates,一個是數據來源接口(dataSource implementation or delegate),一個是表格的特殊接口(NSTableView delete)。蘋果的許多class都是採用delegate的方式來接入用戶的特殊編碼,這種設計結構十分簡潔,給編程人員提供執行的特殊內容。這種結構相當於C++的abstract methods或.Net的interface。蘋果的delegate有其特點,有些delegate是必須implement,有些則是可選的,即可用可不用。蘋果的許多內部class都是採用這種技巧提供API接口。講座詳細介紹了如何使用這些接口。 講座介紹了如何用Nib方式構造NSView或表格view。Nib是將View用XML方式來archive用戶界面。這樣可以利用視覺的方式來設計表格的內容。這種方式不僅可以減少編碼,而且自動回收利用表格內部cell的object。 講座介紹了如何利用表格來進行編輯。 講座介紹了各種數據聯繫的方法,有簡單的,也有複雜的。在Xcode 4中,表格的IB設計有objectValue的binding設置,這樣數據可以自動從數據庫中取出,裝載在表格之中。 Mac OS的表格有許多特殊的功能,比如多項選擇,鼠標移動(Hover)的效果,特殊的分隔(Custom Separator),提供特殊的行顯示(Custom row view),講座有詳細講解。 講座提過圖像的拉拽來介紹如何處理拉拽的動畫效果,以流程的過程方式介紹了寫程序一些技巧。 最後的動畫部分,詳細介紹了使用哪些表格的API來編寫插入,刪除和移動的編碼。 ![]() |
|
![]() |
![]() |
| 實用資訊 | |
|
|
| 一周點擊熱帖 | 更多>> |
| 一周回復熱帖 |
| 歷史上的今天:回復熱帖 |
| 2010: | 你們自己玩吧,老岳不奉陪了 | |
| 2010: | 與其浪費時間翻莎氏老掉牙的東東,來點 | |
| 2009: | 法西斯暴行 in Stanford (續) | |
| 2009: | 法西斯暴行 in Stanford U. | |
| 2008: | 到中國淘金 | |
| 2008: | 處女回國論:極端分子要求華人從美國回 | |
| 2006: | 記憶中的王小波 | |
| 2006: | “傳宗接代”與現代遺傳學 | |



我目前學習WWDC2011視頻節目全部學習完畢,但我的筆記越來越慢。不過我還是想繼續像我學習視頻一樣,在回頭重新瀏覽每個講座的PDF講演概要講稿,整理我自己的學習筆記。

