NSData保留旧值-iPhone

时间:2011-11-18 09:56:15

标签: iphone objective-c

我使用以下代码生成并解析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为下次尝试所持有的值。

2 个答案:

答案 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

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