![](/img/trans.png)
[英]I added some files in my ios project but they are not showing up in XCode project navigator [ XCode 13.2 ]
[英]Xcode keeps giving .signUp is only available in iOS 13.2 . Is this some Xcode bug?
我正在使用 Xcode 11.3.1 並嘗試實現“使用 Apple 登錄”。 但是 Xcode 不斷給出這個錯誤。 我試過重建,清理我的項目,但似乎沒有任何效果。
我想要做的是 - 如果設備有 iOS 13.2,則顯示“用蘋果注冊”,否則顯示“用蘋果登錄”按鈕,因為 type:signup 在 iOS 13.2 或更新版本中可用。 這是我的代碼:
@available(iOS 13.0, *)
lazy var appleSignInButton:ASAuthorizationAppleIDButton = {
let button : ASAuthorizationAppleIDButton
if #available(iOS 13.2, *){
button = ASAuthorizationAppleIDButton(type: .signUp, style: .black)
}else{
button = ASAuthorizationAppleIDButton(type: .signIn, style:.black)
}
button.addTarget(self, action: #selector(appleSignUP), for: .touchDown)
return button
}()
使用函數而不是計算屬性來解決此問題。
@available(iOS 13.0, *)
func getAppleSignInButton() -> ASAuthorizationAppleIDButton {
let button: ASAuthorizationAppleIDButton
if #available(iOS 13.2, *) {
button = ASAuthorizationAppleIDButton(type: .signUp, style: .black)
}else{
button = ASAuthorizationAppleIDButton(type: .signIn, style: .black)
}
button.addTarget(self, action: #selector(appleSignUP), for: .touchDown)
return button
}
如果需要,您也可以將其分開並保留惰性變量。
@available(iOS 13.0, *)
lazy var appleSignInButton: ASAuthorizationAppleIDButton = {
let button = getSignUpOrInButton()
button.addTarget(self, action: #selector(appleSignUP), for: .touchDown)
return button
}()
@available(iOS 13.0, *)
private func getSignUpOrInButton() -> ASAuthorizationAppleIDButton {
if #available(iOS 13.2, *) {
return ASAuthorizationAppleIDButton(type: .signUp, style: .black)
} else {
return ASAuthorizationAppleIDButton(type: .signIn, style: .black)
}
}
ASAuthorizationAppleIDButton.ButtonType.signUp
根據 Apple 的文檔,確實僅在 iOS 13.2+ 中可用:
SDKs
iOS 13.2+
macOS 10.15.1+
Mac Catalyst 13.2+
tvOS 13.1+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.