在我的 Lion 应用程序上,我有这个数据模型:
subitems里面的关系Item 是有序 的。
subitems
Item
Xcode 4.1 (build 4B110) 为我创建了文件Item.h,Item.m和.SubItem.h``SubItem.h
Item.h
Item.m
SubItem.h``SubItem.h
这是内容(自动生成)Item.h:
#import <Foundation/Foundation.h> #import <CoreData/CoreData.h> @class SubItem; @interface Item : NSManagedObject { @private } @property (nonatomic, retain) NSString * name; @property (nonatomic, retain) NSOrderedSet *subitems; @end @interface Item (CoreDataGeneratedAccessors) - (void)insertObject:(SubItem *)value inSubitemsAtIndex:(NSUInteger)idx; - (void)removeObjectFromSubitemsAtIndex:(NSUInteger)idx; - (void)insertSubitems:(NSArray *)value atIndexes:(NSIndexSet *)indexes; - (void)removeSubitemsAtIndexes:(NSIndexSet *)indexes; - (void)replaceObjectInSubitemsAtIndex:(NSUInteger)idx withObject:(SubItem *)value; - (void)replaceSubitemsAtIndexes:(NSIndexSet *)indexes withSubitems:(NSArray *)values; - (void)addSubitemsObject:(SubItem *)value; - (void)removeSubitemsObject:(SubItem *)value; - (void)addSubitems:(NSOrderedSet *)values; - (void)removeSubitems:(NSOrderedSet *)values; @end
这是以下内容(自动生成)Item.m:
#import "Item.h" #import "SubItem.h" @implementation Item @dynamic name; @dynamic subitems; @end
如您所见,该类Item提供了一个名为addSubitemsObject:. 不幸的是,当尝试以这种方式使用它时:
addSubitemsObject:
Item *item = [NSEntityDescription insertNewObjectForEntityForName:@"Item" inManagedObjectContext:self.managedObjectContext]; item.name = @"FirstItem"; SubItem *subItem = [NSEntityDescription insertNewObjectForEntityForName:@"SubItem" inManagedObjectContext:self.managedObjectContext]; [item addSubitemsObject:subItem];
出现此错误:
2011-09-12 10:28:45.236 Test[2002:707] *** -[NSSet intersectsSet:]: set argument is not an NSSet
你能帮助我吗?
更新:
距离我的错误报告仅 1,787 天后,今天(2016 年 8 月 1 日)Apple 给我写了这样的信: “请使用最新的 iOS 10 Beta 版本验证此问题,并在 bugreport.apple.com 上更新您的错误报告并使用您的结果。”. 让我们希望这是正确的时间:)
我用你的数据模型和我自己的不同名称复制了你的设置。在这两种情况下我都遇到了同样的错误。
看起来像是 Apple 自动生成的代码中的一个错误。