2011-06-16 106 views
0

在下面的一段代碼中,當輸入不正確的用戶名密碼時,loginString爲0,輸入正確的用戶名密碼時爲2061128143657912001。然而,不管我做什麼,我總是得到彈出。爲什麼我的NSArray intValue無法按預期工作?

我錯過了什麼?在

NSLog(@"loginString = %@",loginString); 
NSLog(@"loginString = %d",[loginString intValue]); 

//loginString is a 0 or a 2061128143657912001 
if ([loginString intValue]>0) { 

     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setObject:userName.text forKey:@"userNameKey"]; 
     [defaults setObject:password.text forKey:@"passwordKey"]; 
     [defaults synchronize]; 
     [self dismissModalViewControllerAnimated:YES]; 

    }else { 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Validation Error" message:@"Unable to validate Login/Password combination" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 

    } 
+0

什麼是'loginString',它在哪裏聲明和設置? – PengOne 2011-06-16 03:11:59

+0

NSMutableString * loginString;在頭文件中的同一個類中聲明。它在XML解析器函數中設置。我在上面的代碼上面完成了一個NSLog,並且我得到了一個0或2061128143657912001 – jini 2011-06-16 03:14:16

+2

這是不可能的。一個'int'至多是2147483647. – 2011-06-16 03:17:36

回答

2

嘗試投擲if語句之前,看看事情是真的你認爲他們是。

做完這些,看看會發生什麼,如果你通過

if ([loginString intValue] == 0) { 
... 
} else { 
... 
} 

扭轉if陳述或者甚至檢查[loginString isEqualToString:@"0"]

+0

非常好的遵守我現在就試試。感謝您說明我應該做的事情:S – jini 2011-06-16 03:17:04

+0

是的,我確實已經發布了並且沒有登錄字符串。感謝您讓我走上正軌。 – jini 2011-06-16 03:19:13

+0

糟糕。很高興你修好了它。 – PengOne 2011-06-16 03:19:54

相關問題