Usually, we generate an entity class with Editor->Create NSManagedOBject Subclass... For example we created a subclass of NSManagedObject
Xcode generates the .h file like this:
@interface MyEntity : NSManagedObject @property (nonatomic, retain) NSOrderedSet manySubs; //... some methods generated by Xcode - (void)addManySubsObject:(MySubEntity*)value; //... some other methods generated by Xcode @end and the .m file like this:
@implement MyEntity @dynamic manySubs; @end If you use MyEntity just like this, you will get an error when you try to insert a new MySubEntity class by calling [myEntityObj addManySubsObject:aSubEntityObj];.
The error reads:
*** -[NSSet intersectsSet:]: set argument is not an NSSet
This is a bug Apple hasn’t resolved yet, but you can work around this bug by adding the following method to .m file.
- (void)addManySubsObject:(MySubEntity*)value{ [self willChangeValueForKey:@"manySubs"]; NSMutableOrderedSet *tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.manySubs]; [tempSet addObject: value]; self.manySubs = tempSet; [self didChangeValueForKey:@"manySubs"]; } Be careful
Via Tonny Xu http://feedproxy.google.com/~r/tonnyxu/~3/wO0dQNbn3JA/ iPhone Dev, Programming
No comments:
Post a Comment