我有一个iOS应用程序,允许用户将GeoPoints保存到Parse.com数据库表。它是一个谷歌地图应用程序,允许用户提交拉特/长坐标,一旦点数被管理员类型的人批准,这些坐标将显示在地图上。
我在Parse.com上创建了一个名为Point的表来保存此信息,该表还包含以下字段以及为您创建的默认字段:
当创建表中的新行(用户提交新点)时,“approved”始终设置为“0”,“point”将包含已上载点的Lat / Long。
管理员批准“点数”后,“已批准”设为“1”。
我查询表格以显示已批准的所有GeoPoints(设置为“1”)。
我可以获取已设置为“1”的所有行,但我不知道如何访问“点”字段。我需要为每一行获取“点”以将其显示在地图上。
以下是我要查询表格中所有“已批准”设置为“1”的点数
// Query the Database to get Points
PFQuery *query = [PFQuery queryWithClassName:@"Point"];
[query whereKey:@"approved" equalTo:@"0"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
if (!error)
{
// The find was successful
NSLog(@"Successfully Retrieved %d Number of Points", objects.count);
// Display the found Points as Markers
for (PFObject *object in objects)
{
NSLog(@"%@", object.objectId);
// Tried to do this but does not work
NSLog(@"%@", object.point);
}
}
else
{
// Show errors
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
一旦我有了一个对象数组,我尝试了以下内容,但这不起作用。
// Tried to do this but does not work
NSLog(@"%@", object.point);
有人可以帮忙吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
您还可以使用子类化以方便使用。请参阅iOS Guide Subclassing。不要忘记在AppDelegate中注册子类。
//Point.h
#import "Parse/Parse.h"
@interface Point : PFObject <PFSubclassing>
@property (nonatomic) BOOL approved;
@property (nonatomic, strong) PFGeoPoint *geoPoint;
+ (void)findApprovedPointsWithBlock:(PFArrayResultBlock)resultBlock;
@end
//Point.m
#import "Point.h"
#import <Parse/PFObject+Subclass.h>
@implementation Point
@dynamic approved;
@dynamic geoPoint;
+ (NSString *)parseClassName {
return @"Point";
}
+ (void)findApprovedPointsWithBlock:(PFArrayResultBlock)resultBlock {
PFQuery *query = [PFQuery queryWithClassName:@"Point"];
[query whereKey:@"approved" equalTo:@YES];
[query findObjectsInBackgroundWithBlock:^(NSArray *points, NSError *error) {
resultBlock(points, error);
}];
}
@end
// Somewhere in your code
[Point findApprovedPointsWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
for (Point *object in objects) {
NSLog(@"%@", object.objectId);
NSLog(@"%@", object.geoPoint);
}
}
else {
}
}];