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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Q&A

解決済

1回答

1529閲覧

swiftでのGoogleAPIClientForRESTを利用する際のエラー

isson

総合スコア18

Swift

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

0グッド

0クリップ

投稿2018/09/20 00:49

前提・実現したいこと

swiftでGoogleDriveにアクセスしてファイルを参照したのですが

ファイル一覧を取得する際のコードに以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

// 2-3. 検索するパスを指定します。
query.q = "'(https://www.googleapis.com/drive/v3/files)' in parents"

の後の
query.orderBy = "folder, name"
にて
queryの部分にラインがつき
Expected expression in list of expressionsが表示されます

この行をコメントアウトしても
次の行の
queryの部分にラインがつき
Expected expression in list of expressionsが表示されます

ラーメッセージ

### 該当のソースコード /// GooleDriveファイル情報リスト var fileInfoList = [GTLRDrive_File]() /// 次ページ取得用トークン var nextPageToken: String? override func viewWillAppear(_ animated: Bool) { // ファイル情報リストをクリアします。 fileInfoList.removeAll(keepingCapacity: false) // ファイル情報リストを取得します。 getFileInfoList() } /** GoogleDrive APIで、ファイル情報リストを取得します。 */ func getFileInfoList() { // 1. クエリオブジェクトを取得します。 var query = GTLRDriveQuery_FilesList.query() query.pageSize = 100 // 2-2. 検索で取得する項目を指定します。 query.fields = "nextPageToken, files(folder, id, name, size, mimeType, fileExtension, createdTime, modifiedTime, starred, trashed, iconLink, parents, properties, permissions)" // 2-3. 検索するパスを指定します。 query.q = "'(https://www.googleapis.com/drive/v3/files)' in parents" // 2-4.取得順を指定します。 query.orderBy = "folder, name" // 2-5. 次ページのトークンをセットします。 //nextPageTokenがnilならば、無視されます。 query.pageToken = nextPageToken nextPageToken = nil // 2-6. クエリを実行した結果を処理するコールバックメソッドを登録します。 let selector = #selector(SchoolListViewController.viewController(vc: finishedWithAuth: error:)) let goListScleen = UIApplication.shared.delegate as? AppDelegate let serviceDrive = goListScleen?.googleDriveServiceDrive // 3. クエリを実行します。 serviceDrive.executeQuery(query, delegate: self, didFinish: selector) } /** 4. GoogleDriveファイルの取得結果を表示します。 - Parameter ticket: チケット - Parameter response: レスポンス - Parameter error: エラー情報 */ ### 試したこと 2-3. 検索するパスを指定します。 query.q = "'(https://www.googleapis.com/drive/v3/files)' in parents" の行の前に 2−4や2−5を持ってくるとエラーが消えるのですが理由がわかりません よろしくお願いいたします

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

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

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

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

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

fuzzball

2018/09/20 01:21

コードは ``` で囲って下さい。
guest

回答1

0

ベストアンサー

予備知識

Swiftは(変数名)で文字列の中に変数の値を埋め込むことが出来ます。

swift

1let value = 123 2print("値は(value)です") 3//=> 値は123です

本題

下記のコードの、

swift

1query.q = "'(https://www.googleapis.com/drive/v3/files)' in parents" 2

(https://www.googleapis.com/drive/v3/files)の部分がこの形になっており、https://www.googleapis.com/drive/v3/filesを変数名と解釈しようとしてエラーが出ているのだと思います。

例えば、

swift

1query.q = "'https://www.googleapis.com/drive/v3/files' in parents" 2

とすればエラーは出ないでしょう。

妄想

参考にしたコードが、

swift

1let stringUrl = "https://www.googleapis.com/drive/v3/files" 2query.q = "'(stringUrl)' in parents"

のような感じになっていたんじゃないかと妄想。

投稿2018/09/20 01:33

編集2018/09/20 03:57
fuzzball

総合スコア16731

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問