我是Swift的新手,我正在使用视频课程。但在目前的课程中,我遇到了一个问题,我无法自己解决。
问题在于NSNotificationCenter中新的#selector语法,我使用旧的语法,但它没有用。
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
NSNotificationCenter.defaultCenter().addObserver(self, selector: "onPostsLoaded:", name: "postsLoaded", object: nil)
tableView.reloadData()
}
func onPostsLoaded(notif:AnyObject) {
tableView.reloadData()
}
}
请查看屏幕截图:How should I rewrite the yellow code (with selector) to make it work?
提前致谢
答案 0 :(得分:4)
试试这个:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourViewController.onPostsLoaded(_:)), name: "postsLoaded", object: nil)
不要忘记用控制器的名称替换YourViewController
,希望它可以帮到你。
答案 1 :(得分:3)
尝试替换
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.onPostsLoaded(_:)), name: "postsLoaded", object: nil)
答案 2 :(得分:1)
我猜上面的答案是最好的,但不要忘记" _"在targetAction中,因为您使用Swift 3.0,请在此处查看我的答案: