NSArray является нулевым, когда я создаю его в завершении, тогда как первый nsarray не является нулевым
Это мой код, пытающийся создать массив NSMutable со строками и затем сохранить их в свойстве объекта. NSArray * фотографии работают, но не NSMUtableArray thumbImageURL. Когда я NSLog это для целей отладки, это является нулевым. Пожалуйста, помогите, это меня сильно раздражает, не могу найти решение. я также ленивый экземпляр, так что нет никаких причин, что он не будет выделяться в памяти.
Ленивый экземпляр:
-(void)setThumbImageURL:(NSMutableArray *)thumbImageURL
{
if (!_thumbImageURL) _thumbImageURL=[[NSMutableArray alloc] initWithCapacity:50];
_thumbImageURL=thumbImageURL;
}
Мой код:
[PXRequest requestForPhotoFeature:PXAPIHelperPhotoFeaturePopular resultsPerPage:50 page:1 photoSizes:(PXPhotoModelSizeLarge | PXPhotoModelSizeThumbnail | PXPhotoModelSizeSmallThumbnail |PXPhotoModelSizeExtraLarge) sortOrder:PXAPIHelperSortOrderCreatedAt completion:^(NSDictionary *results, NSError *error) {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
if (results) {
self.photos =[results valueForKey:@"photos"];
NSLog(@"%@",self.photos);
}
NSLog(@"\n\n\n\n\n\n\n\nSelf photos count : %lu",[self.photos count]);
for (int i=0; i<[self.photos count]; i++)
{
NSURL *thumbImageUrl= [NSURL URLWithString:[[[self.photos valueForKey:@"images"] [i] valueForKey:@"url"] firstObject]];
NSData *imageData=[NSData dataWithContentsOfURL:thumbImageUrl];
[self.thumbImageURL addObject:imageData];
self.largeImageURL[i]=[[[self.photos valueForKey:@"images"] [i] valueForKey:@"url"] lastObject];
}
NSLog(@"\n\n\n\n\n\n\n\nSelf Thum Image after : %@",self.thumbImageURL);
NSLog(@"\n\n\n\n\n\n\n\nSelf large Image after : %@n\n\n\n\n\n\n\n",self.largeImageURL);
}];
2 ответа
Изменить Ленивый экземпляр
От:
-(void)setThumbImageURL:(NSMutableArray *)thumbImageURL
{
if (!_thumbImageURL) _thumbImageURL=[[NSMutableArray alloc] initWithCapacity:50];
_thumbImageURL=thumbImageURL;
}
Для того, чтобы:
@property (nonatomic, strong) NSMutableArray *thumbImageURL;
/**
* lazy load _thumbImageURL
*
* @return NSMutableArray
*/
- (NSMutableArray *)thumbImageURL
{
if (_thumbImageURL == nil) {
_thumbImageURL = [[NSMutableArray alloc] initWithCapacity:50];
}
return _thumbImageURL;
}
Я сам нашел проблему. Проблема в том, что ленивый экземпляр на сеттере, а на геттере