我使用此方法从 locationManager 获取位置更新:
- (void) locationManager:(CLLocationManager *) manager
didUpdateLocations:(NSArray *)locations
{
for (CLLocation *p in taggedObjectsArray) {
CLLocationDistance distance = [p distanceFromLocation: newLocation];
if(distance < 10.00){
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
// if warning setting is set to sound, play sound
if (beep) {
AudioServicesPlaySystemSound(beep);
}
[taggedObjectsArray removeObject:p];;
}
}
taggedObjectsArray 包含指向 Cllocation 对象的指针
现在,只要在通过 for 循环的任何给定运行中数组中没有两个对象,它就可以完美地工作。当有两个(或更多)应用程序在播放一次振动后崩溃。
我猜它是因为它试图在另一个声音/哔声之上播放声音/哔声,但我不确定。
有人对此有简单的解决方案吗?
谢谢!