/ / Základné údaje: Premena objektov na chyby po ich uložení? - ios, Objective-C, základné dáta

Základné dáta: Prepnutie objektov do chýb po ich uložení? - ios, objektív-c, základné údaje

Vo svojom kóde urobím veľký import tisícov objektov a vykonám save po každom objekte.

Musím po uložení každý objekt zmeniť na chybný, aby som šetril pamäť, alebo ho Core Data automaticky zmenia na chyby? Bohužiaľ som v ňom nenašiel žiadnu stopu Apple`s doc.

Ďakujem!

odpovede:

1 pre odpoveď č. 1

A. Z predmetu môžete urobiť chybu refreshObject: mergeChanges: (NSManagedObject). Týmto sa vzdáte silných odkazov na súvisiace objekty, aby ich bolo možné uvoľniť. (Ak nie sú držané iným odkazom.)

Realizovaný objekt môžete zmeniť na poruchuthe metóda refreshObject: mergeChanges:. Ak ako mergeChanges zadáte NIE argumentom, musíte si byť istí, že v objekte daného objektu nie sú žiadne zmeny vzťahy. Ak existujú a potom kontext uložíte, urobíte to zaviesť trvalé problémy s referenčnou integritou. (odkaz)

B. Všetky predmety môžete vymazať pomocou -reset (NSManagedObjectContext) ako povedal Daniel G. Ale to skutočne vymaže objekty, referencie sa môžu zlomiť.

C. Myslím si, že neexistuje prísľub CD, že by všetky uložené objekty zmenili na chyby. (Neuložené objekty sa nemôžu zmeniť na chyby.) Stačí ich však prepísať -didTurnIntoFault (NSManagedObject) vidieť správanie CD.


1 pre odpoveď č. 2

Nie som si úplne istý, čo sa pýtate, ale čimáte vo svojom okolí veľa objektov, vždy môžete použiť metódu - [NSManagedObjectContext reset] na vynulovanie kontextu a vyčistenie pamäte. Toto tiež nechcete robiť, ak máte objekty, ktoré odkazujú na NSManagedObjects v rámci nedávno obnoveného kontextu.

Nie som si istý, čo sa týka povahy vašej žiadostialebo prečo by ste potrebovali vykonať uloženie na tisícoch objektov, zdá sa, že by ste sa mali pozrieť na použitie dávok pre vaše požiadavky na vyzdvihnutie. Týmto spôsobom základné dáta zaručia, že v danom okamihu bude v kontexte žiť iba určený počet objektov.

Dúfam, že to pomôže?