ios - 我如何在 ios 中使用 parse 执行 PFRelation 查询

标签 ios parse-platform relational-database

我在两个表之间创建了关系

LocationClass 表在此表中,我有一列包含位置图像以及另一个表(即 Assets )的关系

![这是location类图片,如果用户选择了locationName,需要获取locationImages(viewRelation)][1]

Assets 表,它包含每个关系的图像现在我的查询是如何从关系数据库获取数据。在这里,如果用户选择一个位置,意味着我需要获取相关位置的一组图像![这是我的 Assets 表,这里需要根据 locationClass 表中所选的位置检索图像][2]

到目前为止,我已经完成了这种格式

PFQuery *queryObj = [PFQuery queryWithClassName:@"LocationClass"];
sharedDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];

// Run the query
[queryObj whereKey:@"locationImages" equalTo:[PFObject objectWithoutDataWithClassName:@"Assets" objectId:@"aAPzhdO4w6"]];

[queryObj findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error)
    {
        [locationArray addObjectsFromArray:objects];
        sharedDelegate.locationsArray = locationArray;
        [locationDropDown reloadData];
    }
}];

在我的单个对象的位置数组中包含

<__NSArrayM 0xaee4eb0>(
<LocationClass:ZtOP9voUak:(null)> {
    LocationId = WilliamsBurgId;
    LocationName = WilliamsBurg;
    locationImages = "<PFRelation: 0xaf53c30>(<00000000>.(null) -> Assets)";
}
)

最佳答案

从PFRelation对象传递数据的解决方案

    // should pass the main table name

    PFQuery *query = [PFQuery queryWithClassName:@"LocationClass"];
    // should pass object id for the selected row
    PFObject *getImageObject = [query getObjectWithId:@"need to pass object id from the maintable"];


    locationImagesArray = [[NSMutableArray alloc]init];

    // To acess the data from the relation object

    PFRelation *relationObj = [getImageObject relationForKey:@"locationImages"];
    PFQuery *query1 = [relationObj query];
    [query1 findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {

        [locationImagesArray addObjectsFromArray:results];
        for (int imgCount = 0; imgCount < [locationImagesArray count]; imgCount ++) {

            PFFile *getImage1 = [[locationImagesArray valueForKey:@"Image"] objectAtIndex:imgCount];
            [getImage1 getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error)
             {

                 if (imageData!=nil) {
                     UIImage *image = [UIImage imageWithData:imageData];
                     activityImage.image = image;

                     NSLog(@"location image output");

                     NSLog(@"location image output : %@", activityImage.image);

                 }
             }];

        }

关于ios - 我如何在 ios 中使用 parse 执行 PFRelation 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480489/

相关文章:

ios - 插入 Firestore 数据时图像重复

objective-c - 使用 int 作为 NSDictionary 键?

android - ParseInstallation 保存后解析 deviceToken 为空

ios - fatal error : unexpectedly found nil while unwrapping an Optional value Parse sign up

mysql - 链接到在线数据库后是否需要在 MS Access 中重新创建关系?

ios - 在 XMPP 框架中在后台发送本地通知

ios - 当我使用 UIActionSheet 确认时删除 TableView 中的行

javascript - 解析iOS SDK : Understanding Cloud Code

performance - 用于高性能、低占用空间的图形查询的库?

mongodb - 如何在 MongoDB 中组织多对多关系