2016-06-16 7 views
0

ich habe ein Problem auf Guss ein PFObject zu meiner individuellen Klasse mit dem Namen „Kunde“leerer Wert auf Guss PFObject in cellForRowAtIndexPath Unterklasse

dies ist schnell Datei für die Klasse

@objc class Customer: PFObject, PFSubclassing { 

    @NSManaged var CompanyName: String 
    @NSManaged var City: String 
    @NSManaged var CountryCode: String 
    @NSManaged var Address: String 
    @NSManaged var Prov: String 
    @NSManaged var Email: String 
    @NSManaged var Vat: String 
    @NSManaged var PaymentDelay: String 
    @NSManaged var ficId: String 
    @NSManaged var owner: Owner 


    override class func initialize() { 

     struct Static { 
      static var onceToken : dispatch_once_t = 0; 
     } 

     dispatch_once(&Static.onceToken){ 
      self.registerSubclass() 
     } 

    } 

    static func parseClassName() -> String { 
     return "Customer" 
    } 
} 

und das ist tableViewDelegate

@objc class CustomersViewController: PFQueryTableViewController { 

    override func queryForTable() -> PFQuery { 

     let query = PFQuery(className: "Customers") 
     query.orderByAscending("CompanyName") 
     query.includeKey("owner") 

     return query 
    } 

    override func objectsDidLoad(error: NSError?) { 
     super.objectsDidLoad(error) 
     //print("\(objects?.count) customers") 
    } 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? { 

     let cell = cellForTableView(tableView) 
     print("obj:\(object?.objectId)") 

     if let customer = object as? Customer { 
      print("customer") 
      let customerLabel = cell.viewWithTag(101) as! UILabel 
      customerLabel.text = customer.CompanyName 
     } 

     return cell; 
    } 

    func cellForTableView(tableView: UITableView) -> PFTableViewCell{ 

     let cellIdentifier = "CustomerCell" 

     if let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? PFTableViewCell{ 
      return cell 
     } else { 
      return PFTableViewCell(style: .Subtitle, reuseIdentifier: cellIdentifier) 
     } 
    } 
} 

Das Problem ist, dass dieser Code nie ausgeführt wird ... warum?

if let customer = object as? Customer { 
       print("customer") 
       let customerLabel = cell.viewWithTag(101) as! UILabel 
       customerLabel.text = customer.CompanyName 
      } 

Es ist mein Fehler oder ein Fehler von PFSubclassing Protokoll?

Die Protokolle sagen, dass das Objekt korrekt herunterladen..es ist ein Wrap-Problem?

obj: Optional ("uZ1v4VTFnt") obj: Optional ("ciCOtYFMif") obj: Optional ("P43mV63o0l") obj: Optional ("YhMWMkklwZ") obj: Optional ("LtKxwHApKZ") obj: Optional ("EXL5tEW9EI") obj: Optional ("I9HoCWqYub")

Danke

+0

Haben Sie initialisiert ' Kundenklasse in der Delegiertenanwendung 'didLaunchWithOption' der App? –

+0

Ja, ich habe versucht, sowohl AppDelegate und Kundenklasse in dispatch_once Funktion zu initialisieren, aber nicht funktionieren. – milonet

Antwort

1

ein Blick auf Klassennamen Haben nicht übereinstimmt

static func parseClassName() -> String { 
    return "Customer" 
} 

let query = PFQuery(className: "Customers") 

Bei der Abfrage Sie mit dem Klassennamen Kunden, während in Parse-Klassennamen Sie einen Kunden

Auch der Rückkehr, wie ich im Kommentar erwähnen Sie Parse-Objekt in AppDelegate initialisieren

+0

Ich kann es nicht glauben! :) – milonet

Verwandte Themen