NSUbiquitousKeyValueStoreDidChangeExternallyNotification未使用临时分发触发

时间:2014-03-02 12:50:43

标签: ios icloud ad-hoc-distribution

我在这里报告了代码。问题是,使用我的开发设备,它可以正常运行,等待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 ************/

2 个答案:

答案 0 :(得分:1)

你的选择器看起来不对,它应该只有一个参数(参见NSNotificationCenter文档。你应该有

selector:@selector(iCloudSync:)     //note the double dot

并且您的iCloudSync功能应如下所示:

-(void) iCloudSync:(NSNotification *)notification
{
do things...
}

答案 1 :(得分:0)

您可以在[[NSNotificationCenter defaultCenter] ...之前和之后放置日志以确认您是否真的在AD Hoc设备上设置了它?

PS:是“dev”和“AD HOC”设备是同一设备还是2个不同的设备?我看到一家公司,不允许iCloud通过profil。用户无法设置iCloud enable ....