Swiftのメソッドの役割がわからないです。
今、サーバーに画像をアップロードするメソッド群を作っています。
func myImageUploadRequest() { let myUrl = NSURL(string: "http://www.swiftdeveloperblog.com/http-post-example-script/"); //let myUrl = NSURL(string: "http://www.boredwear.com/utils/postImage.php"); let request = NSMutableURLRequest(URL:myUrl!); request.HTTPMethod = "POST"; //ユーザーごとに割り振りたい let param = [ "firstName" : "Sergey", "lastName" : "Kargopolov", "userId" : "9" ] let boundary = generateBoundaryString() request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") let imageData = UIImageJPEGRepresentation(myImageView.image!, 1) if(imageData==nil) { return; } request.HTTPBody = createBodyWithParameters(param, filePathKey: "file", imageDataKey: imageData!, boundary: boundary) myActivityIndicator.startAnimating(); let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in if error != nil { print("error=\(error)") return } // You can print out response object print("******* response = \(response)") // Print out reponse body let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) print("****** response data = \(responseString!)") do { let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary print(json) dispatch_async(dispatch_get_main_queue(),{ self.myActivityIndicator.stopAnimating() self.myImageView.image = nil; }); }catch { print(error) } } task.resume() } func createBodyWithParameters(parameters: [String: String]?, filePathKey: String?, imageDataKey: NSData, boundary: String) -> NSData { let body = NSMutableData(); if parameters != nil { for (key, value) in parameters! { body.appendString("--\(boundary)\r\n") body.appendString("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n") body.appendString("\(value)\r\n") } } let filename = "user-profile.jpg" let mimetype = "image/jpg" body.appendString("--\(boundary)\r\n") body.appendString("Content-Disposition: form-data; name=\"\(filePathKey!)\"; filename=\"\(filename)\"\r\n") body.appendString("Content-Type: \(mimetype)\r\n\r\n") body.appendData(imageDataKey) body.appendString("\r\n") body.appendString("--\(boundary)--\r\n") return body } func generateBoundaryString() -> String { return "Boundary-\(NSUUID().UUIDString)" } } extension NSMutableData { func appendString(string: String) { let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) appendData(data!) } }
上記のメソッドの
let boundary = generateBoundaryString()
のgenerateBoundaryString() の役割と
request.HTTPBody = createBodyWithParameters(param, filePathKey: "file", imageDataKey: imageData!, boundary: boundary)
のcreateBodyWithParameters の役割と
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in if error != nil { print("error=\(error)") return } // You can print out response object print("******* response = \(response)") // Print out reponse body let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) print("****** response data = \(responseString!)") do { let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary print(json) dispatch_async(dispatch_get_main_queue(),{ self.myActivityIndicator.stopAnimating() self.myImageView.image = nil; }); }catch { print(error) } } task.resume() }
のコードの役割がわかりません。
Swiftはレファレンスがないのでしょうか?
(調べたいにも調べられず)
上記の3つの部分の役割は何なのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/13 13:01
2017/06/13 13:07 編集
退会済みユーザー
2017/06/13 13:20