如何识别以飞行模式登录的iCloud用户? [英] How to identify iCloud logged in user in airplane mode?

查看:159
本文介绍了如何识别以飞行模式登录的iCloud用户?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在飞行模式下获取 userRecordID ,但是以任何其他方式出现错误?

  class func asdf(){

var defaultContainer = CKContainer.defaultContainer()
var publicDatabase = defaultContainer.publicCloudDatabase

defaultContainer .fetchUserRecordIDWithCompletionHandler({userRecordID,如果错误== nil {

println( userRecordID.recordName:\(userRecordID.recordName))中的错误

} else {
println( \(error.localizedDescription))
}
})
}

终端:无法续订我们的安全会话



我放置了<$ fetchUserRecordIDWithCompletionHandler 之外的c $ c> accountStatusWithCompletionHandler 调用,该调用返回了 CKAccountStatus.Available 。 / p>

解决方案

我遇到了这段代码,将最近的代码与previo进行了比较我们登录用户的令牌,如果相同,则使用以前下载的userRecordID。唯一的问题是,在某些情况下,我的iPad ubiquityIdentityToken 方法即使在登录时也返回nil,很奇怪。 p $ p> class func checkUser(){

let ubiquityIdentityToken = NSFileManager.defaultManager()。ubiquityIdentityToken
let status = Utility.status()
让prevUbiquityIdentityToken = status.objectForKey( ubiquityIdentityToken)

如果ubiquityIdentityToken!= nil& ubiquityIdentityToken!.isEqual(prevUbiquityIdentityToken){

}否则,如果ubiquityIdentityToken!= nil& !ubiquityIdentityToken!.isEqual(prevUbiquityIdentityToken){

status.setObject(ubiquityIdentityToken !, forKey: ubiquityIdentityToken)
Utility.saveStatus(status)

let defaultContainer = CKContainer.defaultContainer()
let publicDatabase = defaultContainer.publicCloudDatabase

defaultContainer.fetchUserRecordIDWithCompletionHandler({userRecordID,
中的错误,如果错误== nil {
// do一些东西
})
} else {
println( \(error.localizedDescription))
}
})
} else {
//做一些事情
status.removeObjectForKey( ubiquityIdentityToken)
Utility.saveStatus(status)
}
}


I try to get userRecordID in airplane mode, but I get an error, any other way?

class func asdf() {

    var defaultContainer = CKContainer.defaultContainer()
    var publicDatabase = defaultContainer.publicCloudDatabase

    defaultContainer.fetchUserRecordIDWithCompletionHandler({ userRecordID, error in

        if error == nil {

            println("userRecordID.recordName : \(userRecordID.recordName)")
        } else {
            println("\(error.localizedDescription)")
        }
    })
}

Terminal: Couldn't renew our secure session

I put an accountStatusWithCompletionHandler call outside of fetchUserRecordIDWithCompletionHandler, that returned CKAccountStatus.Available.

解决方案

I came across to this code, comparing recently and previous logged in user's token, and if the same, use the previously downloaded userRecordID. The only problem that in some cases on my iPad ubiquityIdentityToken method returns nil even dow I am logged in, strange.

class func checkUser() {

        let ubiquityIdentityToken = NSFileManager.defaultManager().ubiquityIdentityToken
        let status = Utility.status()
        let prevUbiquityIdentityToken = status.objectForKey("ubiquityIdentityToken")

        if ubiquityIdentityToken != nil && ubiquityIdentityToken!.isEqual(prevUbiquityIdentityToken) {

        } else if ubiquityIdentityToken != nil && !ubiquityIdentityToken!.isEqual(prevUbiquityIdentityToken) {

            status.setObject(ubiquityIdentityToken!, forKey: "ubiquityIdentityToken")
            Utility.saveStatus(status)

            let defaultContainer = CKContainer.defaultContainer()
            let publicDatabase = defaultContainer.publicCloudDatabase

            defaultContainer.fetchUserRecordIDWithCompletionHandler({ userRecordID, error in
                if error == nil {
                    //do some stuff
                    }) 
                } else {
                    println("\(error.localizedDescription)")
                }
            })
        } else {
            //do some stuff
            status.removeObjectForKey("ubiquityIdentityToken")
            Utility.saveStatus(status)
        }
    }

这篇关于如何识别以飞行模式登录的iCloud用户?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆