gpt4 book ai didi

ios - 使用 Parse 保存 CLCircularRegion

转载 作者:行者123 更新时间:2023-11-29 02:07:57 28 4
gpt4 key购买 nike

我正在开发一个使用 Parse 和地理围栏的应用程序。我有一个如下所示的地理围栏对象:

地理围栏.h -->

@interface Geofence : PFObject<PFSubclassing>
+ (NSString *) parseClassName;
@property (nonatomic, retain) CLCircularRegion * region;

@end

Gefence.m -->

#import "Geofence.h"
#import <Parse/PFObject+Subclass.h>

@implementation Geofence

+ (void) load {
[self registerSubclass];
}

+ (NSString *)parseClassName {
return @"Geofence";
}

@dynamic region;

@end

在我的 AddGeofenceClass 中,我通过调用我的私有(private)方法 setUpGeofence 来设置地理围栏:

self.region = [self setUpGeofence:self.longitude.doubleValue:self.latitude.doubleValue];

self.region 设置正确,但是当我尝试在此处使用 Parse 设置区域对象时:

[self.geofence setObject:self.region forKey:@"region"];

我得到错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“PFObject 值可能没有类:CLCircularRegion”

有人知道如何解决这个问题吗?

最佳答案

您不能将任何对象类型放入 Parse。如果我创建了一个名为“MyClass”的类(class),我不能只说:

[self.parseObject setObject:instanceOfMyClass forKey:@"MyClass"];

Parse 不知道如何处理它。我建议做的是使用以下方法将中心点保存在 PFGeoPoint 中:

PFGeoPoint *point = [PFGeoPoint geoPointWithLatitude:yourRegionsCenterLatitude longitude:yourRegionsCenterLongitude];
[self.parseObject setObject:point forKey:@"CenterPoint"];

然后你可以在 Parse 中有另一个名为“Radius”的列,你可以将它保存在另一个数字类型的列中,如下所示:

[self.parseObject setObject:[NSNumber numberWithFloat:regionRadiusAsFloat] forKey:@"Radius"];

然后您可以稍后在查询中检索它们并使用中心和半径重建区域。

关于ios - 使用 Parse 保存 CLCircularRegion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29592735/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com