2014-05-19 62 views
0

我怎樣才能獲得解析器請求的響應時間?NSXMLParser響應時間

NSString *connString = [NSString stringWithFormat:@""]; 

NSURL *url = [[NSURL alloc] initWithString:connString]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 

parserUserData = [[NSXMLParser alloc] initWithData:data]; 
[parserUserData setDelegate:self]; 

我用下面的例子,但它沒有返回響應時間,只是響應。

NSError *error = nil; 
NSString *string = [[NSString alloc] initWithContentsOfURL:url 
                encoding:NSUTF8StringEncoding 
                error:&error]; 

if (error != nil) 
{ 
    NSLog(@"error: %@", error); 
} 
else 
{ 
    NSLog(@"response: %@", string); 
} 
+0

你想要的時間量經過請求數據或分析或兩者?你必須自己計算一下。例如,如果您正在查找已用時間,請在請求前執行'CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();',然後在末尾執行'CFTimeInterval elapsed = CFAbsoluteTimeGetCurrent() - start;'。這會給你'逝去的秒數。如果這是你正在尋找的東西,我會發布這個答案。如果沒有,請澄清。 – Rob

+0

是的,這是我想要的。 – Macaret

回答

0

因爲解析發生同步,你可以捕捉到開始時間解析之前完成時再計算出經過時間:

CFAbsoluteTime start = CFAbsoluteTimeGetCurrent(); 

NSString *connString = [NSString stringWithFormat:@"..."]; 

NSURL *url = [[NSURL alloc] initWithString:connString]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 

CFTimeInterval elapsed = CFAbsoluteTimeGetCurrent() - start; 

NSLog(@"dataWithContentsOfURL elapsed time: %.3f", elapsed); 

parserUserData = [[NSXMLParser alloc] initWithData:data]; 
[parserUserData setDelegate:self]; 

[parserUserData parse]; 

elapsed = CFAbsoluteTimeGetCurrent() - start; 

NSLog(@"dataWithContentsOfURL & parse elapsed time: %.3f", elapsed);