【问题标题】:Getting at a Core Data object's sub-object's properties?获取核心数据对象的子对象的属性?
【发布时间】:2010-11-19 11:35:46
【问题描述】:

我有一个名为 Workshop 的 Core Data 对象。它与 Student 对象具有一对多的关系。

如何从 Workshop 对象中获取学生姓氏的 NSArray(姓氏是学生的 NSString 属性)?最好按字母顺序?

【问题讨论】:

    标签: iphone objective-c core-data ios


    【解决方案1】:

    警告:未经测试的代码传入

    假设您的 Workshop 和 Student 实体都具有“名称”属性,并且您的学生实体具有称为“Workshop”的关系,这就是您获取对象的方式:

    - (NSArray*) getStudentsForWorkshop:(NSString*) workshopName {
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];   
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" 
                                              inManagedObjectContext:managedObjectContext];
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Workshop.name LIKE %@", workshopName];
        [fetchRequest setPredicate:predicate];
        [fetchRequest setEntity:entity];                                         
    
        NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:nil]];
    
        NSArray *sortedArray = [NSArray arrayWithArray: [result sortedArrayUsingSelector:@selector(compareStudent:)]];
        return sortedArray;      
    }
    

    对于排序,您可以像这样实现compareStudent

    - (NSComparisonResult)compareStudent:(NSManagedObject*)otherObject {
        return [self.name compare:otherObject];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多