Tôi muốn đặt hàng NSFetchRequest
trước tiên theo ngày và sau đó, nếu nó khớp với cùng một thứ tự theo ngày theo tên. tôi sử dụng một UIDatePicker
để có được ngày và lưu nó sử dụng Core DataSắp xếp NSFetchRequest theo ngày và sau đó theo thứ tự chữ cái
[self.managedObject setValue:self.datePicker.date forKey:self.keypath];
và sắp xếp các NSFetchRequest
như thế này:
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];
Bây giờ vấn đề của tôi là nó chỉ được sắp xếp theo ngày và không theo tên bởi vì UIDatePicker
được lưu trữ trong Dữ liệu cốt lõi vào ngày mà còn là giờ. Vì vậy, ngay cả khi cùng ngày, không được sắp xếp theo "tên" trong cùng một ngày bởi vì giờ là khác nhau. Vậy làm cách nào để lưu dữ liệu chính vào ngày tháng/ngày/năm và không phải là một giờ từ UIDatePicker
?
Hoặc bạn có nghĩ ra giải pháp nào khác không?
Bạn cần xóa thời gian khỏi ngày. http://stackoverflow.com/questions/4187478/truncate-nsdate-objective-c –
bạn có cần thông tin thời gian cho bất kỳ điều gì khác không? Nếu không, bạn có thể đặt thành phần thời gian thành 0 khi đặt thời gian của đối tượng dữ liệu lõi. Nếu bạn cần nó, bạn phải thêm thuộc tính khác sử dụng NSDate không có thành phần thời gian hoặc chuỗi yyyymmdd. –