设万维读者为首页 万维读者网 -- 全球华人的精神家园 广告服务 联系我们 关于万维
 
首  页 新  闻 视  频 博  客 论  坛 分类广告 购  物
搜索>> 发表日志 控制面板 个人相册 给我留言
帮助 退出
茶树油之家  
与大家交流和分享苹果产品、网络技术,以及美乐家茶树油及相关的信息  
https://blog.creaders.net/u/588/ > 复制 > 收藏本页
网络日志正文
学习苹果WWDC 2011视频讲座的笔记(16) 2011-08-14 21:44:56
我目前学习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


NSTableView是iOS上最常用的用户界面,它是采用一种表格方式来显示一系列数据。本讲座介绍如何在Mac OS上使用这种具有非常强功能的表格用户界面,实际上,苹果电脑上的NSTableView比iOS的相应view将有更多的功能,可以表示各种复杂的用户界面。比如说,iOS只能显示单列表格,OS上可以有多列的表格,并且可以支持拉拽移动到窗口之外或从外拽入,以及相应的动画效果等。本讲座内容为:

  • 表格的结构(Layout)
  • 如果创建(Construct)
  • 数据联系(Bindings)
  • 表格内容的特殊化设计(Customizing)
  • 拉拽(Drag and drop)
  • 动画(Animation)
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来编写插入,删除和移动的编码。

我的RSS
浏览(702) (0) 评论(0)
发表评论
我的名片
茶树油之家
来自: 加拿大
注册日期: 2007-01-19
访问总量: 509,861 次
点击查看我的个人资料
Calendar
最新发布
· ZOOM 會議:iOS 平台上的軟件開
· 專注做一件事是最好的擺脫
· 我的 iOS app 更新了
· 有關老面製作的問與答(三)
· 從Legacy 小道,我重新開始了跑
· 從Legacy 小道,我重新開始了跑
· 為準備馬拉松長跑的第一次嘗試
分类目录
【社会公益】
· 飄香茉莉 - 李靖惠
· 天使的恩賜
· 經典京劇『鎖麟囊』
· 挑戰自己:參加2013卡爾加里馬拉
· 梦想合唱团大聚会与奥运梦想
· 中央电视台的梦想合唱团公益活动
【WWDC】
· 學習WWDC 2017
· 學習WWDC 2015
· 網上學習:WWDC 2013視頻講座
· WWDC 2013技術講座視頻
· WWDC 2012笔记(4)
· WWDC2012的学习笔记(3)
· WWDC 2012的学习笔记(2)
· WWDC 2012的学习笔记(1)
· WWDC2011视频的学习笔记(21)
· WWDC2011视频的学习笔记(19)
【网络安全】
· Heartbleed網絡安全漏洞
· 苹果小技巧:如何在PDF文件上加
· 警惕你的苹果礼物卡被窃
· 苹果用户的独特免疫能力
· 苹果发布安全更新2011-003
· 最新的微软IE漏洞和劫持Cookie的
· 新的恶意软件第二番攻击苹果
· 新的恶意软件开始攻击苹果
【生活与健康】
· 有關老面製作的問與答(三)
· 從Legacy 小道,我重新開始了跑
· 從Legacy 小道,我重新開始了跑
· 為準備馬拉松長跑的第一次嘗試
· 張宏文與西班牙華人的醫療諮詢
· 有關老面製作的問與答(二)
· 美麗的洛基山脈
· 有關老面製作的問與答(一)
· 我為什麼喜歡蘋果
· 加拿大抗新冠病毒動態 2020.4.16
【TED视频】
· 請求的藝術
· TED有關兩種不同政治制度的精彩
· 游擊隊方式的城市菜園
· 玩游戏可以多活十年
· 中毒宝宝
· 中美关系不需要多一个律师
· TED视频:脆弱的力量
· TED视频精选:戴维·卡梅伦论政府
· TED视频:为什么SOPA是一个馊主
· TED视频:失败是成功之母
【海外生活】
· 從Legacy 小道,我重新開始了跑
· 從Legacy 小道,我重新開始了跑
· 為準備馬拉松長跑的第一次嘗試
· 張宏文與西班牙華人的醫療諮詢
· 有關老面製作的問與答(二)
· 美麗的洛基山脈
· 有關老面製作的問與答(一)
· 我為什麼喜歡蘋果
· 加拿大抗新冠病毒動態 2020.4.16
· 加拿大抗新冠病毒動態 2020.4.16
【网络服务】
· 專注做一件事是最好的擺脫
· 谷歌帳號和相應的雲服務
· 用圖像和風格語言css 定義數字章
· 网络服务:计算型知识引擎服务
· 如何优化图像所占用的空间
· 用视觉方式快速算算数
· 新浪【船过水无痕】的博文,非常
· 苹果的云服务iCloud与谷歌的云服
· 新浪微博对话实例
· 使用网络翻译服务,写中文博客
【软件开发】
· ZOOM 會議:iOS 平台上的軟件開
· 專注做一件事是最好的擺脫
· 我的 iOS app 更新了
· iOS App: TapToCount - 3W
· 第一个iOS app 的里程碑
· TestFlight - 蘋果iOS app測試的
· 24點的算法
· 學習WWDC 2015
· 漢字聽寫大會-電腦書寫輸入法
· WWDC2012的学习笔记(3)
【我爱苹果】
· ZOOM 會議:iOS 平台上的軟件開
· 我為什麼喜歡蘋果
· iOS App: TapToCount - 3W
· 為武漢发生COVID-19疫情做一點貢
· 第一个iOS app 的里程碑
· 创作app的乐趣
· 你知道你的睡覺節奏規律嗎?
· 學習WWDC 2017
· 點擊計數 - 記住隨時隨地的點滴
· 學習WWDC 2015
【网络技术】
· 專注做一件事是最好的擺脫
· 如何用 Blogger 邀请朋友共同写
· 今天是3.14日,以及VIM的強大區
· 探討:採用QR碼快速連接Wi-Fi
· 互聯網+和微信
· 写博客的体会
· WA实例:分数的计算
· 如何将XML内容用HTML格式表述
· 如何优化图像所占用的空间
· 谷歌博客更新:增加动态放大图像
【茶树油】
· 有關老面製作的問與答(三)
· 茶樹精油消毒殺菌的熏蒸法
· 新冠病毒核酸檢測之淺解
· 倡議:聯合海外華人寫抗疫日記
· 茶树精油新用法:消毒和清洁面部
· 為關心COVID-19疫情寫的小詩
· 為武漢发生COVID-19疫情做一點貢
· 2018,达到一万公里里程碑!
· Melaleuca 2017/12/26 年銷售額
· 跑步里程達到八千公里
存档目录
2020-05-11 - 2020-05-21
2020-04-04 - 2020-04-23
2020-03-01 - 2020-03-31
2020-01-07 - 2020-01-25
2019-03-20 - 2019-03-20
2019-02-09 - 2019-02-09
2018-12-31 - 2018-12-31
2018-05-18 - 2018-05-18
2017-12-09 - 2017-12-26
2017-10-19 - 2017-10-19
2017-09-06 - 2017-09-06
2017-08-17 - 2017-08-17
2017-06-07 - 2017-06-28
2017-04-12 - 2017-04-28
2017-03-31 - 2017-03-31
2017-02-22 - 2017-02-22
2017-01-18 - 2017-01-23
2016-10-25 - 2016-10-25
2016-03-21 - 2016-03-21
2016-02-01 - 2016-02-17
2016-01-12 - 2016-01-22
2015-12-04 - 2015-12-11
2015-11-19 - 2015-11-24
2015-10-14 - 2015-10-14
2015-08-05 - 2015-08-05
2015-07-24 - 2015-07-24
2015-04-06 - 2015-04-24
2015-03-14 - 2015-03-18
2015-02-05 - 2015-02-05
2015-01-20 - 2015-01-20
2014-12-13 - 2014-12-13
2014-11-13 - 2014-11-13
2014-10-01 - 2014-10-10
2014-09-01 - 2014-09-24
2014-08-07 - 2014-08-29
2014-07-11 - 2014-07-31
2014-06-23 - 2014-06-23
2014-05-02 - 2014-05-31
2014-04-20 - 2014-04-27
2014-02-14 - 2014-02-14
2014-01-06 - 2014-01-29
2013-12-02 - 2013-12-30
2013-11-06 - 2013-11-18
2013-10-12 - 2013-10-30
2013-09-03 - 2013-09-03
2013-08-01 - 2013-08-23
2013-07-05 - 2013-07-30
2013-06-03 - 2013-06-14
2013-04-03 - 2013-04-30
2013-03-07 - 2013-03-30
2013-02-18 - 2013-02-23
2012-12-05 - 2012-12-25
2012-11-08 - 2012-11-25
2012-10-05 - 2012-10-18
2012-09-26 - 2012-09-26
2012-08-03 - 2012-08-25
2012-07-07 - 2012-07-27
2012-06-01 - 2012-06-28
2012-05-01 - 2012-05-27
2012-04-08 - 2012-04-27
2012-03-03 - 2012-03-31
2012-02-07 - 2012-02-29
2012-01-15 - 2012-01-27
2011-12-03 - 2011-12-20
2011-11-02 - 2011-11-22
2011-10-01 - 2011-10-30
2011-09-03 - 2011-09-24
2011-08-01 - 2011-08-31
2011-07-01 - 2011-07-30
2011-06-01 - 2011-06-29
2011-05-01 - 2011-05-31
2011-04-02 - 2011-04-30
2007-01-19 - 2007-01-19
 
关于本站 | 广告服务 | 联系我们 | 招聘信息 | 网站导航 | 隐私保护
Copyright (C) 1998-2024. Creaders.NET. All Rights Reserved.