Dưới đây là mô hình tôi có: http://www.girardet.ch/model.pngCore Data, cố gắng sử dụng NSPredicate để lọc một mối quan hệ toMany thiết nhưng có được "to-many chìa khóa không được phép ở đây" lỗi
Mục tiêu của tôi là để lấy tất cả các Quotes với các tiêu chí:
- thuộc về một chủ đề cụ thể: các thuộc tính name_en của chủ đề
- trật tự bởi tính thích hợp
- lọc bởi tác giả (với thuộc tính bí danh của tác giả) 0.123.
Đây là mã của tôi:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ThemeEntries" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"relevancy" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// predictate - filter
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"theme.name_en=%@ AND quotes.author.alias=%@",@"mytheme", @"myauthor"];
[fetchRequest setPredicate: vị ngữ];
Tôi nhận được lỗi "không được phép nhiều ở đây".
Nếu tôi thay vì sử dụng vị này
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"theme.name_en=%@, @"mytheme"];
nó hoạt động tốt và tôi có thể lặp qua ThemeEntries
mà tôi nhận được và nhận được tất cả dấu ngoặc kép của tôi ... Nhưng nó không được lọc bởi tác giả.
Tôi có thể làm gì để lọc theo Tác giả?
Cảm ơn đống cho câu trả lời tuyệt vời này. Tôi không biết về các truy vấn con và nó chắc chắn rất hữu ích. Tuy nhiên, trong trường hợp của tôi, tôi muốn lọc tập hợp các dấu trích dẫn được trả về bởi yêu cầu "bên trong" tất cả các ThemeEntries. Sử dụng truy vấn phụ có thể lọc các mục được trả lại, đảm bảo rằng chúng có mối quan hệ với tác giả thông qua các dấu ngoặc kép mà chúng có liên quan đến. Những gì tôi cuối cùng đã làm là nhận được tất cả các dấu ngoặc kép liên quan đến chủ đề mà không lọc tác giả và lọc chúng sau đó.Nhưng tôi vẫn tự hỏi nếu có một cách để làm nó trực tiếp trong yêu cầu (như một tham gia bên trái sẽ làm trong sql) – Ben
Không chính xác chắc chắn những gì bạn đang tìm kiếm nhưng vị từ trên chỉ tìm kiếm những trường hợp 'Trích dẫn' liên quan đến cụ thể' Trường hợp ThemeEntities'. Trong thực tế, do các biến vị ngữ được đánh giá như thế nào, nó sẽ chỉ kiểm tra các cá thể 'Trích dẫn' đó cho' ThemeEntities' mà vượt qua bài kiểm tra đầu tiên. – TechZen
Cảm ơn bạn đã giải quyết @TechZen này !!! Chết tiệt, tôi đã đấu tranh với điều này trong nhiều giờ, cố gắng tìm ra cách để tạo ra một biến vị ngữ phức hợp áp dụng một bộ lọc sử dụng hai tiêu chí cho cùng một phần tử thu thập. Điều này cực kỳ dễ dàng với sự giúp đỡ của câu trả lời của bạn. Cảm ơn! –