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