![ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值,第1张 ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值,第1张](/aiimages/ios+%E2%80%93+%E6%97%A0%E6%B3%95%E5%B0%86%E7%B1%BB%E5%9E%8B%E4%B8%BA%E2%80%99NSArray%E2%80%99%E7%9A%84%E5%80%BC%E5%88%86%E9%85%8D%E7%BB%99%26amp%3B%2339%3B%5BAnyObject%5D%E2%80%99%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%80%BC.png)
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]’类型的值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)