iOS 7:续订凭证的完成是否针对帐户:完成:是否曾经在状态为AcAccountCredentialRenewResultReweed的情况下运行?
ACAccountStore类有一个方法iOS 7:续订凭证的完成是否针对帐户:完成:是否曾经在状态为AcAccountCredentialRenewResultReweed的情况下运行?,ios,ios7,Ios,Ios7,ACAccountStore类有一个方法renewCredentialsForAccount:completion:,该方法将提示用户在设置应用程序中为其帐户输入新密码(请参见下面的屏幕截图)。如果用户点击Cancel,则调用完成块,并使用acAccountCredentialRenewalResultRecjected的RenewalResult 还有两个其他有效结果(显然?)从未调用此块:acAccountCredentialRenewalResultFailed和acAccountCred
renewCredentialsForAccount:completion:
,该方法将提示用户在设置应用程序中为其帐户输入新密码(请参见下面的屏幕截图)。如果用户点击Cancel,则调用完成块,并使用acAccountCredentialRenewalResultRecjected的RenewalResult
还有两个其他有效结果(显然?)从未调用此块:acAccountCredentialRenewalResultFailed和acAccountCredentialRenewalResultNewed。在AcAccountCredentialRenewResultReweed的情况下,应用程序应重新尝试帐户访问,因为(可能)用户已在设置应用程序中更新了密码
问题是,完成块从未以该状态调用。我看到一些示例代码表明,应该订阅ACAccountStoreDidChangeNotification通知,并在发生这种情况时调用renewCredentialsForAccount:completion:
。这似乎也不对:如果用户点击该提示符中的设置按钮,则会发布该通知,因此此时调用renewCredentialsForAccount:completion:
,会导致这种奇怪的交互:
renewCredentialsForAccount:completion:
将再次调用,并再次显示“输入Twitter密码”提示,但会在设置应用程序上显示(这毫无意义)