swift – 在iOS 8共享扩展程序和主应用程序之间共享数据
最近,我一直在做一个简单的iOS 8共享扩展来了解系统的工作原理。正如苹果在
App Extension Programming Guide年:
这意味着扩展和包含应用程序不共享数据。但在同一页苹果带来了一个解决方案:
然后,可以使用NSUserDefaults在包含应用程序和扩展之间共享数据。这正是我想做的。但由于某种原因,它不工作。 在同一页面中,Apple建议使用标准默认值: var defaults = NSUserDefaults.standardUserDefaults() 在WWDC演示(217)中,他们建议一个通用包: var defaults = NSUserDefaults(suiteName: kDefaultsPackage) 此外,我针对包含应用程式目标和扩充功能目标的应用程式群组启用了同一个应用程式群组名称: 但所有这些设置是无所事事。我无法从扩展名检索存储在包含应用程序中的数据。这就像两个目标使用完全不同的NSUserDefaults存储。 所以, >这个方法有解决方案吗?
你应该使用NSUserDefaults这样:
保存数据: NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.yougroup"]; [shared setObject:object forKey:@"yourkey"]; [shared synchronize]; 读取数据: NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.yougroup"]; id value = [shared valueForKey:@"yourkey"]; NSLog(@"%@",value); 这将工作得很好! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |