OStack程序员社区-中国程序员成长平台

标题: ios - 该应用程序在 Payload : hidden 中引用了非公共(public)选择器 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 23:25
标题: ios - 该应用程序在 Payload : hidden 中引用了非公共(public)选择器

在 Xcode Organizer 中 [Validating...] iOS App 时出现此错误:

应用引用 Payload/name.app/scheme: hidden 中的非公共(public)选择器

但是,hidden 是 UIView.h 中定义的公共(public)属性:

@property(nonatomic,getter=isHidden) BOOL hidden;

什么会导致公共(public)选择器的调用未能通过 Apple App Store 验证?



Best Answer-推荐答案


简而言之

替换:

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

作者:

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

详情

以下NSHipster在 KVO(键值观察)上,我使用 NSStringFromSelector(@selector(hidden)) 作为键路径,因为事实上,“...任何拼写错误或拼写错误都不会被捕获由编译器,并会导致事情不工作。

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

@property(nonatomic,getter=isHidden) BOOL 隐藏;

我也用 opaque 属性验证了这一点。

@property(nonatomic,getter=isOpaque) BOOL 不透明;

它也未能通过验证: 应用在 Payload/name.app/scheme 中引用了非公共(public)选择器:不透明。

关于ios - 该应用程序在 Payload : hidden 中引用了非公共(public)选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469806/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4