0

我正在测试服务器对用户名真实性的响应。如果服务器以“用户缺席”响应,则会弹出 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 的情况下提醒用户?

比提前...

4

3 回答 3

2

您得到的响应是“用户缺席”而不是用户缺席。(即带引号的字符串)

不要直接使用支持变量(_userAbsent),除了 ininitdealloc方法。

试试这样...

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];
}

希望这对你有帮助...

于 2013-03-28T13:17:48.290 回答
0

看起来你UIAlertView的设置不正确。

当您只需要一个时,您最后有两个nil声明。

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

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

于 2013-03-28T13:23:32.913 回答
0
 UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Message" message:@"Set Your Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
 [alert show];
 [alert release];
于 2013-04-01T07:05:35.360 回答