我在两个表之间创建了一个关系
LocationClass表在这个表中,我有一个列的位置图像与另一个表的关系,即。,Assets
![这是位置类图像,如果用户选择了locationName,需要获取locationImages(viewRelation)] [1]
资产表,它包含每个关系的图像现在我的查询是如何从关系数据库获取数据。这里如果用户选择一个位置意味着我需要为相关位置获取一组图像![这是我的资产表,这里需要根据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)";
}
)
答案 0 :(得分:2)
从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);
}
}];
}