【问题标题】:Cannot invoke 'taskCreated' with an argument list of type '([String : String?])'无法使用类型为“([String:String?])”的参数列表调用“taskCreated”
【发布时间】:2015-07-12 02:15:59
【问题描述】:

我完成了使用 Swift 构建任务 iOS 应用程序。整个应用程序已完成并没有错误地完成,并且运行正常。我使用的是 Xcode 6,但不久前我升级到了最新的 Xcode Beta,即 Xcode 7 Beta。在我的一个 swift 文件中,由于某些逻辑已从切换 xcode 6 更改为 xcode 7 beta,因此只有一个错误曾经不是 xcode 6 的错误。在我的行中,错误是; “无法使用 '([String : String?])' 类型的参数列表调用 'taskCreated'”如何解决此错误?

代码如下:

delegate!.taskCreated(["name": nameTask, "description": descriptionTask])

如果有人想查看我的“taskCreated”功能,我也会在下面发布。

func taskCreated(task: Dictionary<String, String>) {
    print("in task created delegate of ViewController")
    print(task)

    dataSource[0].append(task)


    tableView.reloadData()
}

【问题讨论】:

  • 试试这个委托!.taskCreated(["name": nameTask, "description": descriptionTask!])

标签: ios xcode swift


【解决方案1】:

nameTaskdescriptionTask 之一的类型为 String?。你可以用感叹号解开它们:

delegate!.taskCreated(["name": nameTask!, "description": descriptionTask!])

【讨论】:

    【解决方案2】:

    变量nameTaskdescriptionTask 不是字符串而是Optional(String)(表示为String?),这就是为什么它说你不能用[String: String?] 调用taskCreated。您只能发送[String: String]

    如果您确定 nameTaskdescriptionTask 永远不会为零,只需将其调用替换为: delegate!.taskCreated(["name": nameTask!, "description": descriptionTask!])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多