- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
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/
Lời nói đầu Xin chào mọi người, tên tôi là Summo Lần này tôi sẽ viết về một trang web nhỏ mà tôi đã xây dựng trong thời gian rảnh rỗi tại nơi làm việc. Không phải Alibaba Cloud đã tổ chức một sự kiện vào năm ngoái sao? Một máy chủ đám mây 2G 2 lõi chỉ có giá 99 nhân dân tệ một năm. Những người hiểu biết về ngành này nên biết rằng mức giá này đã rất có tâm trong ngành.
Tôi cố gắng xây dựng BST dựa trên thứ tự cấp độ nhất định (thứ tự BFS). Tôi biết điều đó là có thể, nhưng tôi không biết nên viết nó như thế nào. Vấn đề là tôi phải sử dụng trình tự BFS. Vì vậy, tôi không thể sử dụng đệ quy ở đây, tôi phải viết chương trình của mình lặp đi lặp lại... Tôi đã tìm thấy điều này với
Tôi là một lập trình viên xuất sắc, rất giỏi!