Come posso sapere se un NSManagedObject è persistente?Come sapere se NSManagedObject è stato salvato?
(al contrario di un nuovo oggetto che non ha beed ancora salvato o è stato cancellato.)
Come posso sapere se un NSManagedObject è persistente?Come sapere se NSManagedObject è stato salvato?
(al contrario di un nuovo oggetto che non ha beed ancora salvato o è stato cancellato.)
controllo se il suo oggetto id è persistente
BOOL isSaved = !object.objectID.isTemporaryID;
documentazione su isTemporaryID:
"SI se il ricevitore è temporaneo, altrimenti NO La maggior parte degli ID oggetto restituisce NO. I nuovi oggetti inseriti in un contesto oggetto gestito sono assegnati a un ID temporaneo che viene sostituito con uno permanente una volta che l'oggetto viene salvato in un archivio persistente. "
La risposta di Daij-Djan funziona solo con iOS 8.0+. Per le vecchie versioni usa:
BOOL isSaved = nil != object.objectID.persistentStore;
No. Lo uso su lower oss –
Hmm, strano ... "Disponibile in iOS 8.0 e versioni successive" (documentazione). – kpower
Errore nella documentazione im. –
Sembra che in rapida devi usare '.temporaryID' invece di' .isTemporaryID' –
Sì, la proprietà è 'temporaryID', ma getter è impostato su misura' isTemporaryID' - così Objective-C lo chiama come '[object.objectId isTemporaryID]' – kpower
Ma anche dopo, è possibile ottenere un ID permanente per un oggetto che non è ancora persistente, correggimi se ho torto. Ciò porterebbe alla risposta non deterministica:/ –