【发布时间】:2014-08-16 20:28:12
【问题描述】:
在 CoreData 中,我定义了一个 ordered 对多关系。这种关系在 Swift 中是这样定义的:
@NSManaged var types : NSMutableArray
但是,为了最好地使用 Swift,我想使用像 Type[] 这样的普通 Swift 数组。然而,CoreData 强迫我使用NS(Mutable)Array。如何将NSArray 类型转换/转换为Array<Type>[]?
显然,混淆是由以下错误引起的:
let array = obj.types as T[] // Cannot convert expression's type 'Node[]' to type '$T2'
虽然编辑接受了这一点:
let array = obj.types as AnyObject[] as T[] // No complaint
【问题讨论】:
-
有序关系(据我所知)由 NSOrderedSet 表示,而不是由 NSMutableArray 表示。
-
“我目前使用 obj.types.allObjects 作为 Type[],但这感觉像是一种 hack/workaround”。不,这是你如何将 NSArray 转换为特定类型的 Swift 数组。
-
哇,为什么投反对票?我有同样的问题,这似乎值得一问。