2015-05-27 5 views
0

После поиска решения я не могу решить эту проблему, у меня есть этот код, чтобы перечислить данные из основных данных:UITableViewController: NSInternalInconsistencyException

import UIKit 
import CoreData 

class ViewControllerClass: UITableViewController, NSFetchedResultsControllerDelegate{ 

    let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 

    var fetchedResultController: NSFetchedResultsController = NSFetchedResultsController() 

    var intermedioLat:String = "" 
    var intermedioLong:String = "" 

    @IBOutlet weak var listagem: UITableView! 
    var velocidade = ["40","50","70","90","100","120"] 

    func textFieldSouldReturn (textField: UITextField) -> Bool{ 
     textField.resignFirstResponder() 
     return true 
    } 


    override func viewDidLoad() { 
     print(intermedioLat) 
     print(intermedioLong) 
     fetchedResultController = getFetchedResultController() 
     fetchedResultController.delegate = self 
     fetchedResultController.performFetch(nil) 

     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 

    func getFetchedResultController() -> NSFetchedResultsController { 
     fetchedResultController = NSFetchedResultsController(fetchRequest: taskFetchRequest(), managedObjectContext: managedObjectContext!, sectionNameKeyPath: nil, cacheName: nil) 
     return fetchedResultController 
    } 

    func taskFetchRequest() -> NSFetchRequest { 
     let fetchRequest = NSFetchRequest(entityName: "Radar") 
     let sortDescriptor = NSSortDescriptor(key: "descricao", ascending: true) 
     fetchRequest.sortDescriptors = [sortDescriptor] 
     return fetchRequest 
    } 

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

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     let numberOfSections = fetchedResultController.sections?.count 
     return numberOfSections! 
    } 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     let numberOfRowsInSection = fetchedResultController.sections?[section].numberOfObjects 
     return numberOfRowsInSection! 
    } 

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

     var cell = tableView.dequeueReusableCellWithIdentifier("Celula", forIndexPath: indexPath) as! UITableViewCell 
     let task = fetchedResultController.objectAtIndexPath(indexPath) as! Radar 
     cell.textLabel?.text = task.descricao 
     return cell 
    } 


    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
     let managedObject:NSManagedObject = fetchedResultController.objectAtIndexPath(indexPath) as! NSManagedObject 
     managedObjectContext?.deleteObject(managedObject) 
     managedObjectContext?.save(nil) 
    } 

    func controllerDidChangeContent(controller: NSFetchedResultsController) { 
     tableView.reloadData() 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "fromEventTableToAddEvent"{ 
     var enviaInterLat : adicionarRadar = segue.destinationViewController as! adicionarRadar 
     enviaInterLat.latitude = intermedioLat 
     var enviaInterLong : adicionarRadar = segue.destinationViewController as! adicionarRadar 
     enviaInterLong.longitude = intermedioLong 
     }} 
} 

и у меня есть ошибка, как это:

Завершение приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: '- [UITableViewController loadView] загрузил носок «TuG-ju-H3E-view-l3X-mv-HmR», но не получил UITableVie ш. *** Первый стек бросить вызов: LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException

Я не знаю, что еще делать, потому что я все попробовать

ответ

1

Вы объявляете свой класс как UITableViewController, в этом случае розетка для просмотра должна быть подключена к виду стола. Однако, если вам нужно представление, содержащее UITableView, просто сделайте контроллер UIViewController, который соответствует протоколам UITableViewDelegate и UITableViewDataSource, и это исчезнет.

Изменить его

class ViewControllerClass: UIViewController, UITableViewDelegate, UITableViewDataSource, NSFetchedResultsControllerDelegate 
Смежные вопросы