Tôi mới làm quen với dữ liệu cốt lõi và cố gắng có được tất cả các đối tượng trẻ em thuộc nhiều loại khác nhau với một truy vấn. Giả sử có một loại "Động vật" làm cha mẹ và "Mèo", "Chó" và "Chim" làm trẻ em. Tôi muốn có cả mèo và chó, nhưng không phải chim trong câu truy vấn đơn lẻ được trả về làm vật thể. Có thể không?Làm thế nào để sử dụng NSPredicate để bắt các đối tượng trẻ em?
Trả lời
Managed objects have an entity
property, vì vậy bạn sẽ có thể kết hợp với Kevin Sylvestre's solutiona predicate của entity.name != "Bird"
.
Vâng, nó có thể:
// Load delegate from application and context from delegate.
SampleAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = delegate.managedObjectContext;
// Create new request.
NSFetchRequest *request = [[NSFetchRequest alloc] init];
// Create entity description using delegate object context.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Animal" inManagedObjectContext:context];
// Set entity for request.
[request setEntity:entity];
[request setIncludesSubentities:YES];
// Load array of documents.
NSError *error;
NSArray *animals = [context executeFetchRequest:request error:&error];
// Release request.
[request release];
// Access array.
for (id animal in animals) { }
cảm ơn phản hồi nhanh. Tôi xin lỗi, tôi quên đề cập đến điều quan trọng nhất: có thêm một đứa trẻ nữa (nói "Chim"). Những gì tôi cần là, để có được cả Mèo và Chó, nhưng KHÔNG phải Chim. Tôi đã chỉnh sửa câu hỏi chính – cocoapriest
Trong khi điều này (entity.name != "Bird"
) có thể hoạt động nếu bạn chỉ có "Mèo", "Chó" và "Chim", nó không hoạt động nếu sau này bạn thêm "Động vật". Bạn cũng có thể sử dụng entity.name == "Dog" && entity.name == "Cat"
Đó là trường hợp "... bạn có bao giờ có bất kỳ trường hợp nào khác trong trường hợp của bạn, Động vật không?"
Vui chơi =)
- 1. Sử dụng JQuery event.target để làm việc với trẻ em
- 2. Làm thế nào để sử dụng System.Linq.Expressions.Expression để lọc dựa trên trẻ em?
- 3. LINQ - mệnh đề where vào đối tượng trẻ em
- 4. Làm thế nào để sử dụng nth-child chỉ với trẻ em trực tiếp?
- 5. NHibernate Háo hức tải đa cấp đối tượng trẻ em
- 6. KO Mapping vấn đề với đối tượng trẻ em
- 7. Làm thế nào để loại bỏ tất cả các thành phần trẻ em của một container?
- 8. Bắt tất cả các trẻ em của một phụ huynh sử dụng MSSQL truy vấn
- 9. Rails, xoá trẻ em, không xóa Chánh sử dụng: has_many
- 10. jQuery: Nhận đối tượng trẻ em với ID cụ thể
- 11. Làm cách nào để đếm số trẻ em?
- 12. Làm thế nào để tham gia lại tìm nạp nhiều trẻ em trong Hibernate?
- 13. Làm thế nào để chọn các yếu tố trẻ em dưới id trong jQuery
- 14. Làm thế nào để tham chiếu chéo các đối tượng trong các lớp
- 15. Làm thế nào để thay đổi thứ tự z của trẻ em Wpf AdornerLayer?
- 16. Làm thế nào để phù hợp với n trẻ em cuối cùng với CSS?
- 17. Làm thế nào để tạo ra một thành phần tổng hợp gwt với trẻ em bằng cách sử dụng uibinder?
- 18. thêm trẻ em vào QMainWindow
- 19. Trẻ em của XElement
- 20. Thứ tự trở lại của trẻ em các đối tượng trong JPA truy vấn
- 21. Entity Framework 4.4, tải lại các đối tượng Bộ sưu tập trẻ em
- 22. Làm thế nào để chọn phụ huynh dựa trên trẻ em trong lxml?
- 23. Làm thế nào để thực hiện một minh bạch Pane với trẻ em không minh bạch?
- 24. Làm thế nào để bạn ràng buộc trẻ em của một mạng lưới vào danh sách?
- 25. Silverlight 3.0: Làm thế nào để tôi nhận được trẻ em lưới bằng x: Tên?
- 26. Làm thế nào để bỏ qua sự kiện nhấp khi nhấp vào trẻ em
- 27. Làm thế nào để có được mức độ đầu tiên của trẻ em bởi LINQ
- 28. Làm thế nào để xóa đối tượng con trong NHibernate?
- 29. SQLAlchemy làm thế nào để lọc theo trẻ em trong nhiều đến nhiều
- 30. Làm thế nào để nhận được giá trị trả lại từ TRÌNH TRẺ EM?
thực thể là một phương pháp, không phải là tài sản .. – cocoapriest
Đó là một tài sản không chính thức, trong khi bạn có thể sử dụng KVC để truy cập nó (vì có phương thức ở đó), trái ngược với chính thức ('@ property') bất động sản. –
Bạn thực sự không thể sử dụng phương thức này với một kho lưu trữ SQLite vì thuộc tính 'entity' không có sẵn khi các đối tượng bị lỗi. Bạn không có nhiều lựa chọn nhưng để thực hiện bước lọc tìm nạp. –