Я загружаю наклейку с сайта Parse.com, а затем загружаю изображение для него. По какой-то причине он не добавит моего словаря. Объект создается отлично, но он просто не добавляется. код ниже:Невозможно добавить объект в NSMutableDictionary в блоке анализа
- (void)getNewStickersWithCompletionHandler:(stickerCompletionHandler)handler
{
__weak StickerManager *weakSelf = self;
PFQuery *stickersQuery = [PFQuery queryWithClassName:@"sticker"];
NSNumber *total =[NSNumber numberWithInt:(int)[self.stickerDictionary count]];
//im not sure this is a great way to add what if we miss one..there will be an error
[stickersQuery whereKey:@"stickerNO" greaterThan:total];
[stickersQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if(!error) {
for(PFObject *object in objects) {
NSString *title = object[@"title"];
int stickerNO = [[object objectForKey:@"stickerNO"] intValue];
//DOWNLOAD IMAGE CODE
PFFile *image = object[@"image"];
[image getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
if(!error){
UIImage *image = [UIImage imageWithData:data];
Sticker *sticker = [[Sticker alloc] initWithTitle:title stickerNO:stickerNO image:image];
NSLog(@"%@",sticker.title);
//sticker has been created! but won’t add!
[weakSelf.stickerDictionary setObject:sticker forKey:sticker.title];
}
}];//end get image block
}//end for
handler(YES,nil);
}
}];//end download stickers block
}
Не уверен, что здесь происходит, это меня немного смущает. Любые идеи, что может быть неправильным?
Одна вещь, которую я проверю, - это создать экземпляр 'stickerDictionary' (ленивое создание экземпляра или в каком-то другом init). Причина в методах вызова object-c на nil может быть трудно обнаружить. Можете ли вы вставить код для создания словаря? – Taha
Вы уверены, что слабый Self! = Nil? Если это не так, вы уверены, что stickerDictionary! = Nil? –
Словарь инициализирован да – Kex