Pregunta

Estoy tratando de analizar algunos objetos de mi base de datos.Estoy usando parse.com como servicio web. El siguiente código me devuelve un objeto basado en 4 consultas, 2 de ellos siendo compuesto.

La variable "MEJERA" debe ser igual al indexación o "6" La variable "ReuckSex" debe ser igual al "sexo" o "2" La variable "isaviable" debe ser igual a sí La variable "Autor" debe ser diferente del usuario.UserName

Básicamente, estoy tratando de implementar una consulta con 2 o condiciones y 2 y condiciones.

El siguiente código me da un resultado equivocado, no hay excepciones ni cosas así, solo un tipo de objeto incorrecto.Estoy seguro de que es un problema de sintaxis, pero no puedo descubrir cómo escribir correctamente esto ... Si solo usé 1 consulta de compuesto y luego agregue los 2 y las consultas a las que obtengo un resultado derecho, pero luego extraño 1 filtro...

PFQuery *queryAge1 = [PFQuery queryWithClassName:@"MeetingObject"];
[queryAge1 whereKey:@"meetingAge" equalTo:indexAge ];
PFQuery *queryAge2 = [PFQuery queryWithClassName:@"MeetingObject"];
[queryAge2 whereKey:@"meetingAge" equalTo:@"6"];
PFQuery *queryCompound = [PFQuery orQueryWithSubqueries:@[queryAge1,queryAge2]];

PFQuery *querySex1 = [PFQuery queryWithClassName:@"MeetingObject"];
[querySex1 whereKey:@"meetingSex" equalTo:user[@"sex"]];
PFQuery *querySex2 = [PFQuery queryWithClassName:@"MeetingObject"];
[querySex2 whereKey:@"meetingSex" equalTo:@"2"];
queryCompound = [PFQuery orQueryWithSubqueries:@[querySex1,querySex2]];

[queryCompound whereKey:@"isAvaiable" equalTo:[NSNumber numberWithBool:YES]];
[queryCompound whereKey:@"author" notEqualTo:user.username];


[queryCompound findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
}

¿Fue útil?

Solución

En su línea ... queryCompound = [PFQuery orQueryWithSubqueries:@[querySex1,querySex2]];, está creando una nueva consulta que ignora todas las cosas de edad.

editar

usted está complicando esto.

Puedes hacer esto de esta manera ...

PFQuery *query = [PFQuery queryWithClassName:@"MeetingObject"];
[query whereKey:@"meetingAge" containedIn:@[@"6", indexAge]];
[query whereKey:@"meetingSex" containedIn:@[@"2", user[@"sex"]]];
[query whereKey:@"isAvaiable" equalTo:[NSNumber numberWithBool:YES]];
[query whereKey:@"author" notEqualTo:user.username];

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
}

Esto cogerá todas las opciones que está buscando.

también, al igual que una nota rápida.Elija sus nombres de variables para hacerlos más legibles.Si todos comienzan con la palabra query, es difícil distinguirlos.También hazlos descriptivos.queryAge1 y queryAge2 hace que sea más difícil entender lo que están haciendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top