可以检查NSData是否包含NSString

问题描述:

我正在使用NSData来存储网页中的XML。如果它包含<?xml version="1.0"?>,是否可以检查NSData?可以检查NSData是否包含NSString

NSURL *url = [NSURL URLWithString:link]; 
    NSData *data = [NSData dataWithContentsOfURL:url]; 
+0

你的意思是整个NSData只是编码为空字符串还是什么? – 2013-05-08 11:33:55

+0

@Artur XML正在被吃掉;我已经解决了这个问题。 – Simon 2013-05-08 11:35:27

+1

那么,你不能只是将其转换为字符串,然后检查'[str rangeOfString:@“ 2013-05-08 11:37:41

一个NSData对象包含原始二进制数据。要评估它的内容,您首先需要将该数据转换为特定的数据类型 - 在您的情况下是字符串。您需要知道使用哪种编码来转换数据对象。

然后你可以使用

​​

现在,你有你的XML文件中该字符串的内容,可以根据需要对其进行评估。

NSRange range = [myXMLContent rangeOfString:@"whatImLookingFor" options:NSCaseInsensitiveSearch]; 
if (range.location != NSNotFound) { 
//found the string 
+0

感谢兄弟,赞赏 – nonuma 2013-05-08 11:55:10

NSString* str = [[[NSString alloc] initWithData:theData 
            encoding:NSUTF8StringEncoding] autorelease]; 


if (str && [str length] > 0){ 
    NSLog(@"Contains string"); 
}else{ 
    NSLog(@"Does't contains string"); 

} 
+0

我认为'str'应该是你的代码中的'newStr'?!? – Tobi 2013-05-08 11:44:21