2011-12-29 23 views
1

いくつかの研究をした後、私は少し混乱しています。私は、例えば、正確なディレクトリを知っていれば、私はあなたの正確なパスを知らなかった場合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]; 

これは正常に動作しますが、何、URLから単一のイメージをつかむことができます。 Linuxではいつも何らかの再帰的検索を行うことができますが、iOSではそれを理解できません。たとえば、pic1、pic2、pic3などと呼ばれる他のディレクトリがあって、各ディレクトリに任意の数のpngがある場合、後者の場合に指定した「pic」ディレクトリにあります。私が悩んでいるのは、 "pic"ディレクトリを再帰的に検索して、.pngに一致するすべてのディレクトリの内容を抽出する方法です。私は粗いし、これはNSDataを格納し、文字列に変換し、次に内容を配列に格納します。私はこの時点で非常に混乱しています。どんな助けでも大歓迎です。

答えて

0

UIImageは、データを取得するために明示的なもの(URLまたはファイルパス)が必要です。

解決策の1つは、NSFileManagerのenumeratorAtPath:メソッドを使用して.pngファイルの検索を実装することです。私がリンクしているリファレンスガイドでも、UIImagesを作成するために使用できるコードフラグメントがあります(をに、scanDocumentの代わりにUIImage * image = ...のものを使用してください)。

再帰的に行う方法を理解するための練習として残しておきますが、私の答えがあなたを助けてくれることを願っています!あなたがウェブ上で画像を検索しているので -

+0

「file:」タイプのURLでしか動作しませんか?私は質問が 'http:'をプロトコルと言います。 – Monolo

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

は、ここでは、この1つの

1

あなたの難しさは、ウェブサーバからディレクトリ一覧を取得しますしてみてください。多くのWebサーバーは、ハッキングの試みに対するセキュリティ手段としてディレクトリリストを提供しません。

Webサーバーを制御する場合は、ディレクトリリストを提供するように再構成してから、ディレクトリレベルのURL(http://www.myUrl.com/pic/)からNSDataオブジェクトを作成し、これを解析しますディレクトリ内のすべてのファイルを取り出します。それぞれの画像をリクエストして、自分で配列に追加することができます。

Webサーバーを制御しないでディレクトリに書き込むことができれば、ディレクトリに含まれるファイル名をリストするマニフェストファイル(XML-plistは適切な形式)を作成することで同様の実装を実現できます。あなたはディレクトリに新しい画像を追加するたびにマニフェストを更新する必要があります。

そうでなければ、n枚以上のピクチャがないと仮定した場合のように、かなり汚い/ハッキーなことをする必要があります。すべてのピクチャにファイル名 "pic_m.png"があり、0からnまであなたが失敗を打つまで各ファイル。

関連する問題