这是我当前的代码
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/