UIAlertView没有显示

时间:2013-03-28 13:09:53

标签: objective-c uialertview

我正在测试用户名真实性的服务器响应。如果服务器响应“User absent”,则弹出UIAlertView。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSString *responseString1 = [[NSString alloc] initWithData:responseData1 encoding:NSUTF8StringEncoding];

    NSLog(@"%@",responseString1);

    NSString *response = responseString1;
    NSLog(@"%@",response);

    if ([response isEqualToString:@"User absent"]) {
        _userAbsent = [[UIAlertView alloc]initWithTitle:@"Error" message:@"1. Display Name missing.\n2. Password missing." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        self.userAbsent.delegate = self;

        [_userAbsent show];
    }

我输入了一些随机的用户名和密码来伪造错误,但警报视图没有弹出。 NSLog是否对服务器上的数据进行了两次。

这是日志输出:

2013-03-28 20:59:35.542 SimpleTable[1429:f803] "User absent"
2013-03-28 20:59:35.542 SimpleTable[1429:f803] "User absent"

我在从服务器请求数据之前有另一个UIAlertView,如果缺少用户名和密码字段,则会发出警报。然而,AlertView有效。

  1. 关于这个问题的任何指示?
  2. 我理解AlertView可能是一个酸痛的眼睛。反正是否在不使用AlertView的情况下提醒用户?
  3. 比提前......

3 个答案:

答案 0 :(得分:2)

您的回复是“用户缺席”而非用户缺席。(即带引号的字符串)

请勿直接使用支持变量(_userAbsent)initdealloc方法除外。

试试这个......

NSString *strResponse = @"\"User absent\"";
if ([response isEqualToString:strResponse]) {

    self.userAbsent = [[UIAlertView alloc]initWithTitle:@"Error" message:@"1. Display Name missing.\n2. Password missing." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [self.userAbsent show];
}

希望这对你有帮助......

答案 1 :(得分:0)

您的UIAlertView似乎未正确设置。

当您只需要一个nil声明时,最后会有两个[[UIAlertView alloc] initWithTitle:@"Error" message:@"1. Display Name missing.\n2. Password missing." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 声明。

{{1}}

这似乎是一个奇怪的错误,但也许这就是原因?

答案 2 :(得分:0)

 UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Message" message:@"Set Your Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
 [alert show];
 [alert release];