[iOS] Core Data Lightweight Migration
為了儲存更多的資料,我們難免會在Core Data上增加Attribute,甚至為了方便管理資料庫,我們會分割單一Table為多個Table,而最簡單的Core Data Lightweight Migration,只要在某個method中加入幾行程式碼即可運作。
– (NSPersistentStoreCoordinator *)persistentStoreCoordinator
為了儲存更多的資料,我們難免會在Core Data上增加Attribute,甚至為了方便管理資料庫,我們會分割單一Table為多個Table,而最簡單的Core Data Lightweight Migration,只要在某個method中加入幾行程式碼即可運作。
– (NSPersistentStoreCoordinator *)persistentStoreCoordinator
什麼是plist?全名為property list,在所有的資料儲存方法中,最容易莫過於Property List了,陣列、字典、字串和資料都可以存成XML格式的Property List,事實上,NSUserDefaults就是一個Property List。
不過並非所有的資料都適合用它來儲存,像是過多的資料或是自己設計的一些複雜物件都不太適合,因為Property List會一次將整個文件內容讀取到記憶體中,無論效率上或是空間上都不是很理想。
使用plist存取檔案有什麼特色?
| 資料型態 | XML 元素 | Foundation framework 類別 |
| array | <array> | NSArray |
| dictionary | <dict> | NSDictionary |
| string | <string> | NSString |
| data | <data> | NSData |
| date | <date> | NSDate |
| number – integer | <integer> | NSNumber(intValue) |
| number – floating point | <real> | NSNumber(intFloat) |
| Boolean | <true/>或<false/> | NSNumber(boolValue) |
不知道為什麼,同樣步驟編譯執行,無論在iPad或iPhone上,甚至在simulator上都一樣都死當……還出現一行我摸不著頭緒的錯誤訊息:
Couldn’t register com.HappyMan.debug with the bootstrap server. Error: unknown error code. This generally means that another instance of this process was already running or is hung in the debugger.Program received signal: “SIGABRT”.
問了資深工程師,他也從沒遇過類似的問題,這下囧大了……
看了網路上幾乎都是使用上才有的問題,偏偏我的就是開發上的問題,哈~也許我開發出一支足以破壞Apple生態系的病毒APPXD
我想要讓影像有轉場動畫的效果,如此使用者體驗會更加舒適。之前查到的方法都是用UIView,這個方法用UIImageView才是我要的,讓我不用UIView包UIImageView。House Book這張圖會拿來放相片,A相片轉換到B相片時我想要淡出和淡入,該怎麼做呢?
原本以為獲取日期和時間的方法很簡單,沒想到它是如此深奧,我查詢一些跟NSDate相關的API用法,只要掌握幾個簡單的原則,就可運用自如。像是由 NSDate 轉換為 NSString,和由 NSString 轉換為 NSDate。
寫iOS的APP時,幾乎任何應用都需要確認網路狀態,畢竟iPhone和iPad都是行動裝置,在這充滿無線網路的環境之下,我們會希望使用者的網路狀態良好,因而發揮我們精心設計的APP功能。
維基百科這麼介紹Core Data:
簡單的說,Core Data就是可以儲存到磁碟的物件圖,Core Data可以幫我們做很多工作,它可以作為軟體的整個模型層。它不僅僅在磁碟上儲存資料,也把我們需要的資料物件讀取到記憶體中。—Marcus Zarra,Core Data
Core Data是Mac OS X中Cocoa API的一部分,首次在Mac OS X 10.4 Tiger與iOS 3.0系統中出現。它允許按照實體-屬性-值 (EAV)模型組織資料,並以XML、二進制檔案或SQLite資料檔案的格式將其序列化。Core Data允許使用者使用代表實體和實體間關聯的高層物件來運算元據。它也可以管理序列化的資料,提供物件生存期管理與object graph管理,包括儲存。Core Data直接與SQLite互動,避免開發者使用原本較複雜的SQL語句。
就像Cocoa繫結在模型-檢視-控制器 (MVC)設計中做了很多控制器的工作一樣,Core Data做了很多資料模型的工作。它的主要任務是負責資料更改的管理,序列化到磁碟,最小化記憶體佔用,以及查詢資料。
在程式裡頭時常需要使用資料來運作,若能瞭解各檔案路徑專門存放的檔案類型(靜態與動態),將能使開發過程更明確與方便,比如將時常會變動的資料(動態資料)放在Document,絕對不會變動的資料(靜態資料)放在Resource,另外暫時產生的資料則放Temporary。
最近事業開始做大,事情逐漸多了起來,只好在半夜趕工,將今天所看到的資訊給整理起來,以便日後參考!
一直覺得寫程式視覺化比較有趣,所以也開始推崇圖文教學,尤其是在直接跟使用者互動的智慧手機和平板電腦更是重要!
今日先來貼UIKeyboardType鍵盤類型的截圖,要是有這麼淺顯易懂的教學,就不用每個類型都執行一遍了呀~
HappyMan・迴響