我设置了代码,因此我的应用程序不断循环通过加速度计数据以确定手机所在的位置。我希望能够获取手机的 Z 坐标并根据它们调用动作。
现在我有这个:
if (.3 > filter.z && filter.z > -.3){
NSLog(@"STRAIGHT = %f", filter.z);
}
else if (1.3 > filter.z && filter.z > .7){
NSLog(@"DOWN = %f", filter.z);
[self performSelector:@selector(loadNextFlag) withObject:nil
afterDelay:1.0];
}
else if (-.4 > filter.z && filter.z > -1.3){
NSLog(@"UP = %f", filter.z);
}
此代码有效。它知道手机面向的方向并正确记录信息。不起作用的是 performSelector。由于当我向下倾斜手机时加速度计会不断刷新其坐标信息,它会在几秒钟内多次调用 performSelector 操作,从而导致应用程序崩溃。有谁知道我每次向下倾斜手机时只能调用一次动作,同时仍跟踪 Z 坐标的方法。