ios - 可以为 viewWillAppear 创建一个选择器,但不能为 viewDidLoad 创建一个选择器

标签 ios swift

我不明白为什么这会编译:

let viewWillAppearSelector = #selector(UIViewController.viewWillAppear(_:))

但不是这个:

let viewDidLoadSelector = #selector(UIViewController.viewDidLoad())

错误是

"Use of instance member 'viewDidLoad' on type UIViewController; did you mean to use a value type 'UIViewController' instead?

为什么后者不编译而前者编译?

更新:我把它改成了这个,现在它可以编译了:

let viewDidLoadSelector = #selector(UIViewController.viewDidLoad)

但我不是 100% 的原因

最佳答案

如果方法不接受任何参数,则需要省略括号。在 Swift 的 future 版本中,您的代码将成为一个错误。

尝试

let viewDidLoadSelector = #selector(UIViewController.viewDidLoad)

相反。

关于ios - 可以为 viewWillAppear 创建一个选择器,但不能为 viewDidLoad 创建一个选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37035457/

相关文章:

swift - 如何设置 Parse 客户端推送通知

iphone - iOS 的崩溃分析和报告

ios - Swift Firebase 将 UID 键与 UID 字符串数组匹配

iphone - iOS 应用因 "Could not load NIB in bundle"而崩溃

ios - Air to iPad Release Build Assets 加载失败

swift - ViewController.swift 可能无法正确加载

ios - UITableView 行在重新排序时快速重复

ios - ReactiveCocoa,使用 Swift 2.3 编译的模块在 Swift 3.0 中无法导入问题。怎么修?

swift - 避免两个不同 View 之间的触摸手势冲突

ios - UITableViewCell,在滑动时显示删除按钮