【发布时间】:2014-08-16 20:27:26
【问题描述】:
在 CoreData 中,我定义了一个 无序 对多关系。这种关系在 Swift 中是这样定义的:
@NSManaged var types : NSMutableSet
但是,为了最好地使用 Swift,我想使用像 Type[] 这样的普通 Swift 数组。然而,CoreData 强迫我使用NS(Mutable)Set。如何将NSSet 类型转换/转换为Array<Type>[]?
【问题讨论】:
-
Type-cast 是不可能的,因为 NSSet 不继承 NSArray,但您可以使用
types.allObjects()转换为 NSArray -
@ColinE 它不是重复的,因为您指的是关于 NSArray 而这是关于 NSSet。不同的类型、不同的问题和可能不同的答案。
-
是的,那是重复的,因为
NSSet可以转换为NSArray,从那时起解决方案是相同的。 -
@bouke,Swift 文档中关于 Cocoa 类型的说明如下:Swift 自动在
Array类型和NSArray类之间建立桥梁。 和 (...) 在 Swift 代码中,您可以将Array值传递给需要NSArray对象的方法。你也可以在桥接类型和对应的类型之间进行转换。,我想这是很明确的说法,来源:developer.apple.com/library/prerelease/mac/documentation/Swift/…,不客气!