Skip to content

Instantly share code, notes, and snippets.

@gradyzhuo
Last active August 29, 2015 14:25
Show Gist options
  • Save gradyzhuo/4350d9b0d27d49161126 to your computer and use it in GitHub Desktop.
Save gradyzhuo/4350d9b0d27d49161126 to your computer and use it in GitHub Desktop.
let group = dispatch_group_create()
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
for index in 1...key{
switch index {
case 1:
self.ImageUpload(url, ImageParams: imageparam, ImageData: self.imageData1,ReqToVar: "1")
case 2:
self.ImageUpload(url, ImageParams: imageparam, ImageData: self.imageData2,ReqToVar: "2")
case 3:
self.ImageUpload(url, ImageParams: imageparam, ImageData: self.imageData3,ReqToVar: "3")
case 4:
self.ImageUpload(url, ImageParams: imageparam, ImageData: self.imageData4,ReqToVar: "4")
case 5:
self.ImageUpload(url, ImageParams: imageparam, ImageData: self.imageData5,ReqToVar: "5")
case 6:
self.ImageUpload(url, ImageParams: imageparam, ImageData: self.imageData6,ReqToVar: "6")
default:
println("no image")
}
}
//當 group 的 leave 次數等同於 enter 次數,GCD 會notify並執行這裡的closure
dispatch_group_notify(group, queue) { () -> Void in
println("Final")
}
func ImageUpload(UrlString:String,ImageParams:Dictionary<String, String>,ImageData:NSData,ReqToVar:String){
//增加 group 的進入次數,group同上方宣告的group
dispach_group_enter(group)
var urlRequest = urlRequestWithComponents(UrlString, parameters: ImageParams, imageData: ImageData)
var FileUrl:JSON!
Alamofire.upload(urlRequest.0, urlRequest.1)
.progress { (bytesWritten, totalBytesWritten, totalBytesExpectedToWrite) in
// println("\(totalBytesWritten) / \(totalBytesExpectedToWrite)")
}
.responseJSON { (request, response, data, error) in
// println("REQUEST \(request)")
// println("RESPONSE \(response)")
// println("JSON \(data)")
var json = JSON(data!)
FileUrl = json["path"]
switch ReqToVar{
case "1":
self.ResponseImg1Url = FileUrl.string
case "2":
self.ResponseImg2Url = FileUrl.string
case "3":
self.ResponseImg3Url = FileUrl.string
case "4":
self.ResponseImg4Url = FileUrl.string
case "5":
self.ResponseImg5Url = FileUrl.string
case "6":
self.ResponseImg6Url = FileUrl.string
default:
println("no image")
}
println("url = \(FileUrl.string)")
// println("ERROR \(error)")
//
//減少 group 的進入次數
dispach_group_leave(group)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment