Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 保存PFUser会导致sessionToken更新_Ios_Swift_Parse Platform_Parse Server_Parse Ios Sdk - Fatal编程技术网

Ios 保存PFUser会导致sessionToken更新

Ios 保存PFUser会导致sessionToken更新,ios,swift,parse-platform,parse-server,parse-ios-sdk,Ios,Swift,Parse Platform,Parse Server,Parse Ios Sdk,在我的项目中,我有一个子类PFUser,名为FRUser。目前我面临的问题是,只要我修改用户并保存这些更改(例如使用以下代码),parse就会更新会话令牌 let user = FRUser.current() user?.fullName = "Test" user?.saveInBackground() 这里的问题是,我需要手动注意不要在保存用户对象的同时调用CloudCode函数,因为如果这样做,我会得到一个无效会话令牌209错误。这是预期的行为吗?或者我怎样才能避免

在我的项目中,我有一个子类
PFUser
,名为
FRUser
。目前我面临的问题是,只要我修改用户并保存这些更改(例如使用以下代码),parse就会更新会话令牌

let user = FRUser.current()
user?.fullName = "Test"
user?.saveInBackground()
这里的问题是,我需要手动注意不要在保存用户对象的同时调用CloudCode函数,因为如果这样做,我会得到一个
无效会话令牌209
错误。这是预期的行为吗?或者我怎样才能避免呢

我在iOS上使用解析版本1.19.0,在sashido.io上使用解析服务器v3.6.0

由于每次启动后都要更新
FRUser.current()
对象,因此在加载数据时遇到大量无效会话令牌错误,因此我开始使用以下代码研究此问题

class SessionController {
    static let shared = SessionController()
    var currentSessionToken: String?
    
    private init() {
        guard let st = FRUser.current()?.sessionToken else { currentSessionToken = nil; return }
        currentSessionToken = st
        startPolling()
    }
    
    private func startPolling() {
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
            guard let oldSt = self.currentSessionToken, let newSt = FRUser.current()?.sessionToken else { return }
            if oldSt != newSt {
                print("Did update session token!")
                print("Old Session token: \(oldSt)")
                print("New Session token: \(newSt)")
                self.currentSessionToken = newSt
            }
            self.startPolling()
        }
    }
}