From d683cb048bc568e203190dc50ccd605a0960a5dd Mon Sep 17 00:00:00 2001 From: nixzhu Date: Fri, 22 Jan 2016 15:18:18 +0800 Subject: [PATCH] use uploadImagesQueue to upload feed images --- .../NewFeed/NewFeedViewController.swift | 88 +++++++++++-------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/Yep/ViewControllers/NewFeed/NewFeedViewController.swift b/Yep/ViewControllers/NewFeed/NewFeedViewController.swift index 4d42d59f..d02cdcb8 100644 --- a/Yep/ViewControllers/NewFeed/NewFeedViewController.swift +++ b/Yep/ViewControllers/NewFeed/NewFeedViewController.swift @@ -753,9 +753,10 @@ class NewFeedViewController: SegueViewController { case .Default: - let uploadImagesGroup = dispatch_group_create() + let uploadImagesQueue = NSOperationQueue() + var uploadAttachmentOperations = [UploadAttachmentOperation]() + //let uploadImagesGroup = dispatch_group_create() - //var uploadImageInfos = [UploadImageInfo]() var uploadAttachmentIDs = [String]() let mediaImagesCount = mediaImages.count @@ -783,7 +784,7 @@ class NewFeedViewController: SegueViewController { if let image = image.resizeToSize(fixedSize, withInterpolationQuality: CGInterpolationQuality.High), imageData = UIImageJPEGRepresentation(image, 0.95) { - dispatch_group_enter(uploadImagesGroup) + //dispatch_group_enter(uploadImagesGroup) let source: UploadAttachment.Source = .Data(imageData) @@ -791,6 +792,14 @@ class NewFeedViewController: SegueViewController { let uploadAttachment = UploadAttachment(type: .Feed, source: source, fileExtension: .JPEG, metaDataString: metaDataString) + let operation = UploadAttachmentOperation(uploadAttachment: uploadAttachment) + operation.completionBlock = { + if let uploadAttachmentID = operation.uploadAttachmentID { + uploadAttachmentIDs.append(uploadAttachmentID) + } + } + uploadAttachmentOperations.append(operation) + /* tryUploadAttachment(uploadAttachment, failureHandler: { (reason, errorMessage) in defaultFailureHandler(reason, errorMessage: errorMessage) @@ -808,38 +817,18 @@ class NewFeedViewController: SegueViewController { dispatch_group_leave(uploadImagesGroup) } }) - - /* - let fileExtension: FileExtension = .JPEG - - s3UploadFileOfKind(.Feed, withFileExtension: fileExtension, inFilePath: nil, orFileData: imageData, mimeType: fileExtension.mimeType, failureHandler: { (reason, errorMessage) in - - defaultFailureHandler(reason, errorMessage: errorMessage) - - dispatch_async(dispatch_get_main_queue()) { - uploadErrorMessage = errorMessage - dispatch_group_leave(uploadImagesGroup) - } - - }, completion: { s3UploadParams in - - // Prepare meta data - - let metaDataString = metaDataStringOfImage(image, needBlurThumbnail: false) - - let uploadImageInfo = UploadImageInfo(s3UploadParams: s3UploadParams, metaDataString: metaDataString) - - dispatch_async(dispatch_get_main_queue()) { - uploadImageInfos.append(uploadImageInfo) - - dispatch_group_leave(uploadImagesGroup) - } - }) */ } }) - dispatch_group_notify(uploadImagesGroup, dispatch_get_main_queue()) { [weak self] in + for i in 1..