需求:公司多个app之间数据共享
注意:此方法只能使用于同一个开发者账号!!!
1.登录开发者账号,创建App Groups
登录开发者账号开发者中心传送门
点击App Groups那栏,右上方添加AppGroup
image
然后continue->Done就行了
2.项目中配置
打开你的xcode项目工程,先选中根目录,在target中选中你的工程–>Capabilites(注意:要用到数据共享的工程都要配置)
工程配置.png
3.项目中使用(以NSUserDefaults和NSFileManager为例)
工程一:生成数据部分
#pragma mark - NSUserDefaults
- (void)setAppGroup1
{
NSUserDefaults *myDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
[myDefaults setObject:@"value" forKey:@"key"];
NSLog(@"%@", [myDefaults valueForKey:@"key"]);
}
#pragma mark - NSFileManager
- (void)setAppGroup2{
//获取分组的共享目录
NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
NSURL *fileURL = [groupURL URLByAppendingPathComponent:@"demo.txt"];
//写入文件
[@"abc" writeToURL:fileURL atomically:YES encoding:NSUTF8StringEncoding error:nil];
//读取文件
NSString *str = [NSString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:nil];
NSLog(@"str = %@", str);
}
工程二:获取共享数据部分
#pragma mark - NSUserDefaults
- (void)getByAppGroup1
{
NSUserDefaults *myDefaults = [[NSUserDefaults alloc]initWithSuiteName:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
NSString *content = [myDefaults objectForKey:@"key"];
NSLog(@"%@",content);
}
#pragma mark - NSFileManager
- (void)getByAppGroup2{
//获取分组的共享目录
NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.test.appgroup"];//此处id要与开发者中心创建时一致
NSURL *fileURL = [groupURL URLByAppendingPathComponent:@"demo.txt"];
//读取文件
NSString *str = [NSString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:nil];
NSLog(@"str = %@", str);
}
至此就结束了,大佬勿喷,菜鸡献上
官方文档附上
网友评论