cuốn sách gpt4 ai đã làm

NSFetchedResultsController sắp xếp các phần khác nhau theo cách khác nhau (tăng dần/giảm dần)?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:07:15 27 4
mua khóa gpt4 Nike

Trong ứng dụng của mình, tôi có một danh sách nhiệm vụ (không, nó không chỉ là một ứng dụng việc cần làm khác) và tôi sử dụng NSFetchedResultsController hiện hữu UITableView Hiển thị các tác vụ trong . Đây là mã khởi tạo có liên quan:

NSSortDescriptor *dueDateSortDescriptor = [NSSortDescriptor SortDescriptorWithKey:@"due" YES];
NSSortDescriptor *completionSortDescriptor = [NSSortDescriptor SortDescriptorWithKey:@"completed" tăng dần:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:completionSortDescriptor, DueDateSortDescriptor, nil]];

_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest ManagedObjectContext:context partNameKeyPath:@"completed" cacheName:nil];

Những gì nó làm là sắp xếp các nhiệm vụ sao cho tôi có phần nhiệm vụ chưa hoàn thành ở trên cùng, sắp xếp theo các nhiệm vụ đến hạn trước, sau đó sắp xếp xuống. Tất cả đều hoạt động.

Nhưng, có nghĩa là phần thứ hai (phần có các nhiệm vụ đã hoàn thành) cũng được sắp xếp theo cách này, do đó, các nhiệm vụ có ngày đến hạn sớm nhất sẽ được ưu tiên trước. Điều tôi muốn làm là thay đổi nó để phần thứ hai được sắp xếp theo cách khác (theo thứ tự giảm dần), nhưng phần đầu tiên vẫn được sắp xếp theo thứ tự tăng dần. Điều này có thể thực hiện được không? Tôi nên làm gì?

tại sao tôi phải làm điều này:Cách mọi việc diễn ra hiện nay, những nhiệm vụ ở đầu phần hai (và do đó là rõ ràng nhất) là những nhiệm vụ đã được hoàn thành từ lâu. Người dùng có nhiều khả năng muốn xem các nhiệm vụ đã hoàn thành gần đây hơn (hoặc bỏ chọn chúng nếu vô tình được chọn) và có thể giả định rằng các nhiệm vụ có ngày đến hạn mới hơn là những nhiệm vụ được hoàn thành gần đây nhất. Tôi rất sẵn lòng thêm trường ngày hoàn thành riêng vào đối tượng tác vụ Dữ liệu cốt lõi nếu cần (đây chưa phải là ứng dụng vận chuyển nên tôi có thể thay đổi định dạng dữ liệu theo ý muốn).

câu trả lời hay nhất

Điều này là không thể khi sử dụng NSFetchedResultsController. Bạn phải lấy dữ liệu theo cách thủ công và triển khai các phương thức ủy nhiệm của UITableView.

biên tập: Ồ, tôi nhầm rồi, có một giải pháp khá đơn giản cho vấn đề này. Đặt hai mô tả sắp xếp:

  • ngày hoàn thành thứ nhất (thứ tự giảm dần). Trường này giống nhau cho tất cả các nhiệm vụ còn tồn đọng (không).

  • đã thêmNgày Thêm cái thứ hai (theo thứ tự tăng dần). Nó sẽ sắp xếp theo ngày hoàn thành (mới nhất trước), nhưng bạn sẽ không có bất kỳ Ngày hoàn thành nào trong phần đầu tiên, vì vậy nó sẽ sử dụng ngày đã thêm (cũ nhất trước).

Đối với phần thứ hai nó sẽ chỉ sử dụng ngày hoàn thành(mới nhất trước), vậy là xong.

Về iphone - NSFetchedResultsController sắp xếp các phần khác nhau theo cách khác nhau (tăng dần/giảm dần)? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10966365/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress