Интеграция IOS Framework (задача C) в проект Kony

Я разработал IOS Framework (задача C) и хочу интегрировать его в проект Kony. Вызываемая функция Framework отобразит UIView.

Эта функция использовалась в проекте Kony для загрузки пользовательского интерфейса:

- (void)viewDidLoad {
    [super viewDidLoad];
    GlobalVariables = [GlobalVars sharedInstance];
    CameraBioselfie *cam;
    cam =[[CameraBioselfie alloc] init];
    [self presentViewController:cam animated:YES completion:nil];
    [self.view addSubview:[cam window]];

    dispatch_group_t group = dispatch_group_create(); dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
        while (GlobalVariables.response.length==0 && GlobalVariables.error.length==0){

        }
        if(GlobalVariables.response.length==0){
            self.result =GlobalVariables.error;
        }
        else if([GlobalVariables.response containsString:GlobalVariables.username]){
            self.result = @"Recognized";
        }
        else{
            self.result = GlobalVariables.response;
        }

        NSArray *status = @[self.result];
        [self.callbackfunction executeWithArguments:status];

        dispatch_sync(dispatch_get_main_queue(), ^{
            [self dismissViewControllerAnimated:YES completion:nil];
        });
    });
}

Когда дело доходит до этой строки:

[self.view addSubview:[cam window]];

Я получаю следующую ошибку:

Это приложение модифицирует механизм автоматической компоновки из фонового потока после того, как доступ к механизму был получен из основного потока. Это может привести к повреждению двигателя и странным авариям.

Обратите внимание, что если фреймворк интегрирован в проект цели XCode c и вызывается таким же образом, у меня нет этой проблемы.


person Lama Khoury    schedule 23.11.2017    source источник
comment
Я думаю, что проблема может быть связана с [self presentViewController:cam анимированная:YES завершение:ноль]; [self.view addSubview:[окно камеры]]; эти линии. В 1-й строке вы представляете камеру и снова добавляете ее в следующей строке. Можешь еще раз проверить   -  person user4261201    schedule 28.11.2017
comment
на самом деле это работало, когда я использовал его следующим образом: dispatch_async(dispatch_get_main_queue(), ^{ [self presentViewController:cam анимированный:YES завершение:nil]; }); [self.view addSubview:[окно камеры]];   -  person Lama Khoury    schedule 30.11.2017


Ответы (1)


Один раз попробуйте добавить subview в основной поток, например,

  dispatch_async(dispatch_get_main_queue(), ^{


   [self.view addSubview:[cam window]];

 });
person Ketan Parmar    schedule 23.11.2017