2 summericeredtea summerICEREDTEA 于 2013.01.31 08:51 提问

core data 1对多生成的默认是NSSet 如何改成NSMutableArray呢?

在配置的时候没有看到, 手工把代码中的 NSSet改成NSMutableArray 使用的时候还是会报错
_NSFaultingMutableSet filteredArrayUsingPredicate:]: unrecognized selector sent to instance 0x1ed35e40'

1个回答

MrsSeven7
MrsSeven7   2013.01.31 10:25
已采纳

NSSet 中的allobject方法,返回一个NSSArray

获取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

补充一下出错的原因:

NSSet(或者_NSFaultingMutableSet )没有filteredArrayUsingPredicate这个方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS开发学习专题-基础知识(二)NSArray数组NSMutableArray可变数组NSSet集合NSMutableSet可变集合详细使用方式
本文主要讲解的是不可变数组NSArray可变数组NSMutableArray集合NSSet可变集合NSMutableSet详细使用方式包括类型和值之间的转换 文章是博主原创,转载请标明出处 首先来一个集合的详细方法~ #pragma mark NSSet 不可变集合 // NSSet和NSArray有相似之处,都是存储不同的对象的地址 // 但是NSArray是有序的集合,N
xcode 8 使用coredata时候生成entity手动创建managedobject文件后编译报错重复定义
原因:xcode8 以后xcode会自动生成这些之前需要手动生成的文件,objective c中如果想使用,直接引用 "entity name + CoreDataClass.h" 的形式就可以了。
FluentAPI 一对多,多对多
一对多模型Nationality(国家)数据模型(对应“一”) 因为已过国家有很多人,而一个人只能有一个国家namespace BF.Entities.Entitys { /// <summary> /// 国家 /// </summary> public class Nationality { public int ...
【OC学习-20】NSSet集合对象初始化以及常用操作方法归纳
集合的初始化以及操作方法和NSString、NSArray、NSDictionary等都很类似,很多方法写几遍就能了解意思并上手使用,不建议全部记忆。
NSArray是强引用容器 详解
http://www.cnblogs.com/FightingLuoYin/p/4521819.html 经常比较疑惑NSArray、NSDictionary、NSSet这几个对象容器管理对象所采用的方式是“强引用”还是“弱引用”。 通过简单的命令行程序得到的结论是“NSArray、NSDictionary、NSSet这几个容器都是强引用容器”。 打开Xcode,新建
Spring data 数据库建表(一对一,一对多,多对多)
Spring data 数据库建表(一对一,一对多,多对多) 摘要: DBA 如果你在不学习编程,你将失业。如今我们对DBA的依赖越来越少,多数框架都支持实体关系映射,通过面向对象编程即可定义数据库结构。数据库设计也是在这个阶段完成的,不再需要DBA协助。如果DBA不学习怎样编写实体Class 最终将被淘汰。所以DBA除了会使用 ER图工具,还需要会写实体类。
NSSet与NSArray区别
       NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet  , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray(是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的;        NSSet和我们常用NSArray区别是:在搜索一个一个元素时NSSet比NSArray效率...
spring data solr 之多核配置
参考: 1.SpringData Solr文档 —— Example 2.3.LBSolrServer using Namespace 2.Solrj API —— LBHttpSolrServer   LBSolrServer可以自动切换配置的多个SolrServer的URL,即使你的zookeeper服务器全部挂掉,也还是可以实现切换访问各个core(当然zookeeper挂掉的话
NSMutableArray到NSData的转化的问题
NSArray *array = [NSArray arrayWithObjects:@"1", @"2" ,@"3" ,@"4" ,@"5" ,nil]; 02     NSData *sendData=[NSKeyedArchiver archivedDataWithRootObject:array];
关于NSMutableArray的初始化创建
之前用 :  1 NSMutableArray *array = [NSMutableArray alloc] init];//这并不是一个好方法 后来前辈对我说,用obj-c提供了静态方法 +(id)arrayWithCapacity:size 来创建一个可变数组。看书后发现,这个size数组容量只是数组最终大小的一个参考。size的值是为 Cocoa能够对代码进行一些优化,这个