iOS Core Data - 将相关数据添加到实体

标签 ios core-data

这里是 iOS 初学者。

给定一个具有多对多关系的实体

@class Categories;

@interface Events : NSManagedObject

@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSSet *categories;
@end

@interface Events (CoreDataGeneratedAccessors)

- (void)addCategoriesObject:(Categories *)value;
- (void)removeCategoriesObject:(Categories *)value;
- (void)addCategories:(NSSet *)values;
- (void)removeCategories:(NSSet *)values;

@end

相关

@interface Categories : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSManagedObject *events;

@end

并且有一些 JSON 数据来填充事件表

[{"title": "Test Exhibition", "categories": [{"name": "Exhibitions"}]}, {...}]

我应该如何格式化 JSON 数据以执行类似的操作

// Parse Events JSON
[events enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
...
Events *event = [NSEntityDescription
    insertNewObjectForEntityForName:@"Events" inManagedObjectContext:context];
event.title = [obj objectForKey:@"title"];
NSSet *categories = [[[NSSet alloc] init] setByAddingObjectsFromArray:[obj objectForKey:@"categories"]];
NSLog(@"CATS %@", categories);
[event addCategories:categories];

最终让核心数据找到相关类别(已经添加到数据库中)并将其附加到事件?

此刻我得到

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary entity]: unrecognized selector sent to instance 0x893a8c0'

非常感谢任何帮助,谢谢!

最佳答案

categoriesNSDictionariesNSSet,但是

- (void)addCategories:(NSSet *)values;

需要 NSManagedObject 的 NSSet。因此,您必须从每个描述类别的字典中创建一个 NSManagedObject,将它们添加到一个新的 NSSet(或 NSMutableSet),然后才可以使用新集合调用 addCategories:

关于iOS Core Data - 将相关数据添加到实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292567/

相关文章:

ios - 尝试为 iOS 中的音频播放应用程序设计核心数据模型

cocoa - 如何让 Core Data 使用我自己的 NSManagedObjectID URI 方案?

swift - UITableViewCell 的属性文本未更新

ios - 检测 [NSTimeZone localTimezone] secondsFromGMT 属性更改

objective-c - 核心数据: How to dynamically change the entity of an object while maintaining common attributes

ios - PF用户丢失数据

ios - 如何在 swift 中编写 SFHFKeychainUtils

ios - 使用 "to many"关系从 NSFetchedResultsController 派生 UITableView 部分

ios - UPI 深层链接问题 - iOS

ios - 如何禁用/启用特定的 UITabBar 项目,