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条)