做了一些研究之后我有点困惑。如果我知道确切的目录,我可以从网址中获取单个图像,例如,
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.myUrl.com/pic/workaholics.png"]]];
UIImageView *view1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:view1];
粗糙的这个很好,但如果你不知道确切的路径怎么办。在Linux中,您总是可以进行某种递归搜索,但是对于iOS,我无法弄明白。例如,在后一种情况下我指定的“pic”目录中,如果有其他目录称为pic1,pic2,pic3等,并且每个目录都有任意数量的png。我正在努力解决的问题是如何递归搜索“pic”目录以提取与.png匹配的所有目录内容。我会粗略然后存储这是NSData并转换为字符串,然后将内容存储在数组中。我在这一点上非常困惑。任何帮助将不胜感激。
答案 0 :(得分:1)
您的难点在于从Web服务器获取目录列表 - 因为您正在通过Web检索图像。许多Web服务器不会提供目录列表作为防止黑客攻击的安全措施。
如果您控制Web服务器,您可以重新配置它以提供目录列表 - 然后从目录级URL(http://www.myUrl.com/pic/)创建一个NSData对象 - 并解析此拉out目录中的所有文件。然后,您可以请求每张图片并自行将其添加到阵列中。
如果您不控制Web服务器,但可以写入目录,则可以通过创建清单文件(XML-plist是一种很好的格式)来实现类似的实现,该文件列出了目录中包含的文件名。每当您向目录添加新图片时,您都需要更新清单。
否则 - 你必须做一些非常脏/ hacky的事情,比如假设不超过n张图片,所有图片都有文件名“pic_m.png”,然后迭代从0到n的循环尝试检索每个直到你遇到失败为止。
答案 1 :(得分:0)
UIImage
需要一个明确的东西(URL或文件路径)来从中获取数据。
一个可能的解决方案是通过NSFileManager的enumeratorAtPath:
方法实现对.png文件的搜索。我链接到的参考指南甚至有一个代码片段可用于创建UIImages(只需将@"doc"
切换到@png
而不是scanDocument
,而是执行{{1}事情)。
我会把它作为一个练习来弄清楚如何递归地做,但我希望我的回答可以帮助你!
答案 2 :(得分:0)
NSURL *url = [NSURL
URLWithString:@”www.ArticleDean.com\images\sample.jpg”];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] intiWithData:data];
尝试这个