Objective c 如何在iPhone上获取不同监控区域的单独警报?

Objective c 如何在iPhone上获取不同监控区域的单独警报?,objective-c,xcode,ios4,mkmapview,core-location,Objective C,Xcode,Ios4,Mkmapview,Core Location,我试图在输入5个不同的区域时创建不同的警报。我现在正在设置这样的区域 //Monitoring a Region CLLocationCoordinate2D layerCoords = CLLocationCoordinate2DMake(53.385909, -6.260067); CLRegion *layerRoom = [[CLRegion alloc] initCircularRegionWithCent

我试图在输入5个不同的区域时创建不同的警报。我现在正在设置这样的区域

//Monitoring a Region
        CLLocationCoordinate2D layerCoords =
        CLLocationCoordinate2DMake(53.385909, -6.260067);
        CLRegion *layerRoom = [[CLRegion alloc]
                initCircularRegionWithCenter:layerCoords
                                      radius:100
                                identifier:@"layerRoom"];

        // Start monitoring for our CLRegion using best accuracy
        [locationManager startMonitoringForRegion:layerRoom
                    desiredAccuracy:kCLLocationAccuracyBest];
我可以很容易地再设置5个警报,但对于警报,我不太确定该怎么办。我目前正在使用这个方法

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {

    UIAlertView *locationAlert = [[UIAlertView alloc]
                                    initWithTitle:@"Success!" message:@"You have arrived!"  delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];


    // Display the alert
    [locationAlert show];

}

我不知道如何为每个地区定制它。对不起,如果这是一个愚蠢的问题,我是一个完全的初学者。有人能帮忙吗?非常感谢

didEnterRegion为您提供了一个区域参数。您可以使用它来检查是roomRegion还是其他区域。将它们放在数组、字典或其他任何地方,以便与您输入的区域进行比较。

您的意思是,如果([region containsCoordinate:layerCoords]==YES){Do something}那么我的第一次尝试更像是如果(region==layerRoom){Do something}但这取决于您保留对layerRoom的引用,并返回对已触发区域的引用,而不是具有相同边界的新区域的引用。只要你的区域不超过一圈,你的方法看起来应该可以很好地工作。谢谢,@Craig!我尝试了if(region==layerRoom),但它无法识别layerRoom。可能是因为我在-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil方法中设置了区域监视。当警报发生在-(void)locationManager:(CLLocationManager*)manager didEnterRegion:(CLRegion*)区域方法中时。我试着从方法中去掉区域监控,但这也会导致问题。不确定我应该把它放在哪里?如果你打算在两个函数中使用layerRoom,你不能期望在一个函数中声明它,而另一个函数知道它。变量范围(如其他函数了解变量的范围)是在处理iOS时应该已经涉及的内容。看看MKMapView,该变量可用于所有函数,因为它是在头中声明的,而不是在一个函数中声明的。我想我们离题了。现在用containsCoordinate试试你们的想法,然后看看“范围”。以防万一人们用它作为参考,若(region==namedregion)不起作用。我认为这与共享资源有关,并且无法进行指针级别的比较。但是如果([区域包含坐标:yourCoordinates])起作用。