我是iPhone開發新手,你能告訴我如何序列化AdressBook記錄嗎?
我已閱讀stackoverflow - How do I serialize a simple object in iPhone sdk,但我仍然有疑問: 應該擴展ABRecordRef嗎?可能嗎?或者我應該實現自己的類NSObject?IPhone SDK - 如何序列化ABRecord?
(類似的問題是在Mac forums和被留下,不用回答)
謝謝!
我是iPhone開發新手,你能告訴我如何序列化AdressBook記錄嗎?
我已閱讀stackoverflow - How do I serialize a simple object in iPhone sdk,但我仍然有疑問: 應該擴展ABRecordRef嗎?可能嗎?或者我應該實現自己的類NSObject?IPhone SDK - 如何序列化ABRecord?
(類似的問題是在Mac forums和被留下,不用回答)
謝謝!
ABRecord是一個不透明的C類型。它不是Objective-C意義上的對象。這意味着您無法擴展它,您無法在其上添加類別,也無法向其發送消息。您唯一能做的就是調用ABRecord Reference中描述的函數,並將ABRecord作爲參數。
你可以做兩件事情能夠保持在ABRecord引用的信息以防萬一:
由ABRecordGetRecordID()
獲取ABRecords ID。 ABRecordID定義爲int32_t,因此您可以將其轉換爲NSInteger並將其存儲在任何地方。您可以稍後從ABAddressBookGetPersonWithRecordID()
或ABAddressBookGetGroupWithRecordID()
獲取記錄。但意識到,記錄可能會被更改,甚至被用戶或其他應用程序刪除。
將記錄內的所有值複製到標準NSObject子類中,並使用NSCoding或其他技術來存儲它。那麼您將不會從用戶可能做出的記錄更改或添加中受益。
因爲你可以結合這兩種方法。
謝謝你的回答,這會帶來理解! – 2010-07-09 05:04:26
非常有用。在將副本保存到我的應用程序核心數據後,我一直在爲一個人的方式而苦惱。所以這有所幫助。 – CW0007007 2012-11-09 18:09:16