gpt4 book ai didi

ios - 使用 Xamarin,为什么我的应用程序设置默认为 false?

转载 作者:行者123 更新时间:2023-12-02 12:21:26 30 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题。我已经为 iPad 应用程序创建了一个应用程序设置,由于某种原因,该设置默认为 false,但只有在用户打开设置并观察实际设置之前。至少观察一次后,该设置将始终返回正确的值,无论是真还是假(如果该设置是量子粒子,对我来说更有意义)。此行为仅发生在设备上,而不发生在模拟器中。此外,当我在设备上以 Debug模式启动或通过 TestFlight 发布时,它是一致的。

我的设置在 Root.plist 中定义,该设置位于我的客户端解决方案中的 Settings.bundle 文件夹中。该文件中定义的所有其他设置都可以正常工作。

由于我无法真正展示 Xamarin 设计器,因此这是 Root.plist 中的 XML:

<dict>
<key>Title</key>
<string>Camera Settings</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<true/>
<key>Key</key>
<string>useCameraForScanning</string>
<key>Title</key>
<string>Use Camera for Scanning</string>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
</dict>

这是我的访问器代码:

private const string useCameraForScanningKey = "useCameraForScanning";
private static bool useCameraForScanning = true;
public static bool UseCameraForScanning
{
get
{
bool useCamera = NSUserDefaults.StandardUserDefaults.BoolForKey(useCameraForScanningKey);
useCameraForScanning = useCamera;
return useCameraForScanning;
}
set { NSUserDefaults.StandardUserDefaults.SetBool(value, useCameraForScanningKey); }
}

整个访问器中的断点证明该设置被检索为 false。我对 Root.plist 业务非常陌生,所以我猜我在这里遗漏了一些明显的东西。

预先感谢您提供的任何帮助!

最佳答案

请注意,如果此键没有设置或者是第一次运行,则 NSUserDefaults.BoolForKey 返回 NOfalse应用。它有点解释了你的问题,至少就我所理解的问题而言。

<小时/>

看看 Apple documentation :

boolForKey:

返回与指定键关联的 bool 值。

  • (BOOL)boolForKey:(NSString *)defaultName

参数

defaultName:当前用户默认数据库中的键。

返回值

如果 bool 值与用户默认值中的 defaultName 关联,则返回该值。否则,返回NO

关于ios - 使用 Xamarin,为什么我的应用程序设置默认为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21195425/

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