我正在开发一个应用程序,使用Parse和Geof击剑。我有一个地学对象,看起来是这样的:
Geofence.h ->
@interface Geofence : PFObject<PFSubclassing>
+ (NSString *) parseClassName;
@property (nonatomic, retain) CLCircularRegion * region;
@endGefence.m ->
#import "Geofence.h"
#import <Parse/PFObject+Subclass.h>
@implementation Geofence
+ (void) load {
[self registerSubclass];
}
+ (NSString *)parseClassName {
return @"Geofence";
}
@dynamic region;
@end在我的AddGeofenceClass中,我通过调用私有方法setUpGeofence来设置地理位置:
self.region = [self setUpGeofence:self.longitude.doubleValue:self.latitude.doubleValue];self.region的设置是正确的,但是当我尝试在这里使用Parse设置region对象时:
[self.geofence setObject:self.region forKey:@"region"];我知道错误:
由于“NSInvalidArgumentException”异常终止应用程序,原因:“PFObject值可能没有类:CLCircularRegion”
有人知道怎么解决这个问题吗?
发布于 2015-04-12 20:45:29
您不能在Parse中放置任何对象类型。如果我做了一个名为"MyClass“的类,我不能只说:
[self.parseObject setObject:instanceOfMyClass forKey:@"MyClass"];解析不知道如何处理它。我建议使用以下方法保存PFGeoPoint中的中心点:
PFGeoPoint *point = [PFGeoPoint geoPointWithLatitude:yourRegionsCenterLatitude longitude:yourRegionsCenterLongitude];
[self.parseObject setObject:point forKey:@"CenterPoint"];然后,您可以在Parse中另有一个名为"Radius“的列,您可以将它保存在另一列中,该列的类型如下:
[self.parseObject setObject:[NSNumber numberWithFloat:regionRadiusAsFloat] forKey:@"Radius"];然后,您可以在查询中检索它们,然后使用中心和半径重建区域。
https://stackoverflow.com/questions/29592735
复制相似问题