我在这里报告了代码。问题在于,使用我的开发设备,它可以完美运行,它会等待iCloud,然后调用方法iCloudSync
才可以运行。
使用针对beta测试用户的临时配置文件,它不起作用,因为(我认为-因为控制台中不存在方法iCloudSync
的日志记录),不会触发NSUbiquitousKeyValueStoreDidChangeExternallyNotification
。
我哪里错了?谢谢
/******** GESTIONE ICLOUD ************/
NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore];
if(iCloudStore)
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(iCloudSync)
name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
object:[NSUbiquitousKeyValueStore defaultStore]];
[iCloudStore synchronize];
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey: iCloudEnabled];
}
else
{
NSLog(@"iCloud is not enabled");
[[NSUserDefaults standardUserDefaults] setBool:FALSE forKey: iCloudEnabled];
UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"iCloud not enabled" message:@"iCloud is not working" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alertView show];
}
/******** FINE GESTIONE ICLOUD ************/
最佳答案
您的选择器看起来不对,它应该只有一个参数(请参阅NSNotificationCenter文档。您应该有
selector:@selector(iCloudSync:) //note the double dot
并且您的iCloudSync函数应如下所示:
-(void) iCloudSync:(NSNotification *)notification
{
do things...
}
关于ios - NSUbiquitousKeyValueStoreDidChangeExternallyNotification未随即分发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22127761/