質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

451閲覧

予期しないforの繰り返しが行われてしまいます。

shun--

総合スコア5

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/02/05 00:25

編集2020/02/05 01:27

前提・実現したいこと

期待する結果としては
uploadAction(fileName)、search関数、その結果をもとにself.uploadを処理して次の繰り返しをpictureDicの要素数実行して欲しいのですが
現状は
uploadAction(fileName)、search関数、2回めのuploadAction(fileName)、search関数 ・・・(pictureDicの要素数繰り返す)、uploadFile関数内のif let ID = folderID以降の処理がおこなわれてself.upload処理をpictureDicの要素数繰り返してしまいます。

発生している問題・

@IBAction func finishButtonClick(_ sender: Any) { for (fileName, UIimage) in pictureDic{ saveImageToDocumentLocal(name: fileName, image: UIimage) sleep(3) uploadAction(fileName) } let nextViewController = finishViewController() UIApplication.shared.keyWindow?.rootViewController = nextViewController UIApplication.shared.keyWindow?.rootViewController?.dismiss(animated: false, completion: nil) } func uploadAction(_ file: String) { print(file) if let documentsDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last { let testFilePath = documentsDir.appendingPathComponent(file).path drive?.uploadFile("20200204", filePath: testFilePath, MIMEType: "image/png") { (fileID, error) in print("Upload file ID: (fileID); Error: (error?.localizedDescription)") } } }
public func uploadFile(_ folderName: String, filePath: String, MIMEType: String, onCompleted: ((String?, Error?) -> ())?) { search(folderName) { (folderID, error) in if let ID = folderID { self.upload(ID, path: filePath, MIMEType: MIMEType, onCompleted: onCompleted) } else { self.createFolder(folderName, onCompleted: { (folderID, error) in guard let ID = folderID else { onCompleted?(nil, error) return } self.upload(ID, path: filePath, MIMEType: MIMEType, onCompleted: onCompleted) }) } } } public func search(_ fileName: String, onCompleted: @escaping (String?, Error?) -> ()) { let query = GTLRDriveQuery_FilesList.query() query.pageSize = 1 query.q = "name contains '(fileName)'" service.executeQuery(query) { (ticket, results, error) in onCompleted((results as? GTLRDrive_FileList)?.files?.first?.identifier, error) print("search ID: (String(describing: results)); Error: (String(describing: error))") } }

補足情報(FW/ツールのバージョンなど)

Xcode10.3
Swift4.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問