按月彙整:六月 2014

《Core Data應用開發實踐指南》討論及勘誤

更新記錄

2015年6月18日15:17 添加勘誤
2015年6月19日21:32 添加勘誤
2018年9月6日02:51 添加补充信息


請各位讀者將涉及本書內容的勘誤、意見及建議評論於此,以便集中瀏覽,謝謝!

本網頁右上角有簡繁體轉換按鈕,大家可以切換到自己喜歡的中文模式。


补充信息:

感谢网友 tongxing 在评论中提供链接,指出了与本书原版《Learning Core Data for iOS: A Hands-On Guide to Building Core Data Applications》相似的另一本书,名叫《Learning Core Data for iOS with Swift: A Hands-On Guide to Building Core Data Applications, 2nd Edition》(也可以认为是本书原版的第 2 版)。

那本书附带 swift 源代码,可参见:http://www.informit.com/content/images/9780134120034/downloads/9780134120034_Code.zip,按章节划分的版本,可参见:https://timroadley.com/books/learning-core-data-for-ios-with-swift

此网页主要用来讨论与《Learning Core Data for iOS》本身及其中文译本《Core Data 应用开发实践指南》有关的话题。


範例代碼備用下載鏈接:

单个压缩包:
http://www.informit.com/content/images/9780321905765/downloads/LearningCoreDataCode.zip

按章节划分:
https://timroadley.com/books/learning-core-data-for-ios


勘誤表

位置:第62頁,圖3-13

章節:第3章,第5節

原文:(原圖錯誤)

改文:(見下圖)
圖3-11

回報者:Cool Kern

位置:第74頁,表4-1

章節:第4章,第3節

原文:(表格第2行,1580及nsvalidationMultipleErrorsError)

改文:(1580改為1560,nsvalidationMultipleErrorsError的前三個字母應大寫,改為NSValidationMultipleErrorsError)

回報者:Cool Kern

位置:第76頁,程序清單4-6

章節:第4章,第3節

原文:(// display error message txt message那一行下方,缺了一部分代碼)

改文:(見下圖)
程序清單4-6尾部缺失的代碼

回報者:Cool Kern


翔按:本書對各術語所採用之中文譯法,僅代表我個人意見,與他人無關。

對於「一詞多譯」、「譯與不譯」以及「中英文並列時哪個在前」等問題,請大家訪問 ITEC 項目共同討論。

ITEC為「IT術語及計算機科學術語中英文對照表」之簡稱,網址為:https://github.com/jeffreybaoshenlee/IT-Terms-EN-CN

除此之外其它事宜,如印刷格式及翻譯問題等,請在本網頁留言。

中英文詞彙對照表

英文 本書譯法 其他譯法
application bundle 應用程序包 應用程序捆綁;應用程序捆綁包
application delegate application delegate 應用程序委託
(描述任務處理方式的)background 後臺 背景
de-duplication 去除重複數據;重複數據去除 刪除重複數據
dot notation 點;點符號 點寫法;點記法;點表示法;點表達式
edge guide 邊界基準線;邊線 邊緣引導線
end user 終端用戶 最終用戶
Fallback Store Fallback Store 後備存儲區;備用存儲區;備援存儲區
filter 篩選;過濾
(描述任務處理方式的)

foreground

前臺 前景
interface element 界面元件 界面元素;界面組件
key-value coding 鍵值編碼 鍵值編程
lag 卡頓 延遲;遲滯;遲緩
managed object 託管對象 受託管的對象
notification 通知 通告
parent entity 父實體 上代實體
performance 性能 效能
persistent store 持久化存儲區 持久化存儲;持久化倉庫
private queue 專用隊列 私用隊列;私有隊列
profile … 分析……的性能

對……做性能分析

對……做Profile

protocol 協議 協定
relationship 關係 關聯
schema 綱要 模式;大綱;概要
seed

seeding

散播數據;填充數據

數據散播

swipe 滑動 掃屏
validation error 驗證錯誤 合法性錯誤

豆瓣信息頁面:
http://book.douban.com/subject/26280358/
china-pub信息頁面:
http://product.china-pub.com/3770698
卓越亞馬遜信息頁面:
http://www.amazon.cn/dp/B00QGA0AGM/ref=sr_1_1
當當網信息頁面:
http://product.dangdang.com/23611793.html
京東信息頁面:
http://item.jd.com/11589219.html

英文原版书相關信息:
名稱:《Learning Core Data for iOS: A Hands-On Guide to Building Core Data Applications》
作者:Tim Roadley
出版社:Addison-Wesley Professional

Amazon信息頁面:http://www.amazon.com/Learning-Core-Data-iOS-Hands-/dp/0321905768/ref=sr_1_1
豆瓣信息頁面:http://book.douban.com/subject/24538358/


廣告

64位Linux操作系統運行32位遊戲時出現libopenal.so.1相關錯誤之解決方案

下載獨立遊戲《Donkey-Me》http://www.bruneras.com/games_donkeyme.php)並解壓縮,用終端機進入遊戲主目錄後,發現無法以./runner命令來運行遊戲。想到還沒給它添加可執行權限,於是就用chmod +x runner命令為其添加該權限。

加上後依然無法運行,提示error while loading shared libraries: libopenal.so.1錯誤,經核查,發現系統已經裝有libopenal1包,參考網帖後,以sudo ln -s /usr/lib/x86_64-linux-gnu/libopenal.so.1 /usr/lib/libopenal.so.1命令創建鏈接。本來我想把鏈接創建到遊戲可執行文件所在目錄,試過之後發現不行,估計遊戲還是會從/usr/lib中搜尋相關程序庫吧。

這樣運行,又提示wrong ELF class: ELFCLASS64錯誤,想到可能是因為遊戲要用32位libopenal1包,於是用sudo apt-get install libopenal1:i386命令安裝該包,並執行sudo ln -s /usr/lib/i386-linux-gnu/libopenal.so.1 /usr/lib/libopenal.so.1 -f命令,重新創建鏈接。

再次運行,問題解決。

順便說說:《Donkey-Me》是一款向《Donkey Kong》(大金剛)致敬之遊戲,復古像素風格,蠻好玩,大家不妨一試。

參考資料:

《error while loading shared libraries: libopenal.so.0: …》
https://bbs.archlinux.org/viewtopic.php?id=66758

《Is it possible to have 32 bit libraries installed on a 64 bit system?》
http://askubuntu.com/questions/60751/is-it-possible-to-have-32-bit-libraries-installed-on-a-64-bit-system

Nexus 5從4.4.2升級4.4.3之步驟

  翔按:假如您未刷Root,或Root之後沒有安裝「特殊」軟件,那麼手機端接到升級通知後,就應該能以「OTA」方式正常升級了。在那種情況下,似乎無需閱讀本文。但如果您像我一樣,對手機瀏覽器做了「改裝」,或是安裝了Xposed等框架,那麼不妨一讀。另外,您也可以不按本文操作,而是採用「生存模式」來解決問題。相關資料請上網搜尋。該模式可能需要SuperSU Pro。(翔按:可以通過「開啓專業版」選項直接開啓Pro版本。開啓後需要重啓SuperSU。)

  2014年6月26日補記:用OTA方式可以從4.4.3正常更新至4.4.4。由於更新前沒有開啓「生存模式」,所以更新後失去root權限。刷入chainfire所製作「一鍵式recovery與root刷機包」,並重新安裝相關APK文件即可。

  今天(2014年6月10日)中午睡起來,突然發現Nexus 5推送升級通知了。它可比Nexus 10晚了四天,N10在上週五(2014年6日6日)即收到通知。我按照正常步驟下載升級包,然後重啓。

  1. 運用升級包時提示帶有「Browser」字樣之錯誤,其原因乃在於我當時迷戀所謂「系統原生瀏覽器」,從而採用某種辦法將對應apk放入ROM中所致。當時我曾把/system/app中之「BrowserProviderProxy.apk」與「BrowserProviderProxy.odex」文件都加了「.old」後綴名,現在刪去兩文件之「.old」後綴,並把原來放入之Browser.apk刪掉(或轉移走)。翔按:此過程可能需要「root權限」,所以請勿剛開機就急於操作,而是應該等待各種預設程序啓動好之後再操作纔好,否則可能要等很長時間。
  2. 解決上述問題之後,重新檢查系統更新,這次居然沒有推送升級通知。本想從/cache中把zip升級包拷貝到「sdcard」(翔按:Nexus 5沒有sdcard,它只是個虛擬名號罷了),在複製到電腦端,結果發現/cache中已經沒有這個zip了。只好從http://android.clients.google.com/packages/ota/google_hammerhead/d173d546ab2347ead90cb0978657f11046300511.signed-hammerhead-KTU84M-from-KOT49H.d173d546.zip手工下載這個文件。
  3. 為了令升級過程少一些干擾,我在「設定->安全性->裝置管理員」中,把現有各項都取消了。
  4. 下載之後,我將其複製到電腦端,然後把手機重啓到bootloader,並進入官方recovery,開啓sideload功能。這時我從電腦端試圖將4.4.2升4.4.3所用zip文件刷入手機,可是手機卻說「system/bin/app_process has unexpected contents」,一番檢索之後,發現可能是當時在手機上安裝了Xposed所致。遂正常啓動手機,進入Xposed Installer程序,將Xposed框架卸載。
  5. 重新sideload之後,未提示錯誤。為求穩健,我又重新刷入「一鍵式recovery與root刷機包」(請參考http://autoroot.chainfire.eu/),並重啓手機。這次會逐個更新已安裝之程序,更新之後進入Android系統,發現版本已是4.4.3。但是卻找不到SuperSU程序了。
  6. 本想通過sideload刷入「clockwork定製版recovery」及chainfire網站之「supersu」包,但手機卻提示簽名錯誤。此問題小愛暫時不明其緣由,哪位朋友若知曉,煩請賜教。另外,每次進入bootloader時,手機總是提示一行字,說「secure boot」已經「enabled」了,網上有人說「secure boot enabled」類似於HTC手機之「S-ON」(參考https://plus.google.com/103583939320326217147/posts/P1i8qzLfkTm,感謝該文作者Koushik Dutta),我也查不到如何將其關閉,暫且存疑。
  7. 後來經網上帖子指點,其實只需在Android系統裡面通過文件管理工具找到/system/app/Superuser.apk,並重新安裝即可。安裝該文件需要較長時間,如果發現遲遲未裝好,可先打開Play商店,令其識別出手機內現有軟件。另外,安裝完SuperSU之後,可以去Play商店更新一下該軟件。

  以上就是這次升級全過程,小愛將其寫下來,供各位朋友參考。在此過程中,受到了下列文章之啓發,在此對其作者及跟帖者表示感謝。

《[求助] 4.4 OTA失敗 求助》
http://bbs.gfan.com/android-6990440-1-1.html
作者:雲之龍,跟帖者:十葉十葉

《Easy Android ROMs Customization Through Xposed Framework》
http://www.hongkiat.com/blog/add-features-android-xposed-framework/
作者:Nels Dzyre

《Nexus 5 Receives Android 4.4.3 (KTU84M) Official OTA Update [Changelog and Manual Installation]》
http://www.ibtimes.co.uk/nexus-5-receives-android-4-4-3-ktu84m-official-ota-update-changelog-manual-installation-1451151
作者:Sarmistha Acharya