Objective c 如何读取txt文件并存储在NSArray中?

Objective c 如何读取txt文件并存储在NSArray中?,objective-c,nsarray,robots.txt,Objective C,Nsarray,Robots.txt,我正在尝试读取一个txt文件并将其存储在NSArray中。这是我的代码,但似乎有一些我不知道的东西丢失了 NSURL *url=[NSURL URLWithString:@"http://www.google.com/robots.txt"]; NSMutableArray *robots=[NSMutableArray arrayWithContentsOfURL:url]; NSLog(@"%@",robots); 您必须先将URL的内容加载到字符串中,就像 NSStr

我正在尝试读取一个txt文件并将其存储在NSArray中。这是我的代码,但似乎有一些我不知道的东西丢失了

NSURL *url=[NSURL URLWithString:@"http://www.google.com/robots.txt"];

    NSMutableArray *robots=[NSMutableArray arrayWithContentsOfURL:url];

    NSLog(@"%@",robots);

您必须先将URL的内容加载到字符串中,就像

NSString *content = [NSString stringWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:nil];
然后按如下方式拆分此字符串:

NSArray *parsed = [content componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
现在,解析的
数组将包含URL中的字符串

编辑:

如果要筛选数组,请添加以下代码:

NSIndexSet *indexes = [parsed indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
    NSRange range = [(NSString *)obj rangeOfString:@"Disallow"];
    if (range.location != NSNotFound)
    {
        return YES; 
    }
    return NO;
}];

NSArray *disallowed = [parsed objectsAtIndexes:indexes];

disallowed
将使用包含
Disallow
string

的字符串填充
disallowed

您必须首先将URL的内容加载到字符串中

NSString *content = [NSString stringWithContentsOfURL:URL encoding:NSUTF8StringEncoding error:nil];
然后按如下方式拆分此字符串:

NSArray *parsed = [content componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
现在,解析的
数组将包含URL中的字符串

编辑:

如果要筛选数组,请添加以下代码:

NSIndexSet *indexes = [parsed indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
    NSRange range = [(NSString *)obj rangeOfString:@"Disallow"];
    if (range.location != NSNotFound)
    {
        return YES; 
    }
    return NO;
}];

NSArray *disallowed = [parsed objectsAtIndexes:indexes];

disallowed
将填充包含
Disallow
string

的字符串,我认为@anticcyclope已经解决了这个问题,但在将来,请更多地说明问题所在——只是说“缺少某些东西”没有描述你的期望和你所看到的以及它们的不同之处。我认为@anticyclope抓住了这一点,但在未来,请多说些什么是错的——仅仅说“缺少了什么”并不能描述你的期望和你所看到的以及它们的不同之处。谢谢你,这很有帮助!如何仅返回包含@“不允许”字符串的行?第一行是什么?这是一种方法吗?这些参数是什么?这一行返回索引ob对象,在本例中通过了一些测试,子字符串匹配。它枚举数组中的所有对象,并查看此对象是否通过测试。它使用块(Objective-C特性,类似于其他语言中的匿名函数)对每个枚举项运行测试。如果子字符串匹配,则返回YES,否则返回no。obj是数组中的一个对象,idx是它的索引。另外,如果您确实想停止测试,您可以在stop变量中返回YES。非常感谢,但我认为它有一个问题,它不工作,您能检查一下吗?iOS 4/Mac OS X 10.6中引入了块。在Mac OS X 10.7中为我工作。谢谢,这很有帮助!如何仅返回包含@“不允许”字符串的行?第一行是什么?这是一种方法吗?这些参数是什么?这一行返回索引ob对象,在本例中通过了一些测试,子字符串匹配。它枚举数组中的所有对象,并查看此对象是否通过测试。它使用块(Objective-C特性,类似于其他语言中的匿名函数)对每个枚举项运行测试。如果子字符串匹配,则返回YES,否则返回no。obj是数组中的一个对象,idx是它的索引。另外,如果您确实想停止测试,您可以在stop变量中返回YES。非常感谢,但我认为它有一个问题,它不工作,您能检查一下吗?iOS 4/Mac OS X 10.6中引入了块。在Mac OS X 10.7中为我工作。