在[验证...] Xcode Organizer中的iOS应用程序时出现此错误:
The app references non-public selectors in Payload/name.app/scheme: hidden
。
但是,hidden
是在UIView.h中定义的公共属性:
@property(非原子,getter = isHidden)BOOL隐藏;
什么可能导致公共选择器的调用失败Apple App Store验证?
答案 0 :(得分:1)
简而言之
替换:
[self addObserver:self
forKeyPath:NSStringFromSelector(@selector(hidden))
options:NSKeyValueObservingOptionNew
context:nil];
由:
[self addObserver:self
forKeyPath:@"hidden"
options:NSKeyValueObservingOptionNew
context:nil];
详情
在关于KVO(键值观察)的NSHipster之后,我使用NSStringFromSelector(@selector(hidden))
作为关键路径,实际上," ...任何拼写错误或拼写错误&# 39;被编译器捕获,并导致无法正常工作。"
事实证明,hidden
属性有一个显式的getter,它与属性名称不同:
@property(nonatomic,getter=isHidden) BOOL hidden;
我也使用opaque
属性验证了这一点。
@property(nonatomic,getter=isOpaque) BOOL opaque;
验证失败: 该应用引用了Payload / 名称 .app / 计划中的非公开选择器:opaque。