17.6. Managing the State of Documents in iCloud

Problem

You want to be able to detect conflicts and other issues that could occur as a result of syncing documents to iCloud.

Solution

Stat listening to the UIDocumentStateChangedNotification notification.

Note

I highly recommend reading Recipe 17.5 before proceeding with this recipe, as the material described here highly relies on what was taught in that section.

Discussion

The UIDocumentStateChangedNotification notification gets sent when the state of an iCloud document (of type UIDocument) is changed. The object carried by this notification is the instance of the UIDocument whose state was changed. You can listen to this notification and then analyze the documentState property of your iCloud document; this property is of type UIDocumentState and can be a mixture of these values:

UIDocumentStateNormal

Things are normal and no conflicts have occurred in the document.

UIDocumentStateClosed

This means that the document has not yet been opened, or was open and has just been closed. You might want to disallow the user from editing the document while the document is in this state. Apple recommends that you do not display alert views to your users, but instead, perhaps, display graphical components on the screen to indicate to the user that editing has been disabled.

UIDocumentStateInConflict

This state indicates that a conflict has happened in the document. For instance, the same document could had been edited by two or more people at the same time ...

Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.