我的应用程序过去在iOS 6.2上运行得很好。自从我们更新到iOS7当我们交换相机(这是我们之前已经做的),它崩溃了。
这是我的密码:
-(void) swapCameras
{
if (self.cameraDevice == UIImagePickerControllerCameraDeviceRear)
{
[self setCameraDevice:UIImagePickerControllerCameraDeviceFront];
}
else
{
[self setCameraDevice:UIImagePickerControllerCameraDeviceRear];
}
}如果我用UIImagePickerControllerCameraDeviceFront启动相机,它就会工作得很好。但是,如果我从UIImagePickerControllerCameraDeviceRear开始,或者在运行时尝试更改它,它就会崩溃。
这是iOS 7上的错误吗?是其他人出了车祸吗?
提前谢谢。
发布于 2013-12-09 12:45:03
如果有人面临同样的问题,我通过更新iOS版本找到了解决方案。这个错误发生在我使用iOS 7.0.0时。我把它更新为iOS 7.0.4,它不再崩溃了。这个错误可能是苹果在这两个版本之间的任何更新中修复的。
此外,由于这些更新不是强制性的,而且有些用户可能还没有更新到最新的iOS版本,所以我不得不在代码中使用一些技巧,以获得当前的iOS版本并避免崩溃。为此,我使用了以下宏:
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)然后,我在代码中像这样使用它:
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") && SYSTEM_VERSION_LESS_THAN(@"7.0.4"))
{
// Do your work to avoid crash
}https://stackoverflow.com/questions/20338058
复制相似问题