2009-03-01 38 views
7

Cách chính xác để lưu trữ một NSImage trong Mô hình Dữ liệu Chính là gì? Tôi đã giả định thêm một thuộc tính cho một thực thể và cho nó loại "nhị phân" nên làm việc, nhưng nó không hoạt động. Tôi có một bảng với một cột của NSImageCells và nó không hiển thị bất cứ điều gì.Lưu trữ một NSImage trong Mô hình Dữ liệu Chính

Trả lời

7

Bạn sẽ cần tạo đại diện NSData của nó.

Hãy xem Non-Standard Persistent Attributes. Đặc biệt là phần thuộc Thuộc tính có thể biến đổi và Mã tùy chỉnh nếu không phân loại bạn.

8

Điều này không trả lời chính xác câu hỏi bạn đã đặt, nhưng tùy thuộc vào số lượng ảnh bạn lưu trữ có thể hiệu quả hơn để chỉ lưu trữ đường dẫn hoặc URL vào hình ảnh, được lưu tại vị trí của bạn và tải chúng theo yêu cầu .

10

Nếu bạn có thể làm việc trong 10.5+, cách dễ nhất là lưu trữ NSImageRep giây cho hình ảnh trong thuộc tính "Biến đổi". Theo mặc định, các thuộc tính có thể biến đổi sử dụng NSCoding để lưu trữ các giá trị của chúng trên thiết lập và hủy lưu trữ khi truy cập. Điều này giúp bạn tiết kiệm từ việc phải viết getters/setters tùy chỉnh. Nếu bạn muốn có được ưa thích, bạn có thể viết một tùy chỉnh NSValueTransformer mà chuyển đổi một hình ảnh để một phiên bản acrhived đại diện của nó và ngược lại trên get. Nếu bạn đang sử dụng 10.4, sau đó bạn phải viết thu khí tùy chỉnh/setters (xem tài liệu của Apple vào việc tạo ra Non-standard persistent attributes. Bạn có thể nhận reps hình ảnh của hình ảnh bằng cách gửi NSImage nhắn -representations.

Nếu bạn muốn hiển thị những hình ảnh trong một giao diện người dùng thông qua các ràng buộc, bạn cũng nên đọc phần Displaying Images Using Bindings của Cocoa bindings Lập trình chủ đề.

1

đây là một thực hiện rất dễ dàng

http://objectivesheep.com/blog/nsimage_coredata/

+0

các trang liên kết không còn tồn tại. –

+0

bạn một lại đúng. Hãy để tôi sửa lỗi đó ... –

+0

Ok, đã cập nhật liên kết. Cảm ơn cho những người đứng đầu lên! –

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