2010-06-10 43 views
5

Trong mô hình dữ liệu cốt lõi của tôi (trên iPhone SDK 3.1), tôi có một số thực thể được liên kết với cùng một thể hiện của một hình ảnh. Bản thân hình ảnh cũng được lưu trữ dưới dạng đối tượng được quản lý. Để tiết kiệm dung lượng đĩa, tôi đang cố gắng tạo 1 tệp db cho hình ảnh và tệp db khác cho tất cả các đối tượng khác. tài liệu vàMối quan hệ kho dữ liệu cốt lõi với các thuộc tính được tìm nạp

Reading của Apple googling cho ngày tôi đi đến kết luận sau: - Tạo 1 DataModel có chứa các mô tả về tất cả các thực - Sử dụng 1 cửa hàng liên tục điều phối

  • Sử dụng cấu hình để lưu trữ các đối tượng hình ảnh trong một tệp khác (sqlite) so với các thực thể khác (xem here)

  • Và vì dữ liệu lõi không hỗ trợ các mối quan hệ từ các trường hợp trong một cửa hàng liên tục đến các trường hợp trong một cửa hàng liên tục khác, chúng tôi e "Properties Đã lấy được" để tạo yếu, một chiều quan hệ

Sử dụng cấu hình khá đơn giản: gán một cấu hình để các đơn vị sử dụng lập mô hình dữ liệu và tuyên bố đó cấu hình để sử dụng khi thêm một cửa hàng khăng khăng cho điều phối viên . Trong trường hợp của tôi, tôi đã thêm vào cửa hàng cho điều phối viên. Nhưng đây là vấn đề: khi tìm nạp, hãy nói các đối tượng 'Người dùng' từ một cửa hàng, làm cách nào để sử dụng các thuộc tính đã tìm nạp để tải hình ảnh được liên kết với người dùng đó (và gán chúng cho đối tượng người dùng)?

Tôi có phải viết phương thức truy cập tùy chỉnh cho 'hình ảnh' trong đối tượng người dùng không? Làm thế nào (và ở đâu) để xác định vị từ cho thuộc tính đã tìm nạp?

Tôi đã thuyết phục rằng phải có một hướng dẫn hoặc ví dụ giải thích điều này (vì điều này rõ ràng là cách Apple đề xuất để làm điều đó). Nhưng không may mắn cho đến nay.

Bất kỳ ý tưởng nào?

Hy vọng chúng tôi có thể bắt đầu thảo luận về chủ đề này. Tôi chắc chắn có những cách khác (thông minh hơn) để giải quyết vấn đề này ...

Trả lời

1

Tôi không chắc chắn rằng xác nhận của bạn về không gian đĩa là chính xác. Nếu không có bằng chứng từ thử nghiệm ứng dụng của bạn, tôi sẽ gắn bó với giải pháp đơn giản hơn, một cửa hàng, giải pháp. Điều đó nói rằng ...

Bạn cần lưu trữ một số thuộc tính nhận dạng của (các) hình ảnh trong lớp Người dùng. Tôi sẽ sử dụng một thuộc tính biến đổi để lưu trữ các ID đối tượng người quản lý. Bạn thêm thuộc tính đã tìm nạp vào trình mô hình dữ liệu và chỉ định vị từ đó.

1

Sử dụng các cửa hàng riêng biệt sẽ không tạo ra bất kỳ điều gì "tốt hơn" trong tình huống này. Lưu trữ dữ liệu nhị phân lớn trong Dữ liệu cốt lõi không được khuyến nghị. Bạn nên lưu trữ nó trên đĩa và sử dụng tham chiếu đến hệ thống tập tin.

Xem phần BLOB ở đây.

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdPerformance.html

Các vấn đề liên quan