2015-07-06 20 views
10

Vorrei aggiungere un campo puntatore alla sottoclasse PFUser, gestita dalla sottoclasse PFUser. Idealmente, l'oggetto puntatore sarebbe disponibile automaticamente nella sottoclasse PFUser - salvato e recuperato quando l'utente viene salvato e recuperato.Aggiunta di un campo puntatore a una sottoclasse di PFUser

Con qualsiasi altra sottoclasse di PFObject, aggiungerei semplicemente una proprietà Dynamic e assicurati di usare includeKey durante l'esecuzione di query.

Tuttavia, per una sottoclasse PFUser, non effettuerò mai query. Come posso forzare il recupero dell'oggetto puntatore?

+0

Avete usato PFUser * userObjRef = [PFUser currentUser]; per ottenere riferimenti a PFUser ..! – Vidhyanand

+0

Ho un riferimento all'utente corrente, ciò di cui ho bisogno è riferimento a un oggetto puntatore memorizzato in una colonna sull'utente. – cdstamper

+0

NSString * columnIdStr = [userObjRef objectForKey: @ "column_id_Ref"]; E 'utile ..! Qui columnIdStr è il riferimento ...! – Vidhyanand

risposta

4

E 'un semplice, processo in due fasi in Objective-C, anche con una sottoclasse:

  1. Creare un oggetto locale che rappresenta il puntatore, anche se non si hanno ancora i dati
  2. Usa fetchIfNeededInBackground per compilare l'oggetto puntatore localmente

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

riferimento a PFUser

PFUser *userObjRef = [PFUser currentUser]; 

Ottenere riferimento oggetto

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

Recupero dell'oggetto sottostante relativa a column_id

[[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"]; 
      } 
     }]; 

    }]; 

Spero che ti aiuta ...!

Problemi correlati