Xamarin.Forms(iOS 14.1)使用带点的键don';不要被触发
我是做错了什么还是这是一个错误 此代码有效(可观察对象被调用) 但是这个没有Xamarin.Forms(iOS 14.1)使用带点的键don';不要被触发,xamarin.forms,xamarin.ios,Xamarin.forms,Xamarin.ios,我是做错了什么还是这是一个错误 此代码有效(可观察对象被调用) 但是这个没有 NSUserDefaults.StandardUserDefaults.AddObserver(this, "sectionname.mykey", NSKeyValueObservingOptions.New, IntPtr.Zero); NSUserDefaults.StandardUserDefaults.SetString("test", "sectionnam
NSUserDefaults.StandardUserDefaults.AddObserver(this, "sectionname.mykey", NSKeyValueObservingOptions.New, IntPtr.Zero);
NSUserDefaults.StandardUserDefaults.SetString("test", "sectionname.mykey");
键路径的工具提示显示“用于执行值查找的键路径。键路径由一系列小写ASCII字符串组成,其中没有用点字符分隔的空格”,但如果添加点,则不会调用可观察对象。因为
NSObject
不支持在iOS中使用这种方式设置键,内部错误将显示如下所示:
Foundation.MonoTouchException:'引发Objective-C异常。名称:NSUnknownKeyException原因:[addObserver:forKeyPath:@“sectionname.mykey”选项:1上下文:0x0]已发送到与“sectionname”属性不兼容KVC的对象
如果需要为sectionname
的属性指定观察者,可以使用以下代码:
// Sectionname should be a NSobject object and have observer notification
Sectionname sectionname = new sectionname();
sectionname.AddObserver(this, "smykey", NSKeyValueObservingOptions.New, IntPtr.Zero);
哦,这很有道理!我在阅读工具提示,就好像它告诉我键的命名约定一样,实际上它告诉我“这不仅仅是一个字符串,它是用于查找您想要观察的值的路径”。那完全是我的错。
// Sectionname should be a NSobject object and have observer notification
Sectionname sectionname = new sectionname();
sectionname.AddObserver(this, "smykey", NSKeyValueObservingOptions.New, IntPtr.Zero);