2011-11-18 78 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