我使用以下代码使用群组共享在app.sharing数据中创建了今天的扩展程序。
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.xxxxx.offline.sqlitedatabase"];
NSString *filestirng =[documentsDirectory stringByAppendingPathComponent:@"AppointmentDB.sqlite"];
[sharedDefaults setValue:filestirng forKey:@"filepath"];
我使用以下代码
在扩展程序中获取此文件NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.xxxx.offline.sqlitedatabase"];
NSString *string = [defaults objectForKey:@"filepath"];
[[database sharedInstance]createtable];
[self removeFile:@"xxxxx.sqlite"];
NSData *dataFile = [[NSFileManager defaultManager] contentsAtPath:string];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* fileName = [NSString stringWithFormat:@"xxxx.sqlite"];
NSString* fileAtPath = [documentsDirectory stringByAppendingPathComponent:fileName];
[dataFile writeToFile:fileAtPath atomically:NO];
此代码在模拟器上正常工作,但它不在真实设备上。我不明白如何获取文件。请帮帮我。
答案 0 :(得分:0)
NSSearchPathForDirectoriesInDomains
只返回适合您当前流程的网址。您需要将共享数据存储在应用组的容器中。
containerURL(forSecurityApplicationGroupIdentifier:)会为您提供应用群组容器的网址。