如何一次性获取包含所有字段和相关对象的 PFObject?



我有一个PFObjectsNSArray,并且希望一次性获取与该数组中的对象相关的所有数据,因此之后不需要进行新的调用来解析。我该怎么做?

我的答案是假设您想要的数组包含在PFObject中。您可以查询此对象,并使用include键来包含该键中包含的数组。

    PFQuery *query = [PFQuery queryWithClassName:@"<object's class name>"];
    [query whereKey:@"objectId" equalTo:object.objectId];
    [query includeKey:@"<array key>"];

如果数组中的对象有指向其中其他对象的指针,则可以使用点语法一次获取所有内容。

   [query includeKey@"<array key>.<pointer in object from array key>"];

设置好后运行查询,您应该检索一个对象的数组,因为objectId是唯一的,在这个对象中将是数组。

   [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
        if(error){
            // handle error
        }else{
            if([objects count] > 0){
                PFObject *object = objects[0]; // Only one matching object to query
                NSArray *array = object[@"<array key>"]; // Array you want
            }
        }
    }];

您可以使用PFObject的方法家族:

+(void)fetchAll:(NSArray*)objects

查看PFObject关于这些方法的文档https://parse.com/docs/ios/api/Classes/PFObject.html#//api/name/fetchAll:

到目前为止,我得到的查询可能是-

 PFQuery *query = [PFQuery queryWithClassName:@"CLASS_NAME"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
 {
     if (!error && objects.count != 0)
     {
         NSLog(@"Successfully retrieved: %@", objects);
         for(int i=0; i< objects.count; i--)
         {
             NSDictionary *dict = [objects objectAtIndex:i];
             self.label = [dict objectForKey:@"PROPERTY_KEY"]; //Just example
 /* Also modify this code as per you want to fetch properties of some or all */
 /* Do as you want to with properties and also change key as per need of column/property you want */
         }
     }
 }];

通过这种方式,您将获得数组,并根据需要获取fetch。

最新更新