ios - 条件绑定(bind)的初始化程序必须具有可选类型,而不是 CLPlacemark

标签 ios swift

这里是菜鸟程序员。

我正努力在互联网的帮助下成为一名优秀的程序员。所以,我订阅了 Rob Percivals iOS 类(class)。我的这段代码有问题。一定是最近的更新导致它在我的系统上失败,尽管它与他的代码相同。

CLGeocoder().reverseGeocodeLocation(userLocation) { (placemarks, error) in

        if (error != nil) {

            print(error)

        } else {

        if let p = CLPlacemark(placemark: placemarks![0] as! CLPlacemark) {

            print(p)

            }
        }            
    }
}

如果可能的话,请尽量用婴儿英语来表达。谢谢!

最佳答案

placemarks[CLPlacemark]? 类型。因此,您应该尝试以下操作:

if let placemarks = placemarks {
    if let p0 = placemarks.first {
        print (p0)
    }
}

不要使用 !。使用 if let 代替。

关于ios - 条件绑定(bind)的初始化程序必须具有可选类型,而不是 CLPlacemark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37446709/

相关文章:

swift - 向多个 FCM token 发送通知

ios - Alamofire 5 类型 'Request' 没有成员 'authorizationHeader'

ios - NSURLSession/NSURLConnection HTTP 加载失败,-9802

ios - 我该如何修复此警告消息。警告 : Ignoring user defined runtime attribute for key path "radius" on instance of "UIButton"

swift - NSOutlineView 绑定(bind)到 NSTreeController (节点在窗口调整大小时折叠)

ios - CoreData 中的 NSData 未正确保存

ios - Collection View 的自定义布局不会更新

iOS - 按下按钮后更改按钮颜色不起作用

iphone - Telnet Iphone 开发

ios - OCMock:使用调用的 NSDictionary 参数测试方法