AVAudioSession sharedInstance requestRecordPermission:^(BOOL已授予)

Jas*_*eet 4 iphone objective-c avaudiorecorder

这是我的代码:

-(void) recordButton{

    [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
    NSLog(@"value of the grant is :: %hhd", granted);
    if (granted)
    {
          // perform operation recording
          // perfrom some operation on UI(changing labels and all)
    }
    else
    {
      // do operation
    }

   }];

}
Run Code Online (Sandbox Code Playgroud)

问题是,当我第一次运行我的应用程序时,在隐私中重置并且我的应用程序调用上面定义的方法后,会产生麻烦.

当我的应用程序第一次运行时,弹出允许/禁止麦克风乱码(操作系统定义)方法.当我点击允许它显示布尔值(授予correclty).正确进入IF内部.正确开始录制.但UI冻结了.并且IF的第二部分即改变标签名称,直到执行时才会执行计时器(由我添加停止方法和记录).

请帮忙.我可以感觉到我的第二部分IF(更改UI标签不在前台工作),即后台工作正常运行.请帮助,我不是专家.2个月前启动了iOS编程.

Jas*_*eet 9

我得到了答案.我的问题是,当程序达到If(已授予)时,它正在执行录制功能但未在UI上执行(更改标签和所有).

问题是,整个代码被视为一个单独的线程,并在后台执行.这就是录制工作正常的原因(因为它是后台进程).
但UI(更改标签)是一项前台任务.

所以为此,我必须在MAIN队列上的一个线程下执行UI CODE.现在它完美无缺.