NSMutableArray
을 SDWebImage
과 함께 다운로드하여 나중에 표시하려고합니다.NSMutableArray가 for 루프 이후에 객체를 유지하지 않습니다.
내가 가지고있는 문제는 처음에는 배열이 완료 루프에 객체를 저장하지만 그 후에 객체가 손실된다는 것입니다.
배열은 viewDidLoad
으로 초기화되며 속성은 .h
로 선언됩니다.
SDWebImageManager *manager = [SDWebImageManager sharedManager];
for (int i = 0; i<urlsArray.count; i++)
{
[manager downloadImageWithURL:[urlsArray objectAtIndex:i] options:SDWebImageDelayPlaceholder progress:nil
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL)
{
[self.photosArray addObject:image];
//Here are stored into self.photosArray
}];
}
//Here the photosArray is empty
그러나보기를 다시 입력하면 개체가 나타납니다. 정말 이상해. 첫 번째 시도에서는 표시되지 않습니다.
나는 이미 여기와 Google에서 검색했지만 아무 것도 정말로 도움이되지 못했습니다.
주문 순서가 잘못되었습니다. 완료 블록이 아직 실행되지 않았으므로 사진 배열이 비어 있습니다. – CrimsonChris
오, 나는 photosArray를 for 루프 바깥에 비워 두려고했다. 내 잘못, 질문 편집 – Phillip
비동기 코드를 위에서 아래로 읽을 수 없으며 순서대로 실행될 것으로 예상됩니다. 각 이미지가로드되는 데 오랜 시간이 걸릴 수 있으며 완료 블록은 완료 될 때만 실행됩니다. – CrimsonChris