2011-12-29 71 views
1

做了一些研究之後,我有點困惑。我可以從一個url搶單的形象,如果我知道,例如精確的目錄,從url中提取圖片數組

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

UIImage需要一個明確的東西(URL或文件路徑)來獲取其數據。

一個可能的解決方案是通過NSFileManager的enumeratorAtPath:方法實現搜索.png文件。我已經鏈接到的參考指南甚至有一個代碼片段,您可以使用它來創建UIImages(只需將@"doc"切換爲@png,而不是做scanDocument,做你的UIImage * image = ...事情)。

我會把它作爲一個練習來弄清楚如何遞歸地做,但是我希望我的答案能幫助你!

+0

這不僅適用於'file:'類型的URL嗎?我相信這個問題提到'http:'作爲協議。 – Monolo 2011-12-29 09:43:33

0
NSURL *url = [NSURL 
URLWithString:@」www.ArticleDean.com\images\sample.jpg」]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *image = [[UIImage alloc] intiWithData:data]; 

試試這個

1

你這裏的困難會得到一個目錄從Web服務器上市 - 因爲你在網上檢索圖像。許多Web服務器不會提供目錄列表作爲防止黑客攻擊的安全措施。

如果您控制Web服務器,您可以重新配置它以提供目錄列表 - 然後從目錄級URL(http://www.myUrl.com/pic/)創建一個NSData對象 - 並將其解析爲拉出目錄中的所有文件。然後,您可以請求每個單獨的圖片並將其自己添加到數組中。

如果您不控制Web服務器,但可以寫入目錄,則可以通過創建清單文件(XML-plist將是一種很好的格式)來實現類似的實現,該清單文件列出目錄中包含的文件名。不過,無論何時向目錄添加新圖片,都需要更新清單。

否則 - 你必須做一些非常髒/黑客行爲,比如假設不超過n張圖片,所有圖片都有文件名「pic_m.png」,然後遍歷從0到n的循環嘗試檢索每個文件,直到你失敗。