Swiftでiosアプリを書くことを学んでいます。
しかし、Google Developers ページの指示に従うと。
https://developers.google.com/identity/sign-in/ios/start?ver=swift
Xcodeは、多くのコンパイルが間違っていることを示しています。
たとえば、命令の次のコードは、AppDelegate に追加する必要があります。
func application(application: UIApplication,
openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
var options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication,
UIApplicationOpenURLOptionsAnnotationKey: annotation]
return GIDSignIn.sharedInstance().handleURL(url,
sourceApplication: sourceApplication,
annotation: annotation)
}
これは表示されます
ambiguous reference to member 'subscript'
そして、このコードを次のように変更する必要があります。
private func application(application: UIApplication,
openURL url: URL, options: [String: AnyObject]) -> Bool {
return GIDSignIn.sharedInstance().handle(url as URL!,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication.rawValue] as? String,
annotation: options[UIApplicationOpenURLOptionsKey.annotation.rawValue])
}
次に、コンパイラを渡します。
もう 1 つのコンパイル エラーは、AppDelegate に次の 2 つのコードを追加する必要があることです。
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!,
withError error: NSError!) {
if (error == nil) {
// Perform any operations on signed in user here.
let userId = user.userID
// ...
} else {
print("\(error.localizedDescription)")
}
}
func signIn(signIn: GIDSignIn!, didDisconnectWithUser user:GIDGoogleUser!,
withError error: NSError!) {
// Perform any operations when the user disconnects from app here.
// ...
}
デバッガーは、関数名を置き換える必要があることを教えてくれます
「signIn」を「sign」に
そして、それはコンパイラを通過します。
最後の 2 つのコンパイル エラーは、upside と同じです。
コンパイラは、UIviewcontroller コードで関数「signIn」を「sign」に変更する必要があることを教えてくれます。
"しかし"
コンパイラの指示に完全に従い、シミュレーターを正常に実行しましたが、ユーザーがアプリでユーザーのデータを取得できるようにしても、データを取得できません。
そして、コンパイラは私のためにこれを示しています:
application:openURL:sourceApplication:annotation の実装: 見つかりません。ハンドラーを App Delegate に追加してください。クラス: MyClassName .AppDelegate
それで......
アプリケーションがハンドラーを見つけられない理由を知っている人はいますか?
これらのコンパイル エラーは ios が 10 に更新されたことが原因であると推測されます。関数の名前を変更するアクションが Google のデータを取得できなかったかどうかはわかりません。
ご回答有難うございます。:)
Google デベロッパー ページ: https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift