我正在开发一个显示来自网站的6张图片的应用。这些图片随着时间的推移而变化所以我提取了所述网站的源代码并设法用这段代码拉出了6张图片中的第一张:
NSError *error = nil;
NSString *deviantStringPopular;
deviantStringPopular = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://browse.deviantart.com/?order=24"]
encoding:NSISOLatin1StringEncoding
error:&error];
NSString *popularContent;
NSRange popularURLRange1 = [deviantStringPopular rangeOfString:@"super_img=\""];
NSRange popularURLRange2 = [deviantStringPopular rangeOfString:@"\" super_w"];
int lengt = popularURLRange2.location - popularURLRange1.location - popularURLRange1.length;
int location = popularURLRange1.location + popularURLRange1.length;
NSRange endRange;
endRange.location = location;
endRange.length = lengt;
popularContent = [deviantStringPopular substringWithRange:endRange];
NSLog(@"%@", popularContent);
问题是,其他5个图像的URL位于与第一个相同的子串之间。 那么,一旦成功加载第一个图像的URL并且加载第二个图像并将其存储在不同的变量之下,可能会忽略它吗?
提前致谢
答案 0 :(得分:0)
要从字符串中获取6个URL并将其加载到不同的变量中,您可以尝试使用循环。对于每次迭代,在找到子字符串并将其存储到变量之后,从字符串的开头到您找到的子字符串的末尾创建一个范围。您可以使用stringByReplacingCharactersInRange
删除已搜索的字符串部分,以便下次搜索字符串中的子字符串时,它会找到下一个URL。
答案 1 :(得分:0)
如果您知道如何使用RegEx,则更简单的解决方案可能是使用RegexKit。然后每个URL可能只是一个捕获组。