Situation:
a) I have some records, pushed from my app into iCal. Lets say its a
Calendar and Task.
b) my app deletes them by calling deleteRecordWithIdentifier
c) my app push records, to make identical calendar (with new id) and
event in it.
Result:
in iCal I find new calendar with event and...the deleted calendar. It
can not be deleted manually from iCal. I must turn off iCal and start
it again. Then it is gone..
If I pull the truth from sync services, when iCal is showing deleted
calendar, there is no such record in sync services db..
There is some more info from Syncospector.
<<<<<< session 1 >>>>>>
My app deletes Calendar and Task. iCal actions history:
{
calldate = 2006-02-27 14:43:52.405;
methodname = nextObject;
parameters = ();
returndate = 2006-02-27 14:43:52.858;
returnedvalue = <ISyncChange 0x599f17a0>{ delete record id
'Calendar:BD80BA75-1C70-4B1F-8907-435199E5476B/Task:
3AD806F4-3BF0-424B-BBFC-8C677592264E' (no changes) };
}
{
calldate = 2006-02-27 14:43:52.858;
methodname = nextObject;
parameters = ();
returndate = 2006-02-27 14:43:52.859;
returnedvalue = <ISyncChange 0x599f1a20>{ delete record id
'Calendar:BD80BA75-1C70-4B1F-8907-435199E5476B' (no changes) };
}
Pay attention, that calendar id (in iCal) is
Calendar:BD80BA75-1C70-4B1F-8907-435199E5476B.
After that, in the same delete session iCal still converts ids:
<<<<<< session 2 >>>>>>
In the next sync session my app adds new calendar and event in it.
iCal history:
{
calldate = 2006-02-27 14:44:31.019;
methodname = nextObject;
parameters = ();
returndate = 2006-02-27 14:44:31.061;
returnedvalue = <ISyncChange 0x5ab498c0>{ add record id
'com.apple.syncservices:90AD20DE-7942-4472-BE58-4DDAEA46C2F3'
set start date = 2006-02-27 14:40:00 +0200
set all day = 0
set calendar = ("com.apple.syncservices:08A5D70A-B854-402D-
BBE3-33F7A2E36029")
set end date = 2006-02-28 14:40:00 +0200
set summary = Event_title
set com.apple.syncservices.RecordEntityName =
com.apple.calendars.Event };
}
{
calldate = 2006-02-27 14:44:31.061;
methodname = nextObject;
parameters = ();
returndate = 2006-02-27 14:44:31.061;
returnedvalue = <ISyncChange 0x5ab4a390>{ add record id
'com.apple.syncservices:08A5D70A-B854-402D-BBE3-33F7A2E36029'
set com.apple.ical.type = local
set com.apple.syncservices.RecordEntityName =
com.apple.calendars.Calendar
set events = ("com.apple.syncservices:90AD20DE-7942-4472-
BE58-4DDAEA46C2F3")
set read only = 0
set title = Kalendorius };
}
Again iCal notices sync services about id changes:
we can find calendar id
Calendar:BD80BA75-1C70-4B1F-8907-435199E5476B, which actually, should
be deleted in a previous session. And now iCal is showing the new
calendar with event, and the old one, with id
Calendar:BD80BA75-1C70-4B1F-8907-435199E5476B, which should be gone.
As I have mentioned - it is not possible to delete that calendar from
iCal. If I turn off iCal and start it again, that deleted calendar is
gone..
So. My question is - is that a bug in iCal, or there is something,
that I can not understand or simply missed?
Regards,
Rimas M.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden