- (void)addMediaToUploadQueue:(ALAsset *)media { @autoreleasepool { ALAssetRepresentation *defaultRepresentation = [media defaultRepresentation]; CGImageRef fullResolutionImage = [defaultRepresentation fullResolutionImage]; // Return if the user is trying to upload an image which has already been uploaded CGFloat scale = [defaultRepresentation scale]; UIImageOrientation orientation = [defaultRepresentation orientation]; UIImage *i = [UIImage imageWithCGImage:fullResolutionImage scale:scale orientation:orientation]; if (![self isImageUnique:i]) return; NSDictionary *imageDictionary = [self dictionaryForAsset:media withImage:i]; dispatch_async(self.background_queue, ^{ NSManagedObjectContext *ctx = [APPDELEGATE createManagedObjectContextForThread]; [ctx setUndoManager:nil]; [ctx performBlock:^{ ImageEntity *newImage = [NSEntityDescription insertNewObjectForEntityForName:@"ImageEntity" inManagedObjectContext:ctx]; [newImage updateWithDictionary:imageDictionary inManagedObjectContext:ctx]; [ctx save:nil]; [APPDELEGATE saveContext]; dispatch_async(dispatch_get_main_queue(), ^{ [self.fetchedResultsController performFetch:nil]; }); if (!currentlyUploading) { currentlyUploading = YES; [self uploadImage:newImage]; } }]; }); } }
时间: 2024-10-13 21:12:02