重新加载UITableView时出现NSInvalidArgumentException

时间:2015-09-01 13:17:57

标签: ios swift uitableview

这是我的UIViewController

class HabitTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{

    @IBOutlet weak var habitTableView: UITableView!
    private var _numOfRowsInSects: [Int] = []
    private var _habitsByDaySet = false
    private var _habitsBySection:[[Habit]] = []
    private var _whatIsToday = -1 


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        habitTableView.delegate = self
        habitTableView.dataSource = self

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func reloadTableForDay(sender: DayButton){
        if sender.tag != getDayOfWeek(-1){
            _whatIsToday = sender.tag
            self.habitTableView.reloadData() //line of exception
        }
        else{
            _whatIsToday = -1
        }

    }
    // methods of UITableView delegate and data source implemented 

}

我在NSInvalidArgumentException行找到self.habitTableView.reloadData(),原因是-[HabitWiz.HabitTableViewController reloadTableForDay:]: unrecognized selector sent to instance 0x7fb0d351b060。我不知道这里发生了什么,感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

解决了它。我意识到我的应用程序没有正确构建:我插入了几个print语句,这些语句没有被执行。所以我只是做了一个干净的构建,现在一切正常。

答案 1 :(得分:0)

我的猜测是你在界面构建器中搞砸了IBAction。

尝试取消连接并重新连接操作,并确保将ViewController设置为HabitTableViewController的子类。