2015-09-04 12 views
5

Ich benutze xcode 7 beta und ich habe diesen Code aus einem Tutorial gefunden, aber ich verwende eine UIViewController anstelle von UITableViewController aus vielen Gründen. (Ich weiß nicht, ob dies dieses spezifische Problem verursacht). Ich habe die UIViewController Setup wie eine typische UITableViewController bekommen aber ich in den Fehler leiteGetting error Mehrdeutige Verwendung von TableView (_: numberOfRowsInSection :)

mehrdeutige Verwendung von 'tableView(_:numberOfRowsInSection:)

Hier ist mein Code

class ShoppingViewController: UIViewController { 
var toDoItems:NSMutableArray = NSMutableArray() 

override func viewDidAppear(animated: Bool) { 

    var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults() 

    var itemListFromUserDefaults:NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray 

    if ((itemListFromUserDefaults) != nil){ 
      toDoItems = itemListFromUserDefaults! 
    } 

    **self**.tableView.reloadData() 
} 

sowie

if (segue != nil && segue!.identifier == "showDetail") { 
    var selectedIndexPath:NSIndexPath = **self**.tableView.indexPathForSelectedRow() 
    var detailViewController:DetailsViewController = segue!.destinationViewController as! DetailsViewController 
    detailViewController.toDoData = toDoItems.objectAtIndex(selectedIndexPath.row) as! NSDictionary 

} 

Kandidaten (nach XCode):

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return toDoItems.count 
} 


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 

    let toDoItem:NSDictionary = toDoItems.objectAtIndex(indexPath.row) as! NSDictionary 
    cell.textLabel!.text = toDoItem.objectForKey("itemTitel") as? String 

    return cell 
} 
+0

Sind Sie setzen 'delegate' und' dataSource' zum 'tableView'? Sie scheinen nicht mit den Protokollen 'UITableViewDelegate' und' UITableViewDataSource' konform zu sein? – Bannings

+0

@Bannings Wie würde ich es konform machen? – NewBeginnings

+0

Versuchen Sie Folgendes: 'Klasse ShoppingViewController: UIViewController, UITableViewDataSource, UITableViewDelegate' – Bannings

Antwort

1

Ich hatte ein ähnliches Problem nach dem Upgrade auf Xcode 7.1 Beta. Ich frage mich, ob das ein Bug in der Beta ist? Hat jemand eine Lösung gefunden?

UPDATE - so löste ich dieses Problem in meinem Projekt. Ich musste das IBOutlet für meine TableView setzen und dann die reloadData für dieses Objekt tun. z.B. setze IBOutlet auf myItemsTableView, dann rufe self.myItemsTableView.ReloadData() auf und das hat gut funktioniert. Für dieses Projekt benötigte es myItemsTableView und lud neu auf diesen statt auf den generischen Befehl tableView.ReloadData().

hoffe das hilft.

2

Vergewissern Sie sich, dass Sie tableView ordnungsgemäß initialisiert haben. Das hat mein Problem gelöst.

0

Ich hatte ein ähnliches Problem, das ich gelöst habe, indem ich meinen View Controller etwas anderes genannt habe.

Es muss einen View-Controller in SDK namens DetailsViewController oder DetailViewController sein

Verwandte Themen