【问题标题】:Check if user is connected to his Apple Account, if not, ask him to connect to it检查用户是否连接到他的 Apple 帐户,如果没有,请他连接到它
【发布时间】:2015-11-17 11:48:41
【问题描述】:

是否可以检查用户是否已连接到他的 Apple 帐户?如果他不是,请他连接?

【问题讨论】:

    标签: ios objective-c swift account


    【解决方案1】:

    是的,可以通过检查NSFileManager 中的ubiquityIdentityToken 对象是否已设置来获取Apple 帐户(iCloud)状态。你可以使用这样的东西:

    斯威夫特 4

    var iCloudAvailability: Bool {
      return FileManager.default.ubiquityIdentityToken != nil
    }
    

    斯威夫特 3

    var icloudStatus: Bool {
        return NSFileManager.defaultManager().ubiquityIdentityToken != nil ? true : false
    }
    

    true 的值表示用户已登录,false 表示用户未登录,因此您可以呈现某种视图来要求用户连接。

    来自 Apple 文档:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        iOS 10.x swift 4.0 基于Said Sikira 答案

        func icloudStatus() -> Bool?{
            return FileManager.default.ubiquityIdentityToken != nil ? true : false
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-22
          • 1970-01-01
          • 2021-11-30
          • 1970-01-01
          相关资源
          最近更新 更多