如何从 NSSet 返回 NSMutableArray
Posted
技术标签:
【中文标题】如何从 NSSet 返回 NSMutableArray【英文标题】:How to return an NSMutableArray from an NSSet 【发布时间】:2011-04-19 02:53:23 【问题描述】:我可以像这样将NSSet
的内容放入NSMutableArray
中:
NSMutableArray *array = [set allObjects];
编译器会抱怨,因为 [set allObjects] 返回的是 NSArray
而不是 NSMutableArray
。应该如何解决?
【问题讨论】:
【参考方案1】:由于-allObjects
返回一个数组,您可以创建一个可变版本:
NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]];
或者,如果您想处理对象所有权:
NSMutableArray *array = [[set allObjects] mutableCopy];
【讨论】:
注意:如果set
是nil
,这两种方法会有细微的差别。【参考方案2】:
对于有序集合使用:
NSArray *myArray = [[myOrderedSet array] mutableCopy];
【讨论】:
似乎没有 NSSet- array
方法。【参考方案3】:
我通过使用 NSMutableArray's 方法 'addObjectsFromArray' 将所有 NSSet 对象分配给 NSMutableArray 解决了崩溃问题,例如:
[mutableArray addObjectsFromArray:[cg_Schedule.schedule_Days allObjects]];
希望对你有帮助。
【讨论】:
以上是关于如何从 NSSet 返回 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章
如何从包含任意对象的 NSSet 创建排序的 NSArray?