2016-03-25 5 views
0
Wert zuweisen

Ich habe die folgende Klasse:Objekt-Eigenschaft null trotz ihm

class Event: NSObject { 


    var eventID :String! 
    var name: String! 
init(name: String,eventID: String) { 

     self.eventID = eventID 
     self.name = name 
    } 

Hier in meiner Ansicht Im eine Instanz meiner Klasse mit

 var selectedEvent: Event? 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

       let indexPath = tableView.indexPathForSelectedRow! 

       print(listOfEvents[indexPath.row].eventID) // print my string 
       selectedEvent.eventID = listOfEvents[indexPath.row].eventID 
       print(selectedEvent.eventID) //print nil 
    } 

, was mache ich falsch ??? danke für die Hilfe

Antwort

0

Wenn Sie Ihren Code in einen Spielplatz setzen erhalten Sie:

ist ein Fehler bei der Linie

selectedEvent.eventID = listOfEvents[indexPath.row].eventID 

Weil Ihre Variable selectedevent nill ist, da Sie es erklärt habe, aber nicht initialisiert es. Um es zu machen, ersetzen Sie die Zeile

var selectedEvent: Event? 

mit

var selectedEvent = Event(name: "YourEventName", eventID: listOfEvents[indexPath.row].eventID) 

als Oleg erwähnt.

0

Betrachten Sie Ihr Objekt Event. Es ist nill.

selectedEvent = Event(name: "Test", listOfEvents[indexPath.row].eventID) 
0

Wenn listOfEvents ein Array von Event Objekte war, würden Sie tun:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    selectedEvent = listOfEvents[indexPath.row] 
} 
Verwandte Themen