当然,有序集是一个集合的更具体的情况,那么为什么NSOrderedSet继承NSObject而不是NSSet?
NSSet和NSOrderedSet操作可以用新的Objective-C集合文字执行什么(如果有的话)?
对于NSArray,NSDictionary和NSNumber,请参见此处.
FWIW,这个Big Nerd Ranch Post说索引语法应该适用于NSOrderedSet.但在我的测试中却没有.我一直无法找到有关创建有序集的任何内容.
我正在尝试迭代NSOrderedSet的实例.像这样的东西:
func myFunc() {
var orderedSet = NSOrderedSet(array: [ 42, 43, 44])
for n in orderedSet {
NSLog("%i", n)
}
}
Run Code Online (Sandbox Code Playgroud)
...但是for循环行会产生这个编译器错误:
'NSOrderedSet' does not have a member named 'Generator'
Run Code Online (Sandbox Code Playgroud)
现在我可以将它转换为这样的数组:
for n in orderedSet.array {
NSLog("%i", n)
}
Run Code Online (Sandbox Code Playgroud)
......但我想知道是否有更好的解决方案?
我也很想知道为什么迭代一套而不是有序集?NSOrderedSet实现NSFastEnumeration,所以它应该正常工作?
在Foundation中,如果我想将一个集合转换为一个NSArray,我可以使用:
-[NSSet allObjects]-[NSOrderedSet array]为什么这些不同?
我需要你的帮助我有这个令人沮丧的"随机"错误.
该应用程序由一个Mapviewcontroller和collectionview第二个控制器组成.
有时当我从第二个控制器返回到地图时,应用程序突然在"陷阱"行上出现此错误.崩溃报告没有指向我的任何代码行.
EXC_BREAKPOINT(代码= EXC_ARM_BREAKPOINT,子代码= 0xdefe)

我说"随机错误",因为相同版本的同一个应用程序可以构建并运行数天,然后突然卡住了.重新获得应用程序控制权的唯一方法是从iPad手动删除并重建.
为了您的信息,该应用程序使用Coredata.
有任何想法吗?找出错误来自哪里的一些方法?
任何帮助表示赞赏,谢谢!
array = [NSMutableArray arrayWithArray:[set allObjects]];
Run Code Online (Sandbox Code Playgroud)
这适用于NSSet,但我如何让它与一个NSMutableOrderedSet?
objective-c nsmutablearray ios nsorderedset nsmutableorderedset
我不确定我是否只是没有找到任何信息,或者是否不可能.
我查了几页.我想在Swift中使用泛型的NSOrderedSet的泛型版本.
使用Set,您可以执行以下操作:
Swift的Set类型桥接到Foundation的NSSet类.来源:Apple Docs - Sets
在NSManagedObject子类中,您只需将NSSet更改为Set即可.(经过测试)
@property NSArray<NSDate *> *dates;
@property NSSet<NSString *> *words;
@property NSDictionary<NSURL *, NSData *> *cachedData;
var dates: [NSDate]
var words: Set<String>
var cachedData: [NSURL: NSData]
Run Code Online (Sandbox Code Playgroud)
但我在Swift中找不到任何对有序集的引用.我可以使用Objective-C中的NSOrderedSet,但我不会在Swift中使用泛型.
是否有可能在Swift中定义一个订单?
在UITableViewController使用Core Data作为后备存储时,我需要执行哪些步骤来实现用户定义的排序?
我仍然需要响应-tableView:moveRowAtIndexPath:fromIndexPath:toIndexPath:或是否由表视图自动处理模型重新排序?我可以只检查Core Data模型文件中的"Ordered"复选框,并期望它将更改从表视图传输到商店,还是我必须做更多?我是否必须改变fetchedResultsController获取对象的方式(例如添加排序描述符)?
我有这个for循环,p是一个NSManagedObject,fathers是一个to-many关系,所以我需要强制NSMutableOrderedSet转换[Family]但它不起作用,为什么?
for f in p.fathers as [Family] {
}
Run Code Online (Sandbox Code Playgroud)

我查看了现有的文档,找不到任何可以确认我所看到的行为的内容.
从iOS 5开始,可以对CoreData关系进行排序,在这种情况下,返回的对象是NSOrderedSet.
任何人都可以确认集合中对象的顺序与它们的创建顺序相匹配吗?
干杯,罗格
nsorderedset ×10
ios ×7
core-data ×4
objective-c ×4
swift ×3
generics ×2
nsset ×2
exception ×1
foundation ×1
ios5 ×1
literals ×1
uitableview ×1