问题
CoreData one-to-many default to generate NSSet
,how to change NSSet
to NSMutableArray
?I try to change it manually,but get error:
_NSFaultingMutableSet filteredArrayUsingPredicate:]: unrecognized selector sent to instance 0x1ed35e40'
回答1:
NSSet
has the method allObjects
, which returns an NSArray
.
To get an NSMutableArray
you could do this:
NSMutableArray *array = [NSMutableArray arrayWithArray:myCoreDataObject.mySet.allObjects];
Note: order is not guaranteed to be the same every time (sets aren't ordered). If order is important to you, consider an NSOrderedSet
instead.
See also the docs on NSSet
:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html
PS:
The reason you're getting said error:
NSSet
(or _NSFaultingMutableSet
for that matter) doesn't have a method called filteredArrayUsingPredicate
.
来源:https://stackoverflow.com/questions/14617194/coredata-how-to-change-default-nsset-to-nsmutablearray