Core Data Release Notes for iOS 5.0
Quando abilitato, Core Data decide euristico su una base per-valore se dovrebbe salvare i dati direttamente nel database o conservare un URI in un file separato che gestisce per voi. Non è possibile eseguire una query in base al contenuto di di una proprietà dati binari se si utilizza questa opzione.
E dal tuo link External Binary Data, l'euristica sembra essere
oggetti che sono più piccoli di 1 MB vengono memorizzati nel database. Per gli oggetti di dimensioni maggiori, viene creato un file esterno e il database memorizza solo un riferimento.
Così i seguenti consigli è ancora valida: CoreData : store images to DB or not?
- < negozio 100kb nella stessa tabella come i dati rilevanti
- < negozio 1MB in una tabella separata collegata tramite un rapporto da evitare caricamento inutilmente
-
1mb store su disco e riferimento all'interno di Core Data
La bandiera imposta Core Data di seguire quel consiglio e memorizzare immagini> 1MB come un file disco separato automaticamente.
Quindi in tal caso dovremmo probabilmente inserirlo in un'entità separata nel caso in cui sia compreso nell'intervallo 100kb-1mb poiché l'archiviazione esterna non tiene conto di quel caso? –
Avvertenza: c'è un bug con l'archiviazione di immagini esterne che lo blocca quando viene eliminato, a volte: http://stackoverflow.com/questions/7930427/error-uiimage-deleteexternalreferencedirectory permanente- riconosciuta-se –
C'è un altro bug con memoria esterna e migrazione. Se si tenta di creare un nuovo modello e quindi di utilizzare la migrazione leggera, si perdono tutti i "Dati binari" archiviati in un file esterno. – zirinisp