Ios 应用程序在Payload:hidden中引用非公共选择器

Ios 应用程序在Payload:hidden中引用非公共选择器,ios,xcode,appstore-approval,Ios,Xcode,Appstore Approval,我在Xcode Organizer中[验证…]iOS应用程序时遇到此错误: 应用程序引用Payload/name.app/scheme:hidden中的非公共选择器 但是,hidden是UIView.h中定义的公共属性,如下所示: @属性(非原子,getter=ishiden)布尔隐藏 什么会导致调用公共选择器失败Apple App Store验证?简言之 取代: [self addObserver:self forKeyPath:NSStringFromSelector(@sel

我在Xcode Organizer中[验证…]iOS应用程序时遇到此错误:

应用程序引用Payload/name.app/scheme:hidden中的非公共选择器

但是,
hidden
是UIView.h中定义的公共属性,如下所示:

@属性(非原子,getter=ishiden)布尔隐藏


什么会导致调用公共选择器失败Apple App Store验证?

简言之

取代:

[self addObserver:self
       forKeyPath:NSStringFromSelector(@selector(hidden))
          options:NSKeyValueObservingOptionNew
          context:nil];
作者:

详细信息

在接下来的KVO(键值观察)中,我使用了
NSStringFromSelector(@selector(hidden))
作为键路径,因为事实上,“…任何拼写错误都不会被编译器捕获,并且会导致事情不起作用。”

事实证明,
hidden
属性有一个显式的getter,它与属性名不同:

@property(非原子,getter=ishiden)布尔隐藏

我也用
不透明
属性验证了这一点

@属性(非原子,getter=isOpaque)布尔不透明

它也无法通过验证: 应用程序引用了Payload/name.app/scheme:不透明中的非公共选择器。

[self addObserver:self
       forKeyPath:@"hidden"
          options:NSKeyValueObservingOptionNew
          context:nil];