gpt4 book ai didi

ios - 应用程序组中的 NSUserDefaults 不起作用

转载 作者:可可西里 更新时间:2023-11-01 06:14:27 27 4
gpt4 key购买 nike

我正在尝试在我的应用程序中使用应用程序组授权,以便 NSUserDefaults 处理 iPhone 应用程序和 WatchKit 扩展之间的数据。

我转到 iPhone 目标中的功能,打开应用程序组,并确保选择了 group.com.316apps.iPrayed。然后我转到 WatchKit Extension Target 并对其 Capabilities 执行相同的操作。

在应用程序的 iPhone 端,我输入了以下代码:

PFUser *me2 = [PFUser currentUser];
NSLog(@"USERNAME%@", me2.username);
NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.316apps.iPrayed"];
[testDefaults setObject:me2.username forKey:@"username"];
[testDefaults setObject:me2.password forKey:@"password"];

[testDefaults synchronize];

在 WatchKit InterfaceController 中,我有以下内容,但 NSLog 始终显示“null”

NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.316apps.iPrayed"];
NSString *theirUser = [testDefaults objectForKey:@"username"];
NSString *theirPass = [testDefaults objectForKey:@"password"];
NSLog(@"%@", theirUser);

为什么 WatchKit 没有正确读取 NSUserDefaults?

注意 我的包标识符与 watch 套件扩展目标不同。我需要一个新的 Apple ID 吗?

最佳答案

你的包标识符不一样没关系,但是它们应该是这种格式

The App Bundle ID -> com.companyName.productName
The Extension Bundle ID -> com.companyName.productName.extensionName

如果他们遵循上面的格式,那么请引用下面的答案

您需要添加一个观察者,它知道 NSUserDefaults 中的值何时发生变化。

引用这段代码:

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(userDefaultsDidChange:)
name:NSUserDefaultsDidChangeNotification
object:nil];

关于ios - 应用程序组中的 NSUserDefaults 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29393158/

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