2012-04-26 120 views
0

我在iOS应用程序中使用核心数据。我有这样的模型: 我的问题是,我如何访问我的数据,例如:如何检索一本“id_page”的书?谢谢您的回答如何访问核心数据中的数据

#import <Foundation/Foundation.h> 
    #import <CoreData/CoreData.h> 

    @class Note, Page; 

    @interface Book : NSManagedObject 

    @property (nonatomic, retain) NSString * id_book; 
    @property (nonatomic, retain) NSSet *page; 
    @property (nonatomic, retain) NSSet *note; 

    -(Note*)noteForPage; 
    -(Page*)pageForPageNumber:(int)pageNumber; 

    @end 

    @interface Book (CoreDataGeneratedAccessors) 

    - (void)addPageObject:(Page *)value; 
    - (void)removePageObject:(Page *)value; 
    - (void)addPage:(NSSet *)values; 
    - (void)removePage:(NSSet *)values; 
    - (void)addNoteObject:(Note *)value; 
    - (void)removeNoteObject:(Note *)value; 
    - (void)addNote:(NSSet *)values; 
    - (void)removeNote:(NSSet *)values; 
    @end 

#import <Foundation/Foundation.h> 
#import <CoreData/CoreData.h> 


@interface Page : NSManagedObject 

@property (nonatomic, retain) NSString * id_page; 

@end 

我创建了一个书页这样的:

ook *book = [NSEntityDescription 
        insertNewObjectForEntityForName:@"Book" 
        inManagedObjectContext:context]; 

    Page *page1 = [NSEntityDescription 
             insertNewObjectForEntityForName:@"Page" 
             inManagedObjectContext:context]; 
    [page1 setValue:@"firstPage" forKey:@"id_page"]; 

    Page *page2 = [NSEntityDescription 
        insertNewObjectForEntityForName:@"Page" 
        inManagedObjectContext:context]; 
    [page2 setValue:@"secondPage" forKey:@"id_page"]; 

    Page *page3 = [NSEntityDescription 
        insertNewObjectForEntityForName:@"Page" 
        inManagedObjectContext:context]; 
    [page3 setValue:@"ThirdPage" forKey:@"id_page"]; 

    // create a set of pages 
    NSSet *pageSets = [[NSSet alloc]initWithObjects:page1,page2,page3, nil]; 
    [book addPage:pageSets]; 

回答

0
- (Book *)bookWithIdStr:(NSString *)idStr { 
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Book"]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id_book MATCHES %@", idStr]; 
    fetchRequest.predicate = predicate; 
    return [[self.managedObjectContext executeFetchRequest:fetchRequest error:nil] lastObject]; 
}