Tôi đang xây dựng một NSFetchRequest dữ liệu lõi trong mục tiêu c. Trong mô hình dữ liệu có một thực thể cha mẹ trừu tượng (có chứa 4 thuộc tính cơ bản) và nhiều thực thể con khác nhau bao gồm các thuộc tính không có trong cha mẹ. Một số trẻ chứa các thuộc tính chia sẻ cùng tên và kiểu dữ liệu.Một dữ liệu cốt lõi dành để kiểm tra xem các thực thể con có chứa một thuộc tính hay "keypath"?
Tôi đang áp dụng fetchRequest cho thực thể cha, để nó sẽ tìm kiếm tất cả các cá thể của các thực thể con để xem có tồn tại "keypath" hay không.
Tôi có thể tạo một vị từ chỉ trả về các thực thể con có chứa thuộc tính cụ thể không?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ IN self.entityAttributes",attribute.name];
Ở đây, thuộc tính là một thể hiện của NSAttributeDescription, và mục tiêu là để tìm kiếm các đơn vị khác mà có một thuộc tính của một tên phù hợp trong danh sách của họ về các thuộc tính, nhưng tôi không chắc chắn làm thế nào để định dạng vị ngữ.
Tôi có thể làm rõ thêm nếu cần. Cảm ơn!
Tôi cần truy vấn các trường hợp vì mục tiêu cuối cùng là lấy các giá trị khác biệt của thuộc tính từ tất cả các cá thể đã xác định nó. Tôi đang sử dụng một vòng lặp tương tự như bạn đã liệt kê ở đây để tạo bảng chỉ mục theo cách thủ công cho giải pháp mà Wienke đề xuất. –
Thực ra, tôi nghĩ bạn nên đi theo gợi ý của edsko. Khi điều kiện 'if' trong mã của anh ta là đúng, bạn đã có mô tả thực thể sẽ lấy tất cả các cá thể có thuộc tính mà bạn muốn.Bạn chỉ cần chạy tìm nạp trên mô tả thực thể đó, không có vị từ và bạn đang ở đó. Vẻ đẹp của nó là nếu bạn chỉ cần các cá thể với các giá trị cụ thể cho thuộc tính đó, bạn có thể thêm một vị từ cho chúng để tìm nạp. (Cảm ơn cả hai: Tôi đã không biết bạn có thể nhận được rất nhiều thông tin trực tiếp từ mẹ.) – Wienke
Nếu đó là hiệu suất bạn đang sau, sau đó có lẽ bạn nên suy nghĩ lại mô hình cơ sở dữ liệu của bạn một chút. Core Data sẽ lưu trữ các thực thể khác nhau trong các bảng cơ sở dữ liệu khác nhau, vì vậy ngay cả khi bạn đưa ra một truy vấn phức tạp hoạt động trên các thực thể, nó có thể sẽ không hoạt động tốt. Có lẽ bạn nên thêm thuộc tính này vào thực thể cha mẹ thay vì chỉ để nó không được sử dụng trong các subentities không cần nó. – edsko