جلب البيانات الأساسية فون الطلب، أساسيات حول العلاقات والأقسام

StackOverflow https://stackoverflow.com/questions/1749316

سؤال

ولقد حصلت على ما نأمل سؤال بسيط - لقد حصلت على اثنين من الكيانات - قائمة وعنصر القائمة - وهناك علاقة واحد لكثير انشاء بينهما، كل شيء جيد.

ومشكلتي تأتي عندما أحاول القيام fetchrequest والذي سيعود listitems مقطوع من قبل سمة من عنصر القائمة. لا أستطيع إجراء fetchrequest مباشرة على عنصر القائمة الكائنات لأنه ليس هناك طريقة لنقول أين = قائمة "كسكسكسكسكس ''، لذلك اضطررت شيء كما يلي:


- (NSFetchedResultsController *)getListItems {
    // Init a fetch request
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"List" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"listItem.productName" ascending:YES selector:nil];
    NSArray *descriptors = [NSArray arrayWithObject:sortDescriptor];
    [fetchRequest setSortDescriptors:descriptors];


    // Init the fetched results controller
    NSError *error;
    self.globalFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"listItem.productName" cacheName:@"listItems"];
    self.globalFetchedResultsController.delegate = self;
    if (![[self globalFetchedResultsController] performFetch:&error])   NSLog(@"Error: %@", [error localizedDescription]);

    [fetchRequest release];
    [sortDescriptor release];

    return self.globalFetchedResultsController;
}

والآن، وهذا خطأ لأنه يقول أنا لا يمكن استخدام علاقة واحد لكثير في واصف نوع - لكنه يتطلب أيضا أن لدي اصف نوع، لذلك أنا غير متأكد من الطريقة الصحيحة لأن تفعل هذه. أي مساعدة ستكون كبيرة.

هل كانت مفيدة؟

المحلول

إذا كنت ترغب في جلب وقسم ListItems، ثم يجب أن تكون باستخدام "عنصر القائمة" ككيان الخاص لجلب.

في هذه الحالة، هل هناك طريقة ليقول "جلب جميع الكائنات عنصر القائمة أين قائمة = 'كسكسكسكسكس"، انه دعا المسند (NSPredicate).

وحاول شيئا من هذا القبيل (حيث "قائمة" هو اسم للعلاقة عنصر القائمة مع قائمة):

NSPredicate *pred = [NSPredicate predicateWithFormat:@"list == %@", listObject];
[fetchRequest setPredicate:pred];

وكما نرى في المسند برمجة دليل .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top