如何在目标c中共享设备中的文件?

时间:2018-03-08 12:53:27

标签: ios objective-c

我使用以下代码使用群组共享在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];

此代码在模拟器上正常工作,但它不在真实设备上。我不明白如何获取文件。请帮帮我。

1 个答案:

答案 0 :(得分:0)

NSSearchPathForDirectoriesInDomains只返回适合您当前流程的网址。您需要将共享数据存储在应用组的容器中。

containerURL(forSecurityApplicationGroupIdentifier:)会为您提供应用群组容器的网址。