我使用以下代码生成并解析XML。
调用方法[self checksigninSucess];
并在按下“登录”按钮时设置UITextField
值。
-(void)checksigninSucess{
NSString* content = [NSString stringWithFormat:@"http://www.anball/login_check.php?email=%@&password=%@",emailField.text,passwordField.text];
NSData *xml = [NSData dataWithContentsOfURL: [NSURL URLWithString:content]];
NSLog(@"URLXML %@",[NSURL URLWithString:content]);
self.parser=[NSXMLParser alloc]initWithData:xml];
[self.parser setDelegate:self];
[self.parser parse];
[self.parser release];
self.parser=nil;
}
但我的问题是NSData
保存了我第一次在文本字段中输入的值。当我第二次使用不同的电子邮件和密码按“登录”按钮时,NSData
保留之前生成的相同URL。
如何清除NSData
为下次尝试所持有的值。
答案 0 :(得分:3)
为什么需要使用NSData?请改用NSString,如下所示。
self.parser=[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:content]];
[self.parser setDelegate:self];
[self.parser parse];
[self.parser release];
self.parser=nil;
答案 1 :(得分:2)
请改用此行,以防止缓存数据
NSData *xml = [NSData dataWithContentsOfURL: [NSURL URLWithString:content] options:NSDataReadingUncached error:nil];
使用函数的第二个变体
+ (id)dataWithContentsOfURL:(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr
参见NSDataReadingOptions mask