Сохраняет ли AddressBook.sqlitedb на iphone столбец timestap, чтобы определить, какие записи контактов были добавлены или изменены в какое время? - PullRequest
0 голосов
/ 09 декабря 2010

Есть ли способ определить, какие записи контактов были изменены или добавлены в AddressBook.sqlitedb на IPhone. Я хочу, чтобы мое приложение прочитало AddressBook.sqlitedb и определило, какие записи контактов были добавлены или изменены в AddressBook.sqlitedb с момента последнего чтения базы данных? Есть ли в каждой таблице какое-либо поле метки времени, в котором хранится время добавления или изменения записи?

В основном моя проблема в том, что когда мое приложение не запущено, пользователь может добавлять / изменять контакты на своем Iphone. Теперь, когда мое приложение запустится, как оно будет определять, какие изменения произошли? Я не хочу хранить локальную копию AddressBook.sqlitedb в своем приложении и сравнивать ее с оригинальной Iphone AddressBook.sqlitedb. Должен быть какой-то более разумный вариант для достижения этой цели. Пожалуйста, помогите, ребята.

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

да, есть отметка времени для добавления или изменения.

свойства:

NSString * const kABCreationDateProperty;
NSString * const kABModificationDateProperty;

, но лучше использовать ABAddressBookRegisterExternalChangeCallback.

void ABAddressBookRegisterExternalChangeCallback (
   ABAddressBookRef addressBook,
   ABExternalChangeCallback callback,
   void *context
);

Вы можете найти больше деталей здесь:

http://developer.apple.com/library/ios/#documentation/AddressBook/Reference/ABAddressBookRef_iPhoneOS/Reference/reference.html

надеюсь, что это hepls, Шани

0 голосов
/ 09 декабря 2010

Вы не можете получить доступ к базе данных sqlite напрямую, если ваш iPhone не взломан, так что об этом не может быть и речи. Я предположил бы (я не уверен в этом), что ABRecordID, возвращаемый ABRecordGetRecordID(), является действительным долгосрочным. Чтобы сохранить запись контакта, вы можете сохранить ABRecordID, а затем искать свойства этого контакта, когда вам это нужно. Если у вас есть более сложные потребности (например, поиск / сортировка по свойствам), вам придется как-то реализовать это самостоятельно.

...