Tôi có một tập hợp các đối tượng thực thể trong cơ sở dữ liệu Dữ liệu cốt lõi iOS của tôi mô tả thứ gì đó tại một vị trí. Hãy gọi thực thể Location. Tôi đã thực hiện điều này bằng cách có hai thuộc tính trên Vị trí đề cập đến vị trí - vĩ độ và kinh độ, cả hai đều tăng gấp đôi. Có những yếu tố khác, như tên.Vị trí trong Dữ liệu chính được sắp xếp theo khoảng cách qua NSFetchedResultsController?
Tôi đang sử dụng NSFetchedResultsController để liên kết các thực thể với UITableViewController. Những gì tôi muốn làm là có kết quả được sắp xếp theo khoảng cách đến một CLLocationCoordinate2D đã cho. Trong một kịch bản thực sự lý tưởng, tôi có thể làm mới danh sách đó để tính toán lại sắp xếp dựa trên vị trí mới. Do đó, sắp xếp này sẽ phụ thuộc vào hai khóa và một biến "tĩnh" thứ ba (biến không thay đổi trên các mục trong bộ sưu tập).
Tôi nghĩ tôi có thể tìm ra cách để thực hiện việc này nếu tôi sắp xếp danh sách tùy ý với NSSortDescriptors. Tuy nhiên, tôi không kiểm soát cách các bộ mô tả sắp xếp được sử dụng trong NSFetchedResultsController.
Có cách nào để tôi có thể định cấu hình các thực thể của mình, NSFetchedResultsController, NSSortDescriptors, v.v. của tôi để thực hiện việc này không? Tôi nghi ngờ rằng câu trả lời không nằm trong việc tạo ra một NSSortDescriptor ưa thích mà thay vào đó trong việc tạo ra một thuộc tính tạm thời trong thực thể đại diện cho khoảng cách-to-me, và tính toán lại thuộc tính đó định kỳ. Tuy nhiên, tôi là đủ mới để Core dữ liệu mà tôi không chắc chắn làm thế nào để tốt nhất làm điều này (iterate trên tất cả các thực thể và tính toán lại một lĩnh vực). Tôi cũng không chắc chắn nếu NSSortDescriptors sẽ làm việc trên các thuộc tính thoáng qua.
Thật không may, bộ điều khiển kết quả được tìm nạp không thể sắp xếp thuộc tính tạm thời hoặc thuộc tính được tính. Xem http://stackoverflow.com/questions/13292582/nspredicate-with-function-not-working hoặc http://stackoverflow.com/questions/12027769/nssortdescriptor-sort-by-location cho các vấn đề tương tự và tham chiếu đến tài liệu. –
Cảm ơn bạn! Tôi thấy cái đó, và đó là lý do tại sao tôi nghĩ rằng câu trả lời có thể là tính toán các giá trị trong các thực thể Core Data của tôi. Hãy tạm thời rời khỏi bảng - nếu nó không phải là một trường thoáng qua, làm thế nào tôi sẽ đi định kỳ cập nhật tập hợp các thực thể? –
Bạn có thực sự cần một bộ điều khiển kết quả tìm nạp không? Nếu bạn lấy các đối tượng vào một mảng, bạn có thể sắp xếp mảng đó trong bộ nhớ và sử dụng làm nguồn dữ liệu cho dạng xem bảng. –