8

2 つの異なるアプリでこれを 2 回試しましたが、同じ結果が得られました。次のように 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];

        }           
 [..]   

}

これが2番目でした。最初に、シャッターやその他の機能を実行するカスタム オーバーレイをセットアップしました。すべて正常に動作しますが、コンソールにエラーが表示され続けます:

 <Error>: CGAffineTransformInvert: singular matrix.

アプリを実行すると、カメラがアップしている間、デバイスを回転させる (または回転信号を移動する) たびに{something happens here}。iPhone 4 と iPad Mini の両方で試してみましたが、結果は同じでした。多くの掘り下げた後、これは次の場合にのみ発生することがわかりました

picker.showsCameraControls = NO;

私が入れたら

picker.showsCameraControls = YES;

その後、メッセージは表示されません (ただし、カスタム オーバーレイも非表示になっています)。カスタムオーバーレイ自体ではないことを確認して、それを除外しようとしましたが、それでもエラーメッセージが表示されます。

これについて私が何をすべきかについて誰かが何か考えを持っていますか?

4

1 に答える 1

1

Apple 自身の PhotoPicker サンプル コードがこの警告を生成するため、これはほとんど無害であると私は信じています。回転は行列と関係があり、特にどの行列が回転されているかはわかりませんが、行列式がゼロの行列で演算を実行することは数学違反と見なされます (ゼロによる除算と同様)。このような行列は、可逆または「特異」ではありません。

http://en.wikipedia.org/wiki/Rotation_matrix

http://en.wikipedia.org/wiki/Determinant

http://en.wikipedia.org/wiki/Singular_matrix#singular

于 2012-12-31T02:35:00.300 に答える