Ios 检查用户是否已连接到其Apple帐户,如果未连接,请他连接到该帐户

Ios 检查用户是否已连接到其Apple帐户,如果未连接,请他连接到该帐户,ios,objective-c,swift,account,Ios,Objective C,Swift,Account,是否可以检查用户是否连接到其Apple帐户?如果他没有,请他连接?是的,可以通过检查NSFileManager中是否设置了ubiquityIdentityToken对象来获取Apple帐户iCloud状态。您可以使用以下内容: 斯威夫特4 斯威夫特3 值true表示用户已登录,值false表示用户未登录,因此您可以显示某种视图以请求用户连接 从Apple文档中: 当iCloud当前可用时,此属性包含表示当前用户身份的不透明对象。如果iCloud因任何原因不可用或没有登录用户,则此属性的值为零。访

是否可以检查用户是否连接到其Apple帐户?如果他没有,请他连接?

是的,可以通过检查NSFileManager中是否设置了ubiquityIdentityToken对象来获取Apple帐户iCloud状态。您可以使用以下内容:

斯威夫特4

斯威夫特3

值true表示用户已登录,值false表示用户未登录,因此您可以显示某种视图以请求用户连接

从Apple文档中:

当iCloud当前可用时,此属性包含表示当前用户身份的不透明对象。如果iCloud因任何原因不可用或没有登录用户,则此属性的值为零。访问此属性的值相对较快,因此您可以在启动时从应用程序的主线程检查该值


是,通过检查NSFileManager中是否设置了ubiquityIdentityToken对象,可以获取Apple帐户iCloud状态。您可以使用以下内容:

斯威夫特4

斯威夫特3

值true表示用户已登录,值false表示用户未登录,因此您可以显示某种视图以请求用户连接

从Apple文档中:

当iCloud当前可用时,此属性包含表示当前用户身份的不透明对象。如果iCloud因任何原因不可用或没有登录用户,则此属性的值为零。访问此属性的值相对较快,因此您可以在启动时从应用程序的主线程检查该值


如果您正在检查iCloud服务,则可以从CloudKit使用CKContainer类获取用户帐户状态,如下所示

CKContainer *container = [CKContainer defaultContainer];
[container accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError * _Nullable error) {
    //Here goes your code to handle the account status
}];

如果您正在检查iCloud服务,则可以从CloudKit使用CKContainer类获取用户帐户状态,如下所示

CKContainer *container = [CKContainer defaultContainer];
[container accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError * _Nullable error) {
    //Here goes your code to handle the account status
}];

iOS 10.x swift 4.0基于答案


iOS 10.x swift 4.0基于答案

CKContainer *container = [CKContainer defaultContainer];
[container accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError * _Nullable error) {
    //Here goes your code to handle the account status
}];
func icloudStatus() -> Bool?{
    return FileManager.default.ubiquityIdentityToken != nil ? true : false
}