【问题标题】:How do I declare NULL/Void in swift when I don't need to use a completion block?当我不需要使用完成块时,如何快速声明 NULL/Void?
【发布时间】:2014-09-02 13:12:27
【问题描述】:

这是objective-c中的代码:

[self presentViewController:logInViewController animated:YES completion:NULL];

到目前为止,我的代码在 swift 中:

self.presentViewController(logInViewController, animated: true, completion:  )

认为它就像输入“Void”一样简单。不幸的是,还有更多内容。

【问题讨论】:

  • nil 不行吗?
  • @KevinDiTraglia 最初尝试但没有成功,但现在我可以看到这是一个自动完成问题。 XCode 6 中的自动完成功能有点古怪。还没习惯。
  • 你应该为 Swift and Objective C 使用 nil。这很明智,并且很容易记住......
  • 但是,nil 只能在完成块是可选的情况下使用。在这种特定情况下(可能在大多数 UIKit 情况下)该块被调用为(()->Void)!,因此它是一个显式解包的可选并且取 nil。

标签: objective-c swift objective-c-blocks


【解决方案1】:

Apple 的预发布文档说:

func presentViewController(_ viewControllerToPresent: UIViewController!,
                                       animated flag: Bool,
                               completion completion: (() -> Void)!)

参数

viewControllerToPresent

要显示在当前视图控制器内容之上的视图控制器。

flag

传递 true 以动画演示;否则,传递 false。

completion

演示结束后要执行的块。这个块没有返回值,也没有参数。 您可以为此参数指定 nil。

因此您可以为此参数指定nil

您可以通过iOS Dev Center 访问此预发布文档

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    相关资源
    最近更新 更多