Creating an image format with an unknown type is an error とエラーが出ました。画像を表示させ、その画像をサーバーに送るコードを書きました。
import Foundation import MobileCoreServices import UIKit class PhotoController:UIViewController,UINavigationControllerDelegate,UIImagePickerControllerDelegate{ @IBOutlet weak var myActivityIndicator: UIActivityIndicatorView! @IBOutlet weak var label: UILabel! @IBOutlet weak var myImageView: UIImageView! private var imagePicker:UIImagePickerController! var textField: UITextField! @IBAction func uploadButtonTapped(_ sender: Any) { myImageUploadRequest() } override func viewDidLoad() { super.viewDidLoad() label.adjustsFontSizeToFitWidth = true label.minimumScaleFactor = 0.5 label.text = "Tap the PhotoSelect or Camera to upload a picture" myActivityIndicator.hidesWhenStopped = true } @IBAction func PhotoSelect(_ sender: Any) { let myPickerController = UIImagePickerController() myPickerController.delegate = self; myPickerController.sourceType = UIImagePickerControllerSourceType.photoLibrary self.present(myPickerController, animated: true, completion: nil) } @IBAction func Camera(_ sender: Any) { let sourceType:UIImagePickerControllerSourceType = UIImagePickerControllerSourceType.camera // カメラが利用可能かチェック if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){ // インスタンスの作成 let cameraPicker = UIImagePickerController() cameraPicker.sourceType = sourceType cameraPicker.delegate = self self.present(cameraPicker, animated: true, completion: nil) } else{ label.text = "error" } } // 撮影が完了時した時に呼ばれる func imagePickerController(_ imagePicker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { myImageView.contentMode = .scaleAspectFit myImageView.image = pickedImage } //閉じる処理 imagePicker.dismiss(animated: true, completion: nil) label.text = "Tap the Send to save a picture" } // 撮影がキャンセルされた時に呼ばれる func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { picker.dismiss(animated: true, completion: nil) label.text = "Canceled" } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //画像のアップロード処理 func myImageUploadRequest(){ //myUrlにはphpファイルのアドレスを入れる let myUrl = NSURL(string:"http://localhost:8000/XXX/"); let request = NSMutableURLRequest(url:myUrl! as URL) request.httpMethod = "POST" //下記のパラメータはあくまでもPOSTの例 _ = [ "userId" : "1234" ] let boundary = generateBoundaryString() request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") let imageData = UIImageJPEGRepresentation(self.myImageView.image!, 1) if(imageData==nil) { return; } let postString = "name=\(textField.text!)" request.httpBody = postString.data(using: .utf8) //myActivityIndicator.startAnimating(); let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in if error != nil { print("error=\(error)") return } // レスポンスを出力 print("******* response = \(response)") let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) print("****** response data = \(responseString!)") DispatchQueue.main.async(execute: { //アップロード完了 }); } task.resume() } func generateBoundaryString() -> String { return "Boundary-\(NSUUID().uuidString)" } }
上記のコードを実行すると、
objc[7381]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x11cdde998) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x11bcc9880). One of the two will be used. Which one is undefined. 2017-07-18 22:01:26.130891 Kenshin_Swift[7381:434713] [Generic] Creating an image format with an unknown type is an error
とエラーが出ました。image formatの指定をどう直せばよいのでしょうか?どういうコードを追加すればよいのでしょうか?
Warning ではなく、エラーですか? アップロードもできていないですか?
回答1件
あなたの回答
tips
プレビュー