2016-03-01 3 views
0

мои коды выглядят так, как показано ниже, но я получаю ошибку так же, как заголовок для строки, прокомментированной. я попробовал опциональную привязку, но все еще не работает. Я уже обновляю массив дат в viewDidLoad, так что не уверен, почему его нашли нуль, любая идея? Благодаря!неожиданно нашел нуль во время разворачивания необязательного значения при обновлении метки в ячейке

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = myTableView.dequeueReusableCellWithIdentifier("logCell", forIndexPath: indexPath) as! logViewCell 

    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "dd-MMM-yy" 
    // cell.date.text = dateFormatter.stringFromDate(dates[indexPath.row])  
} 

кода для моей пользовательской ячейки:

class LogViewCell: UITableViewCell { 

@IBOutlet var date: UILabel! 

} 
+1

могли бы вы вставить код для пользовательской ячейке, если таковые имеются? – DeyaEldeen

+0

Либо 'cell' является' nil', либо 'cell.date' является' nil'. Установите точку останова, чтобы узнать. – vadian

+1

Я бы подумал, что myTableView.dequeueReusableCellWithIdentifier подходит к нулю, поскольку это единственное место, где происходит разворот. – Knight0fDragon

ответ

0

В вашем viewDidLoad зарегистрировать вас класс как

self.myTableView.registerClass(LogViewCell.self, forCellReuseIdentifier:"logCell") ViewController.dateFormatter.dateFormat = "dd-MMM-yy"

В контроллере представления объявить статическое свойство

static var dateFormatter = NSDateFormatter()

Затем измените функцию:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    if let cell = myTableView.dequeueReusableCellWithIdentifier("logCell", forIndexPath: indexPath) as? LogViewCell { 
      cell.date.text = ViewController.dateFormatter.stringFromDate(dates[indexPath.row])  
     } else { 
      print("Could not get the required cell") 
      return nil 
     } 
    }