カスタムカテゴリを使用してUIKitインターフェイス要素(たとえばUIButton)の機能を拡張した場合、Appleによってアプリが拒否される可能性が高くなりますか?
明確化:タップごとに押された状態と離された状態を交互に切り替えるトグルUIButtonの実装を考えています。
カスタムカテゴリを使用してUIKitインターフェイス要素(たとえばUIButton)の機能を拡張した場合、Appleによってアプリが拒否される可能性が高くなりますか?
明確化:タップごとに押された状態と離された状態を交互に切り替えるトグルUIButtonの実装を考えています。
これは、カテゴリの目的のように聞こえます...標準のOO手法であるUIButtonを拡張しています。あなたのカテゴリーがルール自体に違反しない限り(つまり、文書化されていない内部コードにアクセスする)、Appleが時々それを行う理由を誰も知らないという標準的な免責事項に従って、あなたは大丈夫だと思います...
カスタムカテゴリを使用して、好きなことを行うことができます。プライベートAPIを含めると、拒否されない可能性がありますが、APIが変更されると、ピクルスに陥る可能性があります。プライベートAPIを使用するメソッドを@tryブロックでラップし、最悪の事態が発生した場合の回避策を含めることをお勧めします
もちろん、カテゴリまたはサブクラス化によってUIButtonの機能を拡張できます。
HIG違反は、アプリの拒否の最も一般的な原因であり、それが私が懸念していることです。しかし、それはあなたの判断の呼びかけです。起こりうる最悪の事態は、彼らがあなたにそれを修正するように頼むことです。