我想读取一个txt文件并将其存储在NSArray中。这里是我的代码,但似乎有什么缺失,我不知道!如何读取一个txt文件并存储在NSArray中?
NSURL *url=[NSURL URLWithString:@"http://www.google.com/robots.txt"];
NSMutableArray *robots=[NSMutableArray arrayWithContentsOfURL:url];
NSLog(@"%@",robots);
我想读取一个txt文件并将其存储在NSArray中。这里是我的代码,但似乎有什么缺失,我不知道!如何读取一个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]];
现在parsed
阵列将包含来自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
字符串
谢谢,帮助!我怎样才能返回只包含@“Disallow”字符串的行? –
第一行是什么?这是一种方法吗?这些参数是什么? –
这一行返回索引ob对象,在这种情况下,它传递了一些测试,子串匹配。它枚举数组中的所有对象并查看该对象是否通过测试。它使用块,Objective-C功能(如其他某种语言的匿名函数)对每个枚举项目运行测试。它返回YES,如果子字符串匹配,否则不返回。 obj是数组中的一个对象,idx是它的索引。另外,如果你想停止测试,你可以在停止变量中返回YES。 – anticyclope
弦我觉得@anticyclope钉支护填充这一个,但在将来,请更多地说出什么是错的 - 只是说“缺少什么”并不能描述你期望的内容,你看到的内容以及它们与众不同的原因。 –