2012-11-14 3 views
0

AFNetworking API를 사용하고 AFImageRequestOperation 함수를 사용하여 UIImage로 변환 할 서버 API에서 이미지 URL을 호출합니다. 내가하고 싶은 것은; 메서드가 호출 될 때마다 동일한 이름의 UIImage를 NSMutableArray에 추가 할 수 있습니까?

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을 호출하고 성공적으로 있는 UIImage에 이미지 URL을 할당 : 때마다 나는이 메소드를 호출합니다. 그 다음 NSMutableArray을 할당하고 이미지를 추가했습니다. 내가 가지고있는 문제는 메서드가 다시 호출 될 때마다 MutableArray가 이전 이미지를 새 이미지로 바꿉니다. 미리 감사드립니다.

답변

0

이 블록을 호출 할 때마다 objImageArray을 다시 만듭니다. 따라서 비어있는 오래된, UIImage autorelease 풀은 이전 UIImage을 해제 한 다음 언제든지 새 UIImage => 1 개 이하의 개체를 추가합니다. 블록을 호출 할 때마다가 아니라 한 번 만들어야합니다. 적어도 블록 밖에서 할당 해보십시오.

+0

아아, 완전히 이것을 보아 왔음에 틀림 없다 ... 내 실수를 지적 해 주셔서 고마워요. 나는 변화를 만들었고 이제는 그것을 대체하는 대신 UIImage를 추가합니다. 나는 그것을 여기서부터 일할 수 있어야한다. 때로는 내가 잘못하고있는 것을 발견하기 위해 외부의 시선이 필요합니다! 당신의 도움을 주셔서 감사합니다. – Ollie177

1

.h 파일에 NSMutableArray를 설정할 수 있어야합니다.

@property(nonatomic, strong) NSMutableArray * objImageArray; 

그런 다음 .m 파일에서 배열을 만드는 코드를 제거하십시오.

objImageArray = [[NSMutableArray alloc] init]; 

그런 다음 동일한 추가 객체를 사용할 수 있지만 배열에 설정해야합니다.

[self.objImageArray addObjectsFromArray:image]; 

EDIT : 배열에는 포함 된 개체의 이름이 중요하지 않으므로 모두 동일한 이름을 가질 수 있습니다. 이미지를 찾고 나면 이름 대신 배열 인덱스에서 이미지를 얻습니다.

희망이 도움이됩니다.

관련 문제