我下载了一组项目文件,以便在Youtube上使用Swift教程(https://www.youtube.com/watch?v=RBnVWWqFZX0&list=UUysEngjfeIYapEER9K8aikw)。但是,当我尝试运行应用程序时,我在XCode中遇到错误:
输入'[AnyObject!'不能隐含地转向'PFObject';没有 你打算用'as'强迫贬低?
错误发生在以下代码行中:
if !error{
for object:PFObject! in objects{
self.timelineData.addObject(object)
}
XCode尝试通过在“对象”之后立即添加“as Objects”或类似内容来解决问题,但似乎无法解决问题。我没有对项目源文件进行任何更改。您可以通过单击视频说明中的链接自行下载。该错误发生在loadData()函数中的TimelineTableViewController.swift文件中。
我目前正在使用Xcode 6 beta 4.我感觉代码是使用早期的beta版本编写的。关于如何解决这个问题的任何想法?
谢谢!
答案 0 :(得分:4)
似乎objects
属于[AnyObject!]
类型。在Swift中,你不能像你正在尝试的那样隐式地转换为循环中的另一个类型。你有两个选择。
投射整个阵列:
if let pdfObjects = objects as? [PFObject!] {
for object in pdfObjects {
// ...
}
}
或投射每个元素:
for object in objects {
if let pdf = object as? PDFObject! {
// ...
}
}