【问题标题】:Missing argument for parameter #1 in call调用中参数 #1 缺少参数
【发布时间】:2015-07-01 00:21:57
【问题描述】:

我正在进行 Obj-C 到 Swift 的转换,但遇到了障碍。调用后出现错误“调用中的参数 #1 缺少参数”

self.tabataTimerUpdated() //error

这个被调用的函数(我转换为 swift)是:

func tabataTimerUpdated(NSNotification) {

    self.showTime()

}

这是原始 Obj-C 形式的样子:

- (void)tabataTimerUpdated:(NSNotification *)notification {
[self showTime];
}

我在转换中哪里出错了,我该如何解决?谢谢。

【问题讨论】:

  • 提示:Swift 代码中notification 参数在哪里?
  • 我不知道它在哪里/如何适合,这就是我问的原因。

标签: objective-c swift ios8 xcode6


【解决方案1】:

你得到错误是因为你有

func tabataTimerUpdated(NSNotification) {
}

尝试删除 NSNotification,如下所示:

func tabataTimerUpdated() {
}

或在其中指定一些内容,如下所示:

func tabataTimerUpdated(notification: NSNotification){
}

当你调用函数时,使用:

self.tabataTimerUpdated(yourNotificationVariableInHere)

【讨论】:

  • 抱歉,我不知道我是疯了还是只是空白,但是在这个特定的实例中我的通知变量是什么?
  • object-C 中的 notificationVariable 是什么? - (void)tabataTimerUpdated:(NSNotification *)notification { [self showTime]; } 如果你没有,只需使用 func tabataTimerUpdated() { }
  • 尝试先在括号内不放任何东西,然后像这样调用函数:self.tabataTimerUpdated() 编译看看它是否运行
  • 嗯,只要不使用 NSNotification 功能,它仍然会导致应用崩溃。
  • 你是如何在 Objective-C 中调用函数的?
猜你喜欢
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 2017-10-05
  • 1970-01-01
相关资源
最近更新 更多