Trong Mô hình CoreData Tôi có một thực thể được gọi là TestEntity. Thực thể này có một thuộc tính duy nhất có tên 'deleted' có kiểu boolean.lớp con được tạo tự động của NSManagedObject cho thuộc tính boolean gây ra cảnh báo
Nếu tôi tạo ra một lớp con NSManagedObject tự động cho tổ chức này sử dụng Xcode, header lớp được tạo ra trông như thế này:
@interface TestEntity : NSManagedObject
@property (nonatomic, retain) NSNumber * deleted;
@end
Tôi hiểu tại sao NSNumber được sử dụng cho một thuộc tính boolean. Điều này đã không thay đổi từ trước. Vấn đề là nó bây giờ chỉ cho tôi 2 cảnh báo:
- getter thuộc tính trên tài sản 'xóa' không phù hợp với các tài sản được thừa kế từ 'NSManagedObject'.
- Loại thuộc tính 'NSNumber *' không tương thích với loại 'BOOL' (còn gọi là 'bool') được kế thừa từ 'NSManagedObject'.
Tôi không muốn sử dụng các loại nguyên thủy. Bất kỳ ý tưởng làm thế nào để thoát khỏi những cảnh báo này? Đây có thể là lỗi với Xcode 6 beta 7 (iOS 8 beta 5) mà tôi đang sử dụng. Đã nộp báo cáo lỗi vì lớp được tạo tự động bằng Xcode sẽ không dẫn đến cảnh báo trình biên dịch trong mọi trường hợp.
"Tôi không biết nếu Apple chỉ làm điều này nhưng tôi đã không nhận được một cảnh báo trong iOS 7. Hãy hy vọng rằng đây là một tín hiệu từ Apple cho chúng tôi biết rằng họ đang sửa chữa tất cả các vấn đề dữ liệu cốt lõi :)". Không, họ đã thay đổi chúng thành các thuộc tính từ các phương thức chỉ đọc, đó là lý do tại sao bạn nhận được lỗi. Điều này xảy ra trên nhiều khuôn khổ, không chỉ là Dữ liệu cốt lõi. – quellish