我想将MKCoordinateRegion
传递给一个函数,该函数反过来将其发送到服务器进行分析。
然而,由于语法错误Expected a type
,我无法将其传递给函数。
我猜这是因为MKCoordinateRegion
是C
结构,C
结构不能作为参数传递给Objective-C
的方法。
将此信息作为单个变量传递给方法的正确方法是什么?
谢谢。//
更新:
我找到解决办法了。由于某些原因,xcode无法识别特定.h文件的依赖关系。我必须将#import <MapKit/MapKit.h>
放在.h文件中,尽管它已经在前缀中指定了。PSH和它被识别并在其他文件中使用…可能是xcode的bug…
也许你在键入mkcoordinaterregion后加了星号?下面的代码是:
- (void)setRegion
{
MKCoordinateRegion region;
region.center.latitude = self.latitudeFromServer;
region.center.longitude = self.longitudeFromServer;
region.span.latitudeDelta = 0.112872;
region.span.longitudeDelta = 0.112872;
[self sendRegion:region]; //sending to method!
}
- (void)sendRegion:(MKCoordinateRegion)region
{
NSLog(@"upload region to server");
}
我使用NSData将mkcoordinatereregion传递给委托方法,所有工作都很好(也做类似于传递MKMapRect)
转换为NSData:
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(mapPointLoc, 2000, 2000);
NSData *data = [NSData dataWithBytes:®ion length:sizeof(MKCoordinateRegion)];
[self.delegate mapViewUpdateRegion:data];
和读取NSData:
- (void)mapViewUpdateRegion:(NSData *)regionData{
MKCoordinateRegion region;
[regionData getBytes:®ion];
[self.mapView setRegion:region animated:YES];
}