gpt4 book ai didi

ios - 通过一对多关系获取核心数据中的对象

转载 作者:行者123 更新时间:2023-12-01 17:25:47 24 4
gpt4 key购买 nike

我在One-to-Many中有这个relationship Core Data:

每个SBQChrono可以具有许多SBQLaps

在我的模型中,我有SBQLap类:

@interface CILap : NSObject

@property (strong, nonatomic) NSDate * lapDate;

@end

和类 SBQChrono:
@interface CIChrono : NSObject

@property (strong, nonatomic) NSDate * startDate;
@property (strong, nonatomic) NSDate * stopDate;
@property (strong, nonatomic) NSOrderedSet *laps;

@end

我得到所有的 SBQChrono entities:
NSFetchRequest *request=[[NSFetchRequest alloc] initWithEntityName:kChronoEntityName];

NSError *error;
NSArray *objects = [appContext.managedObjectContext executeFetchRequest:request error:&error];

如何找到找到的每个 SBQLap实体指定的 SBQChrono实体?香港专业教育学院阅读了很多文章,无法获得解决方案。

UPDATE :

在尝试转换 NSManagedObject之后,我意识到圈数返回为nil值。

正在做:

对于(NSManagedObject *对象中的一个对象){
    CIChrono *chrono=(CIChrono *)oneObject;

NSLog(@"startDate %@", chrono.startDate);
NSLog(@"stopDate %@", chrono.stopDate);
NSLog(@"laps %@",chrono.laps);

}
我收到消息:
2014-01-28 14:39:48.379 Chrono[2341:70b] startDate 2014-01-28 12:27:53 +0000
2014-01-28 14:39:48.380 Chrono[2341:70b] stopDate 2014-01-28 12:27:54 +0000
2014-01-28 14:39:48.380 Chrono[2341:70b] -[NSManagedObject laps]: unrecognized selector sent to instance 0x8b959b0
2014-01-28 14:39:48.383 Chrono[2341:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject laps]: unrecognized selector sent to instance 0x8b959b0'

谢谢

最佳答案

关于这一点很多有趣的答案。

答案非常简单,不需要子类NSManagedObject即可访问关系中的对象。您只需要使用KVC(键值编码)来访问这些对象。关系和属性都是如此。

如果要使用综合方法,可以按照某些人的暗示进行子类化,但这不是必需的。

这是您在问题中发布的示例的扩展:

for (NSManagedObject *oneObject in objects) {

CIChrono *chrono=(CIChrono *)oneObject;

NSLog(@"startDate %@", [chrono valueForKey:@"startDate");
NSLog(@"stopDate %@", [chrono valueForKey:@"stopDate"]);
NSLog(@"laps %@", [chrono valueForKey:@"laps"]);

NSSet *laps = [chrono valueForKey:@"laps"];

for (NSManagedObject *lap in laps) {
NSLog(@"Lap entity: %@", lap);
}
}

注意 -valueForKey:调用。这些是 NSManagedObject实例(和所有其他Objective-C对象)响应的键值编码。我建议阅读有关KVC和KVO的文档。

关于ios - 通过一对多关系获取核心数据中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com