这是我当前的代码

func applicationDidBecameActive(notification:NSNotification) {

    println("Application is active")

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleIdentityChange:", name: NSUbiquityIdentityDidChangeNotification, object: nil)

}

func applicationBecameInactive(notification:NSNotification) {

    println("Application is inactive")

    NSNotificationCenter.defaultCenter().removeObserver(self, name: NSUbiquityIdentityDidChangeNotification, object: nil)

}

func handleIdentityChange(notification:NSNotification) {

    println("this is working")

    let fileManager = NSFileManager()

    if let token = fileManager.ubiquityIdentityToken {

        println("New token is \(token)")

    }
    else {

        println("User has logged out of iCloud")

    }

}


“应用程序处于活动状态”和“应用程序处于非活动状态”可以正常工作。那里没有问题。

我无法将其触发“正在运行”。通过登录到其他iCloud帐户或注销iCloud帐户。

我在模拟器和实际设备上尝试过。

请帮助我解决此问题或建议其他方法来实现相同的目标(更改iCloud帐户)。

最佳答案

在Swift中,有时我需要在func之前添加@objc以便NSNotificationCenter查找它。

所以代替

func handleIdentityChange(notification:NSNotification) {

我会尝试

@objc func handleIdentityChange(notification:NSNotification) {

关于ios - NSUbiquityIdentityDidChangeNotification不会随云工具一起触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31273770/

10-10 20:39