NSUbiquityIdentityDidChangeNotification不会使用云套件触发

时间:2015-07-07 16:02:35

标签: ios swift icloud cloudkit

这是我目前的代码

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")

    }

}

"应用程序处于活动状态" &安培; "应用程序处于非活动状态"工作正常。那里没有问题。

我无法解雇它#34;这是有效的"。登录不同的iCloud帐户或退出iCloud帐户。

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

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

2 个答案:

答案 0 :(得分:0)

在Swift中,我有时需要在NSNotificationCenter的函数前面添加<LinearLayout android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginRight="6dip" android:layout_width="match_parent"> <EditText android:id="@+id/find_value" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollHorizontally="true" android:singleLine="true" android:ellipsize="end" android:inputType="text" android:hint="@string/SearchDialog.Hint" /> </LinearLayout> 来查找它。

所以而不是

@objc

我试试

func handleIdentityChange(notification:NSNotification) {

答案 1 :(得分:0)

this question查看我的评论。我也从未收到NSUbiquityIdentityDidChangeNotification。在iOS中,当您更改帐户时,您的应用会被杀死。在tvOS中,您可以使用NSUbiquitousKeyValueStoreAccountChange