应用程序组中的 NSUserDefaults 不起作用
NSUserDefaults in App Groups Not Working
我正在尝试在我的应用程序中使用应用程序组授权,以便 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?
注意 我的包标识符与手表套件扩展目标不同。我需要一个新的 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];
我正在尝试在我的应用程序中使用应用程序组授权,以便 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?
注意 我的包标识符与手表套件扩展目标不同。我需要一个新的 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];