为什么我没有得到UIAlertView

时间:2015-08-13 12:59:34

标签: ios objective-c parse-platform uialertview

我正在使用解析进行登录/注册过程。

一切都很好。直到用户提供错误的详细信息。

在Parse Login的其他部分我写过:

self.view.userInteractionEnabled = YES;

[SVProgressHUD dismiss];
// The login failed. Check error to see why.
NSString *message = [NSString stringWithFormat:@"%@",[error valueForKey:@"Error"]];
UIAlertView *myalert = [[UIAlertView alloc]initWithTitle:@"SO" message:message delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles: nil];
[myalert show];

我在每一行都设置了断点后进行了检查。

执行第3行后,即NSSString *message控件没有进入警报状态,它会直接向我显示没有任何警告框的UI。

在日志中我得到了

[Error]: invalid login parameters (Code: 101, Version: 1.7.5)

我不知道该怎么办?我在其他部分只写了这段代码。

我使用的是Parse Code:

[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) 
{
    if (!error) 
    {   
        // Hooray! Let them use the app now.
    } 
    else 
    {   
        NSString *errorString = [error userInfo][@"error"];   // Show the errorString somewhere and let the user try again.
    }
}];

和In else部分我想显示和alertView

3 个答案:

答案 0 :(得分:1)

试试这个:

UIAlertView *myalert = [[UIAlertView alloc]initWithTitle:@"SO" message:message delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles: nil];
 dispatch_async(dispatch_get_main_queue(), ^(void){
           [myalert show];
    });

答案 1 :(得分:0)

试试此代码

NSString *errorString;
UIAlertView *AV;
[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
  if (!error) {   // Hooray! Let them use the app now.
  } else {   errorString = [error userInfo][@"error"];   // Show the errorString somewhere and let the user try again.
      AV = [[UIAlertView alloc]initWithTitle:@"SO" message:errorString delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil, nil];
      [AV show];
  }
}];

答案 2 :(得分:-1)

首先尝试调用主线程,然后在其中创建UIAlert

当你不在主线程中时,大多数情况都会发生

希望这能解决你的好问题