2013-03-25 78 views
0

我正在制作一个应用程序,该应用程序具有允许用户创建基于位置的通知以在应用程序到达/离开特定位置时打开/关闭应用程序的功能。iOS基于位置的提醒

提醒被创建(如第一张图片所示),但不会在到达/离开时触发。 enter image description here

如果另一方面,用户点击该提示,它种增加了地址(上图号2所示),并从那里触发 enter image description here

我在想,如果有一个让提醒应用程序识别地址或任何其他建议的方式,这可能有助于我解决这一特殊问题。

谢谢你在前进,

BR, 韩城

,我使用的代码是:

EKReminder *reminder = [EKReminder reminderWithEventStore:_eventStore]; 
reminder.calendar = [_eventStore defaultCalendarForNewReminders]; 

EKStructuredLocation *location; 
NSError *error = nil; 
EKAlarm *alarm = [[EKAlarm alloc]init]; 
reminder.title = @"Turn off Test App"; 
location = [EKStructuredLocation locationWithTitle:self.addressTextField.text]; 
[self.addressTextField resignFirstResponder]; 
alarm.proximity = EKAlarmProximityEnter; 
alarm.structuredLocation = location; 
[reminder addAlarm:alarm]; 

[_eventStore saveReminder:reminder commit:YES error:&error]; 
+0

显示你的代码!您如何实际创建提醒的基于位置的闹钟? – matt 2013-03-25 19:36:32

+0

将代码添加到主文章 – rcresnik 2013-03-26 10:16:33

回答

3

问题是您未能设置您的EKStructuredLocation的geolocationradius。它只有一个标题。这还不足以告诉警报应该在哪里!

例子:

location.geoLocation = 
    [[CLLocation alloc] initWithLatitude:latit longitude:longit]; 
location.radius = 10*1000; // metres 
+0

就是这样! 感谢您的帮助:) – rcresnik 2013-03-26 19:14:09

+0

您打赌。获得的教训(我希望):当你问一个问题时,发布你的代码! – matt 2013-03-26 20:25:06

+0

我认为代码是好的,因为我正在通过一个教程,但它不包括这部分。将通知作者以及... :) – rcresnik 2013-03-27 08:36:42

0

CLLocationManager -startMonitoringForRegion:CLRegion类引用。