自更新最新的Xcode以来,我已经开始出现以下错误,这些错误与这段代码有关;

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("postsCell") as! CustomTableViewCell!
        if cell == nil {
            cell = CustomTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "postsCell")
        }
        let dict:NSDictionary = arrPosts[indexPath.row]

        if let postResourceName = dict["resource_name"]![0] as! String? where !postResourceName.isEmpty {
            cell?.customPostTitle?.text = String(htmlEncodedString: postResourceName)
        } else if let postTitle = dict["title"]!["rendered"] as? String {
            cell?.customPostTitle?.text = String(htmlEncodedString: postTitle)
        }


特别是在这条线上;

if let postResourceName = dict["resource_name"]![0] as! String? where !postResourceName.isEmpty {


我对Swift还是很陌生,我认为这与缺少变量类型有关,这就是引发错误的原因。但是我不确定代码应该是什么。

有指针吗?

问候,
麦可

最佳答案

Swift编译器会给您该错误,因为它不知道您在字典中以values的形式拥有哪些对象,因此当您执行dict["resource_name"]![0]时,您想以value的形式访问字典中包含的数组的第一项。 。但是您永远不会告诉您值是数组,因此values的类型是AnyObject。您可以通过替换来指定字典中有Array

let dict:NSDictionary = arrPosts[indexPath.row]




let dict = arrPosts[indexPath.row] as [String:[String]]

关于ios - 下标Swift iOS的使用不明确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36223219/

10-10 21:13