gpt4 book ai didi

ios - 为什么播放声音/振动会导致崩溃?

转载 作者:行者123 更新时间:2023-11-29 13:01:54 25 4
gpt4 key购买 nike

我使用此方法从 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 循环的任何给定运行中数组中没有两个对象,它就可以完美运行。当有两个(或更多)应用程序在播放一次振动后崩溃。

我猜是因为它试图在另一个声音/哔哔声之上播放一个声音/哔哔声,但我不确定。

有人对此有简单的解决方案吗?

谢谢!

最佳答案

同意 LuisCien 的观点,即从崩溃中发布调试器的内容会有所帮助。

一个(盲目的)建议是在循环的每次迭代期间推迟从 taggedObjectsArray 中删除每个对象,并在快速枚举完成后通过一次调用 执行此操作[taggedObjectsArray removeAllObjects];

从纯粹的效率和可读性的角度来看,使用旨在删除所有内容的库存方法执行一次此操作比调用一次删除 p 次更干净,因为两者最终都得到相同的东西(一个空的 NSMutableArray)

有可能(推测)它也可以解决您的崩溃问题,但发布崩溃日志将有助于更好地做出决定。

关于ios - 为什么播放声音/振动会导致崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com