我正在解析從Web服務返回的XML。如果它是一個有效的用戶,我應該得到一個長整數。 (例如:2110504192344912815或2061128143657912001)。如果它是無效的,那麼我得到一個0.然而,如果你看到我的代碼,我有時得到負值的用戶ID,這是拋出我的驗證代碼乾草線。有小費嗎?爲什麼我在我的NSInteger對象中獲取奇怪的值?
NSMutableString *loginString;
NSInteger userID;
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *) elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName{
if ([elementName isEqual:@"GetUIDResult"]) {
userID = [loginString longLongValue];/0 if invalid password or LONG
[loginString release];
loginString = nil;
}
}
//MY VALIDATION CODE..
NSLog(@"The value of userID is: %ld",userID);
if (userID > 0) {
NSLog(@"YOU ARE NOW LOGGED IN");
}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];
}
XML數據是什麼樣的? – 2011-06-16 04:11:57
發送'-longLongValue'之前'loginString'的內容是什麼? – 2011-06-16 04:30:38
可能對代碼執行沒有多大影響,但不應該使用%lld來NSLog一個很長的值? – 2011-06-16 05:12:47