Ios 使用sharedmanager后发出警报

Ios 使用sharedmanager后发出警报,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,这是我的密码 audioViewController *voiceRecorder = [audioViewController sharedManager]; [voiceRecorder stopRecording]; NSString *msg = [NSString stringWithFormat:@"Want to logout?"]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Info"

这是我的密码

audioViewController *voiceRecorder = [audioViewController sharedManager];
[voiceRecorder stopRecording];
NSString *msg = [NSString stringWithFormat:@"Want to logout?"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Info" 
                                                message:msg 
                                               delegate:self 
                                      cancelButtonTitle:@"No" 
                                      otherButtonTitles:@"Yes", nil];
alert.tag = 100;
[alert show];

我正在我的一个视图控制器中调用sharedManager。问题是,我的alertview在sharedManager方法执行之前运行,如果您检查我的代码,我调用了“StopReording”方法,但是当我运行代码时,它在显示alert后工作。任何人都知道,只有在方法返回某些内容后,我如何显示警报。

您似乎对方法运行顺序和警报表示顺序感到困惑。这些方法必须按照代码指定的顺序运行。您在屏幕上看到的是两个警报,一个(停止)首先显示,另一个(注销)紧接着显示

通常,您不应该同时显示两个警报。如果它们涉及不同的事情,当然不会


显示第一个警报,然后等待收到答复(使用委托方法)。用户回答后,决定下一步要做什么,并显示第二个警报或继续执行其他操作。

sharedManager
中会发生什么?就像您看到我上面的代码一样,我被称为[voiceRecorder stopRecording];初始化sharedmanager之后。问题是这个方法是在显示出它无论如何都不可能的情况下调用的。当您说“调用了该方法”时,您的意思是在该方法的主体上放置了一个断点?是的,我也在stoprecording方法中添加了alert msg,但当运行此脚本时,首先调用stoprecording后的alert msg,然后仅在stoprecording方法中显示alert msg。换句话说,我可以说,stoprecording方法只有在执行所有脚本之后才被调用。这与sharedInstance有关。请将您的停止录制代码片段放在这里,只是想检查是否有其他线程运行该线程