2013-05-09 2 views
2

J'ai le nom des tableaux ci-dessous « aniStudii » et « discipline », je l'ai fait une capture d'écran ainsi:Parse.com question requête relationnelle

enter image description here

Comme vous pouvez le voir, il y a une relation entre ces tables, à la colonne "materii". La ligne de "aniStudii" avec la colonne "Anul I" a une valeur et l'autre colonne a une valeur différente, les valeurs qui peuvent être trouvées dans le tableau "discipline".

J'utilise cette requête pour obtenir les valeurs, mais tout ce que je reçois est Erreur: mauvais pointeur pour la clé: _p_materii (Code: 106, Version: 1.2.8)

Voici ma requête:

PFQuery *query = [PFQuery queryWithClassName:@"aniStudii"]; //1 
PFObject *aniStudiu = [PFObject objectWithClassName:@"discipline"]; 
[query whereKey:@"materii" equalTo:aniStudiu]; 

[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) { 
    NSLog(@"%@",results); 
}]; 

Où est le problème? Un grand merci d'avance.

Répondre

2

quelque chose comme ça, où vous commencez à partir d'un objet spécifié (que vous devrez peut-être une requête pour trouver):

PFObject *sourceObject = ...; 

PFRelation *relation = [sourceObject relationforKey:@"materii"]; 

[[relation query] findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) { 
    NSLog(@"%@",results); 
}]; 

Pour obtenir le premier objet que vous pouvez effectuer une quelque chose comme la requête:

PFQuery *query = [PFQuery queryWithClassName:@"aniStudii"]; 
[query whereKey:@"numeAn" equalTo:@"######"]; 
+0

'PFObject * sourceObject = [PFObject objectWithClassName: @" aniStudii "]; PFRelation * relation = [sourceObject relationforKey: @ "materii"]; [[requête de requête] findObjectsInBackgroundWithBlock:^(résultats NSArray *, erreur NSError *) { NSLog (@ "% @", résultats); }]; ' Et je reçois ' 09/05/2013 11: 53: 40,438 licentaUser [2873: 1b03] Erreur: un pointeur valide est nécessaire pour l'opérateur associésà (Code: 102, Version: 1.2.8) 2013-05-09 11: 53: 40.440 licentaUser [2873: c07] (null) ' – Carmichael

+1

Vous avez besoin d'une instance de PFObject qui a été récupérée sur le serveur. Vous ne pouvez pas créer une nouvelle instance (ce que fait objectWithClassName), puis interroger la relation. – Wain

+0

PFQuery * query = [PFQuery queryWithClassName: @ "aniStudii"]; PFObject * sourceObject = [requête getObjectWithId: @ "xWMyZ4YEGZ"]; PFRelation * relation = [sourceObject relationforKey: @ "materii"]; [[requête de requête] findObjectsInBackgroundWithBlock:^(résultats NSArray *, erreur NSError *) { NSLog (@ "% @", résultats); }]; Cela fonctionne, mais je dois connaître l'objectId pour que le résultat arrive. Je ne veux pas ça, y a-t-il un moyen de contourner cela? – Carmichael

Questions connexes