Ios 调用UIAlertView委托方法时崩溃

Ios 调用UIAlertView委托方法时崩溃,ios,delegates,uialertview,Ios,Delegates,Uialertview,我有一个viewController类a,它有一个创建UIAlertView并实现UIAlertView委托方法的方法,还有一个NSObject模型类B,用于处理日志记录和联网。在B类中,只分配一个A类实例,然后调用A的方法。警报视图正常显示,但当我单击“确定”按钮时,它崩溃了。我想点击“确定”按钮重新打开键盘,让用户在失败后继续登录。(已在头文件中声明UIAlertView协议。) 在viewcontroller类别A中: - (void)displayAlertViewString:(NSS

我有一个viewController类a,它有一个创建UIAlertView并实现UIAlertView委托方法的方法,还有一个NSObject模型类B,用于处理日志记录和联网。在B类中,只分配一个A类实例,然后调用A的方法。警报视图正常显示,但当我单击“确定”按钮时,它崩溃了。我想点击“确定”按钮重新打开键盘,让用户在失败后继续登录。(已在头文件中声明UIAlertView协议。)

在viewcontroller类别A中:

- (void)displayAlertViewString:(NSString *)string
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failured!"
                                                    message:string
                                                   delegate:self
                                          cancelButtonTitle:nil
                                          otherButtonTitles:@"Ok", nil];
    [alert show];

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];

    if ([title isEqualToString:@"Ok"])
    {
        //reopen the keyboard let user continue login.
        [self.passwordField becomeFirstResponder[;
    }
在B类模型中,我在
AFNetworking
failure块中调用了display alert view方法

failure:^(AFHTTPRequestOperation *operation, NSError *error){
        NSLog(@"%@", error);

        RDLoginViewController *loginViewController = [[RDLoginViewController alloc] init];

        [loginViewController displayAlertViewString:@"The entered email or password was incorrectly!"];

调试器中没有任何信息,Xcode只是停留在线程视图上。有人能帮我弄清楚吗?谢谢。

执行故障块后,您的
loginViewController
将从内存中释放,因为没有人对它有强引用

当alertView试图访问它的委托时,它会崩溃,因为它的委托不再在内存中


我建议您看一下。谢谢。如何防止内存释放?为什么在执行失败块之后,应该释放该对象?它被释放是因为没有对它的强引用。这里的答案取决于应用程序的架构。根据您所展示的,您在激发AFNetworking请求的类上创建一个强属性似乎是合理的,而不是在失败块上分配和初始化它。我在头文件中添加了一个类属性,而不是在
成功块中初始化类,但仍然崩溃,这有什么问题吗?哦,不,类对象正在初始化
成功块
失败块
的ou,但它们都在一个方法中。