![](/img/trans.png)
[英]App crashes with error AppName[5811] was suspended with locked system files:AddressBook.sqlitedb"
[英]Does AddressBook.sqlitedb on iphone maintain a timestap column to determine which contact records have been added or modified at what time?
有沒有辦法確定哪些聯系人記錄已被修改或添加到iPhone上的AddressBook.sqlitedb。 我的意思是我希望我的應用程序讀取AddressBook.sqlitedb並確定從我上次讀取數據庫時添加或修改了哪些聯系人記錄到AddressBook.sqlitedb? 他們在每個表中維護某種時間戳字段來存儲記錄的添加或更改時間嗎?
基本上,我的問題是,當我的應用程序未運行時,用戶可以在其Iphone上添加/修改聯系人。 現在,當我的應用程序啟動時,它將如何確定發生了哪些更改? 我不想在我的應用程序中存儲AddressBook.sqlitedb的本地副本,並將其與Iphone原始AddressBook.sqlitedb進行比較。 必須有一些更明智的選擇來實現它。 請幫助大家。
是的,有一個添加或修改的時間戳。
這些屬性是:
NSString * const kABCreationDateProperty;
NSString * const kABModificationDateProperty;
但是更好的方法是使用ABAddressBookRegisterExternalChangeCallback。
void ABAddressBookRegisterExternalChangeCallback (
ABAddressBookRef addressBook,
ABExternalChangeCallback callback,
void *context
);
您可以在此處找到更多詳細資料:
希望它是肝,shani
你不能直接訪問sqlite數據庫,除非你的iPhone被越獄,所以這是不可能的。 我會想象(我不知道這個),該ABRecordID
返回由ABRecordGetRecordID()
是有效的長期的。 要存儲聯系人記錄,您可以存儲ABRecordID
,然后在需要時查找該聯系人的屬性。 如果你有更復雜的需求(例如按屬性搜索/排序),你必須以某種方式自己實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.