ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值

ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值,第1张

概述在 swift中,我有一个School类,它有一个类型为[AnyObject]的学生属性! class School : NSObject { var students: [AnyObject]! ...} 我有一个学校的实例,还有一个代表学生姓名的NSArray字符串.我想将这个NSArray变量分配给学生: var school = School()var studentArray 在 swift中,我有一个School类,它有一个类型为[AnyObject]的学生属性!
class School : NSObject {  var students: [AnyObject]!  ...}

我有一个学校的实例,还有一个代表学生姓名的NSArray字符串.我想将这个NSArray变量分配给学生:

var school = School()var studentArray : NSArray = getAllStudents()//ERROR:Cannot assign a value of type 'NSArray' to a value of type '[AnyObject]'school.students = studentArray

为什么这个错误?是不是swift中的数组与目标c中的NSArray兼容?如何摆脱上面的编译器错误?

解决方法 你的var学生是一个Swift数组,并期望AnyObject类型的对象,但你尝试为它分配一个NSArray.这两个对象的类型不同,不起作用.

但是,鉴于NSArray与[AnyObject]兼容,您可以使用简单的类型转换将NSArray转换为Swift数组:

school.students = studentArray as [AnyObject]

当然,更好的方法是留在Swift世界并尽可能地忘记NSArray,方法是让getAllStudents返回一个Swift数组而不是NSArray.您不仅可以避免必须进行类型转换,还可以从Swift集合的强大功能中受益.

总结

以上是内存溢出为你收集整理的ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值全部内容,希望文章能够帮你解决ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存