在iOS App和Todays Extension之间共享数据

时间:2015-04-24 20:20:16

标签: ios

我有一个使用设备上数据库的iOS应用。我想从我的App Extension访问数据库。数据库访问需要一个我插入NSUserDefaults的路径,如下所示。我首先运行App Target,触发以下代码。

 NSUserDefaults *userDefaults = [[NSUserDefaults alloc] init];
    [userDefaults setValue:databasePathFromApp forKey:@"DatabasePath"];
    [userDefaults synchronize];

然后我运行Todays Extension,它访问主应用程序设置的NSUserDefaults。

 NSUserDefaults *userDefaults = [[NSUserDefaults alloc] init];

    _databasePath = [userDefaults valueForKey:@"DatabasePath"];

_databasePath总是为零。我究竟做错了什么?我是否必须使用应用程序组在应用程序和今天的扩展程序之间共享数据库。

1 个答案:

答案 0 :(得分:0)

您应该使用以下NSUserDefaults,并确保您必须在临时配置文件中启用应用程序组,并且应用程序组必须配置为绿色符号,并且应该添加到您的临时配置文件& BundleID。

NSUserDefaults * sharedUserDefault = [[NSUserDefaults alloc] initWithSuiteName:@" group.yougroup"]; [sharedUserDefault setObject:object forKey:@" yourkey"]; [sharedUserDefault synchronize];

NSUserDefaults * sharedUserDefault = [[NSUserDefaults alloc] initWithSuiteName:@" group.yougroup"]; sharedUserDefault value = [sharedUserDefault valueForKey:@" yourkey"];