2015-07-06 9 views
10

Ich möchte meiner PFUser-Unterklasse, die von der PFUser-Unterklasse verwaltet wird, ein Zeigerfeld hinzufügen. Idealerweise wäre das Zeigerobjekt automatisch in der PFUser-Unterklasse verfügbar - gespeichert und abgerufen, wenn der Benutzer gespeichert und abgerufen wird.Hinzufügen eines Zeigerfeldes zu einer Unterklasse von PFUser

Mit jeder anderen PFObject-Unterklasse würde ich einfach eine dynamische Eigenschaft hinzufügen und sicherstellen, dass includeKey bei der Abfrage verwendet wird.

Wie auch immer, für eine PFUser-Unterklasse werde ich nie wirklich abfragen. Wie kann ich das Zeigerobjekt zum Abrufen zwingen?

+0

Haben Sie PFUser * userObjRef = [PFUser currentUser]; um einen Verweis auf PFUser zu bekommen ..! – Vidhyanand

+0

Ich habe Bezug auf den aktuellen Benutzer, was ich brauche, ist Verweis auf ein Zeigerobjekt in einer Spalte des Benutzers gespeichert. – cdstamper

+0

NSString * columnIdStr = [userObjRef objectForKey: @ "column_id_Ref"]; Ist es hilfreich ..! Hier ist columnIdStr die Referenz ...! – Vidhyanand

Antwort

4

Es ist ein einfaches, zweistufigen Verfahren in Objective-C, sogar mit einem subclassed:

  1. ein lokales Objekt erstellen, das den Zeiger darstellt, auch wenn Sie die Daten noch nicht haben
  2. Verwenden fetchIfNeededInBackground aufzufüllen das Zeigerobjekt lokal

    PFObject *yourPointerObject = [[PFUser currentUser] objectForKey"pointerKey"]; 
    [yourPointerObject fetchIfNeededInBackground]; 
    
0

Verweis auf PFUser

PFUser *userObjRef = [PFUser currentUser]; 

Erste Objektverweis

NSString *columnIdStr = [userObjRef objectForKey:@"column_id_Ref"]; 

das darunter liegende Objekt Fetching Zusammenhang

[[PFUser currentUser] refreshInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
    [[object objectForKey:@"column_id_Ref"] fetchInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
     if (!error){ 
      self.nameLabel.text = [object objectForKey:@"obj_name_ref"]; 
     } 
    }]; 

}]; 

[[PFUser currentUser] fetchInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
     [[object objectForKey:@"column_id_Ref"] fetchInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
      if (!error){ 
       self.nameLabel.text = [object objectForKey:@"obj_name_ref"]; 
      } 
     }]; 

    }]; 

Hoffe, es hilft Ihnen column_id ...!

Verwandte Themen