iOS: как получить общий ресурс, выбрать, обновить, вставить, удалить в том же SQLite в основном приложении и в расширении общего ресурса (без coreData)? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь поделиться SQLite из основного приложения с расширением общего доступа, чтобы обновить, вставить и удалить несколько строк из общего расширения в том же SQLite. Мне нужно, чтобы информация была синхронизирована между ними.

#ifndef APP_EXTENSION
    dbPath = (NSString *)[[(AppDelegate*)[[UIApplication sharedApplication] delegate] libGo2FactPath] stringByAppendingPathComponent:GoFactMDB];
#else
    NSURL *appGroupDirectoryPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier: @"group.com.sdfsdfsdfsdfsdfsdf.GofsdfsdfsdFactDB"];
    NSURL *dataBaseURL = [appGroupDirectoryPath URLByAppendingPathComponent: GoFactMDB];

//    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
//    NSString *libGo2FactPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Go2Fact"];
//    dbPath = storeURL.absoluteString;
#endif
    fileMgr = [NSFileManager defaultManager];

    // Check if the database exist
    if (![fileMgr fileExistsAtPath:dbPath])
    {
        // If database doesn't exist, copy from the database template in the bundle
        NSString* fileName = [[GoFactMDB lastPathComponent] stringByDeletingPathExtension];
        NSString* extension = [GoFactMDB pathExtension];

        NSString* dbTemplatePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
        NSError* error = nil;
        [fileMgr copyItemAtPath:dbTemplatePath toPath:dbPath error:&error]; //FIXME: if database not existing

        if (error)
        {
            //FIXME: xx
            NSLog(@"can't copy db.");
            return;
        }
    }  

Любые идеи.

...