gpt4 book ai didi

ios - 在iOS App和WatchKit Extension之间共享Plist

转载 作者:行者123 更新时间:2023-12-01 18:52:51 29 4
gpt4 key购买 nike

我有一个应用程序可以保存和使用plist文件中的数据。我正在开发一个WatchKit扩展,该扩展需要访问相同的plist文件以显示数据并将其保存到该文件。我知道我需要使用应用程序组,但是我不知道如何在iOS应用程序和WatchKit扩展之间共享plist。

这是我目前如何保存到iOS应用程序中的plist的方法。

NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [[paths objectAtIndex:0]stringByAppendingPathComponent:@"locations.plist"];
BOOL fileExists = [fileManager fileExistsAtPath:docPath];
NSError *error = nil;

if (!fileExists) {
NSString *strSourcePath = [[NSBundle mainBundle]pathForResource:@"locations" ofType:@"plist"];
[fileManager copyItemAtPath:strSourcePath toPath:docPath error:&error];
}

NSString *path = docPath;
NSMutableArray *plistArray = [[NSMutableArray alloc]initWithContentsOfFile:path];
NSDictionary *locationDictionary = [NSDictionary dictionaryWithObjectsAndKeys:self.locationNameTextField.text, @"locationName", latString, @"latitude", longString, @"longitude", nil];
[plistArray insertObject:locationDictionary atIndex:0];
[plistArray writeToFile:docPath atomically:YES];

最佳答案

一旦设置了应用程序组(在您的主要iPhone应用程序和Watch Extension中),您就可以获取共享文件夹的路径:

NSURL *groupContainerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"YourAppGroupSuiteName"];
NSString *groupContainerPath = [groupContainerURL path];

然后,您可以使用 groupContainerPath来构建 docPath。否则,您的代码应保持原样。

关于ios - 在iOS App和WatchKit Extension之间共享Plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826772/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com