如何正确地将MKCoordinateRegion传递给函数?

时间:2013-05-08 23:26:57

标签: objective-c xcode mkcoordinateregion

我想将MKCoordinateRegion传递给一个函数,该函数又将其发送到服务器进行分析。

但由于语法错误Expected a type,我无法将其传递给函数。

我猜是因为MKCoordinateRegionC结构,而C结构不能作为参数传递给Objective-C中的方法。

将此信息作为单个变量传递给方法的正确方法是什么?

谢谢。


更新:
我找到了解决方案。由于某种原因,xcode没有识别该特定.h文件的依赖项。我必须将#import <MapKit/MapKit.h>放在.h文件中,即使它已在prefix.psh中指定并且已在其他文件中识别并使用...可能是xcode中的错误......

2 个答案:

答案 0 :(得分:2)

也许你在输入MKCoordinateRegion后输了星号? 此代码有效:

- (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");
}

答案 1 :(得分:0)

我使用NSData将MKCoordinateRegion传递给委托方法,一切正常(也类似于传递MKMapRect)

转换为NSData:

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(mapPointLoc, 2000, 2000);
NSData *data = [NSData dataWithBytes:&region length:sizeof(MKCoordinateRegion)];
[self.delegate mapViewUpdateRegion:data];

并从NSData读取:

- (void)mapViewUpdateRegion:(NSData *)regionData{
    MKCoordinateRegion region;
    [regionData getBytes:&region];
    [self.mapView setRegion:region animated:YES];

}