2011-11-18 60 views
1

我正在使用以下代码来生成和解析XML。 调用方法[self checksigninSucess];,并在按下“登录”按钮时设置UITextField值。NSData保留旧值-iPhone

-(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

确定内容字符串第二次不同吗?也许你没有设置正确的文本字段值? – TheEye

+0

打印您的文本字段的日志 – Maulik

+0

NOP !!当我在控制台中打印URL([NSURL URLWithString:content])时,它会给出修改的URL但不是NSData! –

回答

3

为什么你需要使用NSData?改为使用NSString,如下所示。

self.parser=[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:content]]; 

[self.parser setDelegate:self]; 
[self.parser parse]; 
[self.parser release]; 
self.parser=nil; 
2

使用此行来代替,以防止数据

NSData *xml = [NSData dataWithContentsOfURL: [NSURL URLWithString:content] options:NSDataReadingUncached error:nil]; 

的缓存使用的功能,第二个变体

+ (id)dataWithContentsOfURL:(NSURL *)aURL options:(NSDataReadingOptions)mask error:(NSError **)errorPtr 

见NSDataReadingOptions口罩

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html#//apple_ref/doc/uid/20000172-307810

+0

谢谢!试一试等待! –

+0

@Sadumerry不要着急;-) –

+0

不行@Marek! – ishhhh