Tôi đang làm việc trên một ứng dụng sử dụng Dữ liệu cốt lõi làm phụ trợ của nó để quản lý các bản ghi SQLite. Tôi có tất cả mọi thứ làm việc với các chuỗi và số, nhưng vừa thử thêm các lĩnh vực BOOL và dường như không thể làm việc.Dữ liệu cốt lõi và thiết lập BOOL
Trong biểu tượng .xcdatamodel, tôi đã thêm trường vào đối tượng của tôi được gọi là isCurrentlyForSale
không phải là Tùy chọn, không phải Tạm thời và không được lập chỉ mục. Loại thuộc tính được đặt thành Boolean với giá trị mặc định NO.
Khi tôi tạo ra các tập tin lớp học từ mô hình dữ liệu, mã boilerplate gia tăng đối với tài sản trong tiêu đề .h này là:
@property (nonatomic, retain) NSNumber * isCurrentlyForSale;
cùng với
@dynamic isCurrentlyForSale;
trong .m tệp triển khai.
Tôi đã luôn làm việc với các boolean như BOOL đơn giản. Tôi đã đọc rằng tôi có thể sử dụng các phương pháp numberWithBool
và boolValue
của NSNumber, nhưng điều này có vẻ giống như một số mã phụ rất đáng lo ngại đối với một cái gì đó rất đơn giản.
@property trong tiêu đề có được thay đổi thành BOOL đơn giản không? Nếu vậy thì có gì để xem không?
Cảm ơn -John
Một setter cũng như thuộc tính phải có "is" trong đó. Đó là lý do tại sao '@ property' có cài đặt' getter = '. Và có bạn có thể có '@ property' được thay đổi thành BOOL bằng cách sử dụng các trình truy cập nguyên thủy là một phần của Dữ liệu cốt lõi. –
@Marcus Vâng, tôi biết rằng người định cư không nên có 'Is' trong họ, nhưng tôi đặt nó vào bởi vì' setCurrentlyForSale: 'đã được CD lấy (và tôi biết' getter = 'và' setter = '. Và bạn đang nói rằng bạn chỉ có thể thay đổi 'NSNumber *' thành 'BOOL' trong tiêu đề và nó sẽ hoạt động?Điều đó chắc chắn sẽ làm tôi ngạc nhiên. –