2016-05-30 78 views
2

我是Swift新手,我正在使用視頻課程。但在目前的課程中,我有一個問題,我無法自己解決。Swift #selector issue

問題是在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?

在此先感謝

+1

這也是行之有效的。NSNotificationCenter.defaultCenter()的addObserver(自我,選擇:#selector(self.onPostsLoaded(_ :)),名稱: 「postsLoaded」,對象:無) – Mannopson

回答

4

試試這個:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourViewController.onPostsLoaded(_:)), name: "postsLoaded", object: nil) 

不要忘記你的控制器的名稱,以取代YourViewController,希望它幫助你。

3

嘗試

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.onPostsLoaded(_:)), name: "postsLoaded", object: nil)