gpt4 book ai didi

ios - 无法从 iPhone 应用程序读取 WatchKit 设置包

转载 作者:行者123 更新时间:2023-11-28 17:51:33 24 4
gpt4 key购买 nike

在 watchOS 2 中,您似乎无法从 watch 扩展本身访问 WatchKit 设置包中的数据,因为它现在在 watch 上运行,而不是在主机 iPhone 上运行。提出了一个解决方案here ,就是读取iPhone上的数据,然后传到 watch 上。

我的问题是,我不仅可以从 watch 上读取数据,甚至还可以从手机上读取数据。在 ViewController.m 中,我有以下代码来获取开关的值:

NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.de.iossoftware.SocialAppDataSharing"];
NSLog(@"%d", [[[NSUserDefaults alloc] initWithSuiteName:@"group.de.iossoftware.SocialAppDataSharing"] boolForKey:@"key_here"]);

它总是返回“0”,即使启用了设置包中的开关也是如此。

我正在使用应用程序组,并确保在设置包和 iPhone 应用程序中使用相同的标识符: Watch settings bundle .plist

为什么我无法从我的手机访问 bundle 数据?

最佳答案

试试这个:

 NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.de.iossoftware.SocialAppDataSharing"];
[userDefaults setValue:@55 forKey:@"myNumber"];
[userDefaults synchronize];

在iOS模拟器中执行一次,然后移除并添加:

    NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.de.iossoftware.SocialAppDataSharing"];
NSLog(@"My number: %@",[userDefaults valueForKey:@"myNumber"]

再执行一次。你应该看到之前保存的值

NSError *error = nil;
NSLog(@"### Directory path: %@",[[NSFileManager defaultManager]contentsOfDirectoryAtPath:[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.de.iossoftware.SocialAppDataSharing"].path error:&error]);
NSLog(@"Error: %@",error);

在最后一行中,您将记录保存组文件的文件路径。在 finder 中打开它,您应该会在 ...../Library/Preferences/下看到一个包含创建的 NSUserdefaults 的 plist

关于ios - 无法从 iPhone 应用程序读取 WatchKit 设置包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177834/

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