我用两个不同的应用尝试了两次,我得到同样的东西。我有一个设置UIImagePIckerController实例,如下所示:
- (IBAction)addImage:(UIBarButtonItem *)sender {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
if ([mediaTypes containsObject:(NSString *)kUTTypeImage]) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage];
picker.allowsEditing = NO;
picker.showsCameraControls = NO;
[self presentViewController: picker animated:YES completion:NULL];
}
[..]
}
这是第二次。在第一次我设置了自定义叠加来运行快门和其他功能。一切运行正常,但我一直在控制台上出错:
<Error>: CGAffineTransformInvert: singular matrix.
当我运行应用程序时,每次我在相机启动时旋转(或移动哪些信号旋转)设备{something happens here}
。我在我的iPhone 4和iPad Mini上尝试了相同的结果。经过大量的挖掘,我发现这只发生在
picker.showsCameraControls = NO;
如果我把
picker.showsCameraControls = YES;
然后我没有收到任何消息(虽然我的自定义叠加层也被隐藏了)。确保它不是自定义覆盖本身,我试着将其删除,它仍然会给出错误消息。
有人对我应该怎么做有任何想法吗?
答案 0 :(得分:1)
我相信它基本上是良性的,因为Apple自己的PhotoPicker示例代码会产生此警告。旋转与矩阵有关,虽然我不确定哪个矩阵特别是旋转,但是对于具有零行列式(类似于除以零)的矩阵执行操作被认为是数学违规。这样的矩阵不可逆或“单数”:
http://en.wikipedia.org/wiki/Rotation_matrix