coredata 如何将默认 NSSet 更改为 NSMutableArray
Posted
技术标签:
【中文标题】coredata 如何将默认 NSSet 更改为 NSMutableArray【英文标题】:coredata how to change default NSSet to NSMutableArray 【发布时间】:2013-01-31 01:53:42 【问题描述】:CoreData 一对多默认生成NSSet
,如何将NSSet
改为NSMutableArray
?我尝试手动更改,但报错:
_NSFaultingMutableSet filteredArrayUsingPredicate:]: unrecognized selector sent to instance 0x1ed35e40'
【问题讨论】:
【参考方案1】:NSSet
有方法allObjects
,它返回一个NSArray
。
要获得NSMutableArray
,您可以这样做:
NSMutableArray *array = [NSMutableArray arrayWithArray:myCoreDataObject.mySet.allObjects];
注意:不保证每次的顺序都相同(集合不排序)。如果订单对您很重要,请考虑使用NSOrderedSet
。
另请参阅NSSet
上的文档:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html
PS:
您收到上述错误的原因:
NSSet
(或_NSFaultingMutableSet
)没有名为filteredArrayUsingPredicate
的方法。
【讨论】:
如果 myCoreDataObject.mySet 已更改,如何更新 NSArray? @jay 呃,小心点……? ;) 将新问题作为评论提出是一种不好的形式...改为打开一个新问题。以上是关于coredata 如何将默认 NSSet 更改为 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章