Chcę zamówić NSFetchRequest
najpierw według daty, a następnie, jeśli pasuje do tej samej kolejności dnia według nazwy. używam UIDatePicker
uzyskać datę i go zapisać przy użyciu danych CoreSortowanie NSFetchRequest według daty, a następnie w kolejności alfabetycznej
[self.managedObject setValue:self.datePicker.date forKey:self.keypath];
i posortować NSFetchRequest
takiego:
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"day" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, sortDescriptor2, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
Teraz moim problemem jest to, że należy zamawiać wyłącznie według daty i nie przez nazwę, ponieważ UIDatePicker
przechowywane w Core Data data, ale także godzinę. Więc nawet jeśli tego samego dnia, nie posortowane według "nazwy" w tym samym dniu, ponieważ godzina jest inna. Jak więc zapisać w danych podstawowych tylko datę mm/dd/rrrr, a nie de godz. Od UIDatePicker
?
A może myślisz o jakimkolwiek innym rozwiązaniu?
Musisz usunąć czas od daty. http://stackoverflow.com/questions/4187478/truncate-nsdate-objective-c –
Potrzebujesz informacji o czasie na cokolwiek innego? Jeśli nie, możesz ustawić czas komponentów na 0 podczas ustawiania czasu głównego obiektu danych. Jeśli potrzebujesz, musisz dodać inny atrybut, który używa NSDate bez komponentów czasu lub ciągu yyyymmdd. –