gpt4 book ai didi

ios - 无法访问 protected 成员 'Foundation.NSDictionary.NSDictionary(System.IntPtr)'

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:17 25 4
gpt4 key购买 nike

我们正在尝试将我们的 Xamarin 构建的应用程序部署到 Apple 应用商店,因此我们需要将我们的应用程序迁移到 Unified Api 以获得 64 位支持。升级到最新版本的 Xamarin.iOS(版本:8.8.2.4)并将应用程序迁移到 Unified Api 后,我们现在得到以下编译错误:

Cannot access protected member 'Foundation.NSDictionary.NSDictionary(System.IntPtr)' via a qualifier of type 'Foundation.NSDictionary'.

错误发生在这一行:

NSDictionary prefSpecification = new NSDictionary(preferences.ValueAt(i));

此方法调用:

public static void RegisterDefaultsFromSettingsBundle() 
{
string settingsBundle = NSBundle.MainBundle.PathForResource("Settings", @"bundle");
if(settingsBundle == null) {
System.Console.WriteLine(@"Could not find Settings.bundle");
return;
}
NSString keyString = new NSString(@"Key");
NSString defaultString = new NSString(@"DefaultValue");
NSDictionary settings = NSDictionary.FromFile(Path.Combine(settingsBundle,@"Root.plist"));
NSArray preferences = (NSArray) settings.ValueForKey(new NSString(@"PreferenceSpecifiers"));
NSMutableDictionary defaultsToRegister = new NSMutableDictionary();
for (uint i=0; i<preferences.Count; i++) {
NSDictionary prefSpecification = new NSDictionary(preferences.ValueAt(i));
NSString key = (NSString) prefSpecification.ValueForKey(keyString);
if(key != null) {
NSObject def = prefSpecification.ValueForKey(defaultString);
if (def != null) {
defaultsToRegister.SetValueForKey(def, key);
}
}
}
NSUserDefaults.StandardUserDefaults.RegisterDefaults(defaultsToRegister);
}

谁能解释为什么会发生这种情况以及我该如何解决这个问题?

最佳答案

根据 Apple docs , PreferenceSpecifiers 是一个字典数组,所以不要这样做:

NSDictionary prefSpecification = new NSDictionary(preferences.ValueAt(i));

你应该能够做到这一点:

NSDictionary prefSpecification = (NSDictionary)preferences.ValueAt(i);

已更新

如果您正在使用新的统一 API,则必须将所需的类(在本例中为 NSDictionary)子类化才能访问 NSDictionary(IntPtr) 构造函数,如 this Xamarin docs 中所述。 .

希望对你有帮助

关于ios - 无法访问 protected 成员 'Foundation.NSDictionary.NSDictionary(System.IntPtr)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29959439/

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