Сбой приложения при закрытии UIViewController с помощью ARKit - PullRequest
0 голосов
/ 27 февраля 2019

Я изучаю приложение с помощью ARKit.У меня есть UIViewcontroller с ARKit, который является root для UINavigationController.Когда я отклоняю это, я получаю следующую ошибку:

Cannot remove an observer <ARImageSensor 0x1d02c8110> for the key path "deviceWhiteBalanceGains" from <AVCaptureFigVideoDevice 0x1047827e0> because it is not registered as an observer.
(null)

Как я могу это исправить?

Код моего ВК следующий:

#import "ARViewController.h"
#import <ARKit/ARKit.h>

@interface ARViewController () <ARSCNViewDelegate, ARSessionDelegate>
@property(nonatomic, strong) IBOutlet ARSCNView *sceneView;
@property(nonatomic, strong) ARAnchor *arAnchor;
@end

@implementation ARViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.sceneView.delegate = self;

    UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonTapped)];
    self.navigationItem.leftBarButtonItem = cancelButtonItem;
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    ARWorldTrackingConfiguration *configuration = [ARWorldTrackingConfiguration new];
    [configuration setWorldAlignment:ARWorldAlignmentGravity];
    [configuration setPlaneDetection:ARPlaneDetectionHorizontal];

    [self.sceneView.session runWithConfiguration:configuration];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.sceneView.session pause];
}

- (void)cancelButtonTapped {
    [self dismissViewControllerAnimated:YES completion:nil];
}

#pragma mark - ARSCNViewDelegate

- (SCNNode *)renderer:(id<SCNSceneRenderer>)renderer nodeForAnchor:(ARAnchor *)anchor {
    // some my code
}

@end

Я не вижу ничего, что могло бы вызвать проблему.

...