/ / Vlastné triedenie pomocou kategórií a hlavných údajov - podporuje to rámec? - objekt-c, triedenie, základné údaje, nssortdescriptor

Vlastné triedenie pomocou kategórií a hlavných údajov - je podporované rámcom? - objekt-c, triedenie, core-data, nssortdescriptor

Rozvíjam pre iPhone iOS 4.0 a mám zoznam dát narodenín (dátum + meno) uložených pomocou základných dát. Chcem použiť NSFetchedResultsController na získanie tohto zoznamu zoradeného podľa Ďalšie dátum narodenia dátumu každého objektu narodenín. Preto potrebujem definovať vlastnú logiku pre deskriptor triedu.

Snažil som sa používať:

[NSSortDescriptor sortDescriptorWithKey:@"birthdayDate"
ascending:YES
selector:@selector(compareNextBirthday:)];

Kde compareNextBirthday: je definovaná v kategórii I vytvorenej na triede NSDate.

Keď sa však pokúsim získať údaje, dostanem nasledujúcu chybu: "nepodporovaný selektor NSSortDescriptor: compareNextBirthday:"

Strávil som hodiny, keď som sa snažil prísť na to bez šťastia ... Core Data podporuje takýto spôsob zvykovania? Musím skutočne urobiť triedu v pamäti?

odpovede:

7 pre odpoveď č. 1

Triedenie vo vnútri NSFetchedResultsController je vykonávaná na trvalej úrovni ukladania, takže ak používate SQLite ako backend, zlyhá.

Pre niečo také by som de-normalizoval dáta a uložiť mesiac a deň v mesiaci navyše k skutočnému dátumu narodenia, aby ste mohli triediť na ne.