【问题标题】:swift 3.0 syntax questionsswift 3.0 语法问题
【发布时间】:2017-03-23 17:35:20
【问题描述】:

我正在开发一个 iOS 应用程序,我刚刚切换到 Swift 3.0,所以现在我的代码中有很多错误,我不知道如何修复其中的一些。

1) 此 sn-p 的第二行出现错误“参数标签 '(fileURLwithPathComponents:)' 不匹配任何可用的重载”:

let pathArray = [dirPath, recordingName]
let filePath = URL(fileURLwithPathComponents: pathArray)

2) 错误“无法转换 '(CMAccelerometerData?,NSError?)->() 类型的值 到预期的参数类型 'CMAccelermeterHandler' (aka ('Optional, Optional)->()')"

  motionManager.startAccelerometerUpdates(to: OperationQueue.main) {
        [weak self] (data: CMAccelerometerData?, error: NSError?) in self!.label.text = "started tracking"

【问题讨论】:

  • 迁移到 Swift 3 后,一些语法发生了变化。您可以在 Apple 的文档中找到正确的语法。
  • developer.apple.com/reference/foundation/nsurl/1414206-fileurl 第一个。该方法的签名已更改。
  • 感谢@Larme,这对#1 非常有效 --> let filePath = NSURL.fileURL(withPathComponents: pathArray)
  • 我鼓励您自己尝试找到第二个错误的新语法。作为开发人员,您将多次访问文档。
  • 感谢@Koen!我经历了很多,只有这些是我不太了解的两个。但我也刚刚找到了第二个的解决方案——应该只是 Error 而不是 NSError

标签: swift swift3


【解决方案1】:

感谢@Koen 和@Larme,我找到了解决这两个问题的方法:

1) 让 filePath = NSURL.fileURL(withPathComponents: pathArray)

2) 应该只是“错误”而不是“NSError”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2018-09-15
    • 1970-01-01
    相关资源
    最近更新 更多