【问题标题】:Error: 'Type of expression is ambiguous without more context'错误:“没有更多上下文的表达式类型不明确”
【发布时间】:2015-09-21 14:10:34
【问题描述】:

我对 Swift 编码很陌生,所以如果这个错误是一个简单的答案,请原谅!

我不断收到一条错误消息,提示“表达式类型不明确,没有更多上下文。”

    var findTimelineData: PFQuery = PFQuery(className: "Sweets")
    findTimelineData.findObjectsInBackgroundWithBlock {
        (objects:[AnyObject]?, error:NSError?) -> Void in

        if error == nil {
            for object:PFObject in objects! { // ----This is the error line---
                self.timelineData.addObject(object)
            }
        }
    }

有什么建议吗?

谢谢!

【问题讨论】:

    标签: ios swift parse-platform compiler-errors


    【解决方案1】:

    你可以帮助编译器知道objects是这样的:

    for object in objects as! [PFObject] {
        self.timelineData.addObject(object)
    }
    

    【讨论】:

    • 我的示例使用强制展开,不要忘记如果数组中的任何对象不是 PFObject,这将崩溃。如果您认为这可能是您的情况,或者有任何疑问,最好使用 Tom Howard 的回答中的可选绑定。
    【解决方案2】:
    if let pfObjects = objects as? [PFObject]
    {
        for pfObject in pfObjects
        {
            self.timelineData.addObject(pfObject)
        }
    }
    

    ...Swift 代码中的感叹号让我大吃一惊。

    【讨论】:

      【解决方案3】:

      如果你正在编写一些喜欢的代码:

      for (i, view) in views { 
      }
      

      您需要添加enumerated:

      for (i, view) in views.enumerated() {
      }
      

      现在它应该可以工作了。

      【讨论】:

        猜你喜欢
        • 2019-02-01
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多