是否可以检查用户是否已连接到他的Apple帐户?如果他不是,请他连接?
答案 0 :(得分:5)
是的,可以通过检查ubiquityIdentityToken
中的NSFileManager
对象是否已设置来获取Apple帐户(iCloud)状态。你可以使用这样的东西:
Swift 4
var iCloudAvailability: Bool {
return FileManager.default.ubiquityIdentityToken != nil
}
Swift 3
var icloudStatus: Bool {
return NSFileManager.defaultManager().ubiquityIdentityToken != nil ? true : false
}
true
的值表示用户已登录,并且false
该用户未登录,因此您可以提供某种视图以要求用户进行连接。
来自Apple文档:
当iCloud当前可用时,此属性包含一个表示当前用户身份的不透明对象。如果iCloud因任何原因不可用或没有登录用户,则此属性的值为nil。访问此属性的值相对较快,因此您可以在应用程序的主线程中检查启动时的值。
答案 1 :(得分:0)
如果您正在检查iCloud服务,那么从CloudKit可以使用CKContainer类获取用户帐户状态,如下所示
CKContainer *container = [CKContainer defaultContainer];
[container accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError * _Nullable error) {
//Here goes your code to handle the account status
}];
答案 2 :(得分:0)
基于Said Sikira答案的iOS 10.x swift 4.0
func icloudStatus() -> Bool?{
return FileManager.default.ubiquityIdentityToken != nil ? true : false
}