Đã bắt đầu làm việc với Core Data một chút, và trong khi tôi đã tìm ra cách sử dụng nó trong các ứng dụng Cocoa thông thường, có vẻ như nó hoạt động hơi khác một chút trong Cocoa Touch. Làm thế nào để bạn liên kết các thực thể với các đối tượng như các ô bảng trong Cocoa Touch?Touch Cocoa tương đương với NSArrayController là gì?
Trả lời
Nếu bạn đang sử dụng CoreData trên iPhone OS 3.0 trở lên, bạn sẽ muốn xem NSFetchedResultsController
. Trong khi không thực sự là một tương tự để NSArrayController
, nó được thiết kế đặc biệt để được sử dụng với UITableView
và bộ điều khiển của nó.
Nó cung cấp một cách để tải các yếu tố từ sự kiên trì khi cần thiết, giữ trong tâm trí hiệu suất và hạn chế bộ nhớ của thiết bị. Nó không phải là sạch như chỉ đơn giản là ràng buộc mọi thứ, nhưng nó có thể sẽ làm tất cả mọi thứ bạn cần (và nhiều hơn nữa!) Với một số lượng nhỏ mã.
Thật không may, các liên kết không được hỗ trợ trong hệ điều hành iPhone. Xem trang this trong tài liệu dành cho nhà phát triển của Apple.
Tôi tin rằng điều này có nghĩa là bạn không thể sử dụng NSArrayController trong hệ điều hành iPhone.
ý bạn là may mắn thay. ArrayControllers là khủng khiếp và nhầm lẫn để thiết lập. – SpaceDog
Jergason là chính xác: bạn không thể sử dụng các ràng buộc hoặc NSArrayController với dữ liệu lõi trên iPhone. Thay vào đó, hãy xem NSFetchedResultsController để "quản lý hiệu quả các kết quả được trả lại từ yêu cầu tìm nạp dữ liệu lõi để cung cấp dữ liệu cho đối tượng UITableView".
Không thấy 'NSFetchedResultsController', mặc dù tôi thấy' UITableViewController'; chúng tương tự? Trong mọi trường hợp, tôi gặp khó khăn trong việc tìm ra cách nạp dữ liệu mảng vào bộ điều khiển. Cảm ơn con trỏ về một số khác biệt về môi trường! Bạn có thể tìm thấy – Kaji
'NSFetchedResultsController' tại đây: http://developer.apple.com/iphone/library/documentation/CoreData/Reference/NSFetchedResultsController%5FClass/Reference/Reference.html – jbrennan
' NSFetchedResultsController' cơ bản hoạt động như một lớp trợ giúp cho ' UITableView' và 'UITableViewController'. Nó là một lớp mô hình làm việc với các đối tượng CoreData của bạn và chuẩn bị chúng để hiển thị trong một bảng. – jbrennan