Cách mà bạn có thể làm cho đối tượng tùy chỉnh của mình được lưu và tải một cách minh bạch từ Dữ liệu chính là sử dụng NSValueTransformer. Nếu bạn tạo NSValueTransformer có thể chuyển từ lớp của bạn sang NSData và ngược lại, bạn có thể đánh dấu thuộc tính trong thực thể của bạn tương ứng với lớp này là có thể biến đổi. Sau đó, Core Data sẽ cho phép bạn thiết lập và truy xuất các đối tượng thuộc loại này khi giao dịch với thuộc tính này.
Trong câu trả lời của tôi here Tôi hiển thị mã để biết cách thực hiện điều này với các thuộc tính UIImage, không được hỗ trợ nguyên bản bởi Dữ liệu cốt lõi. Để thực hiện một cái gì đó như thế này cho đối tượng tùy chỉnh của bạn, bạn sẽ cần phải làm cho nó NSCoding tuân thủ và thực hiện các phương thức -encodeWithCoder:
và -initWithCoder:
của riêng bạn để tuần tự hóa nó vào một cá thể NSData để lưu trữ.
Apple có thêm tài liệu về điều này trong phần "Non-Standard Persistent Attributes" của Hướng dẫn lập trình dữ liệu cốt lõi, bao gồm ví dụ sử dụng lớp NSColor của Mac.
Nguồn
2011-10-19 21:35:34
Mặc dù tôi nghĩ tốt nhất nên làm như @beryllium đề xuất; Brad có quyền (dĩ nhiên). –