0

私はAFNetworkingAPIを使用しており、AFImageRequestOperation関数を使用してサーバーAPIから画像URLを呼び出し、それをUIImageに変換しています。私がやりたいのは; このメソッドを呼び出すたびに:

NSURLRequest *requestImage = [NSURLRequest requestWithURL:theImageURL];
// theImageURL is the Image URL that is collected in a previous method from the server.

            AFImageRequestOperation *imageOperation = [AFImageRequestOperation imageRequestOperationWithRequest:requestImage imageProcessingBlock:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
            {
                 objImageArray = [[NSMutableArray alloc] init];
                 if (requestImage != nil) {

                 [objImageArray addObjectsFromArray:image];

                 }


            } failure:nil];

            [imageOperation start];

そのため、URLを呼び出し、画像のURLをUIImageに正常に割り当てました。次に、 NSMutableArrayを割り当て、それに画像を追加しました。私が抱えている問題は、メソッドが再度呼び出されるたびに、MutableArrayが古い画像を新しい画像に置き換えることです。よろしくお願いします!

4

2 に答える 2

1

.h ファイルで NSMutableArray を設定できるはずです。

@property(nonatomic, strong) NSMutableArray * objImageArray;

次に、.m ファイルで配列を作成するコードを削除します。

objImageArray = [[NSMutableArray alloc] init];

次に、同じ追加オブジェクトを使用できますが、それを配列に設定していることを確認する必要があります。

[self.objImageArray addObjectsFromArray:image];

編集:配列は、含まれているオブジェクトの名前を気にしないため、すべて同じ名前を持つことができます。画像を探しているときは、名前ではなく配列インデックスから画像を取得した後です。

お役に立てれば。

于 2012-11-14T11:18:00.450 に答える
0

このブロックが呼び出されるたびに、objImageArray. したがって、空になり、古いUIImage自動解放プールが古いものを解放UIImageし、新しいUIImage=> いつでも 1 つ以下のオブジェクトを追加します。ブロックが呼び出されるたびに作成するのではなく、一度作成する必要があります。少なくとも、ブロックの外に配置してみてください。

于 2012-11-14T11:13:44.160 に答える