core-data – 将NSArray转换为Swift Array

core-data – 将NSArray转换为Swift Array,第1张

概述在CoreData中,我定义了一个有序对多关系。这个关系在Swift中定义如下: @NSManaged var types : NSMutableArray 但是,要使用Swift是最好的,我想使用一个普通的Swift数组,如Type []。然而,CoreData强迫我使用NS(Mutable)Array。我如何输入/转换NSArray到Array< Type> []? 显然,混淆起因于以下错误: 在CoreData中,我定义了一个有序对多关系。这个关系在Swift中定义如下:
@NSManaged var types : NSMutableArray

但是,要使用Swift是最好的,我想使用一个普通的Swift数组,如Type []。然而,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

I’m currently using obj.types.allObjects as Type[],but that feels like a Hack/workaround.

然后修改你的感觉。你所做的就是你怎么做“类型转换/转换NSArray到Array< Type> []”。

NSArray总是以包含AnyObject(即Array< AnyObject>,aka AnyObject [])到达Swift。如果你知道它包含了所有的类型,就把它放到一个特定的类型,是由你决定,你如何做它正是你应该做的。

编辑在Swift 2.0和新的iOS 9 API中,NSArray通常会正确输入,并且不需要转换。

编辑2在Swift 3.0中,一个没有正确输入的NSArray虽然不常见,但是会包含Any而不是AnyObject,并且仍然必须强制转换为特定类型。

总结

以上是内存溢出为你收集整理的core-data – 将NSArray转换为Swift Array全部内容,希望文章能够帮你解决core-data – 将NSArray转换为Swift Array所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存