Будет ли отклонено мое приложение при использовании пользовательской категории для расширения UIButton?

Есть ли больше шансов, что Apple отклонит мое приложение, если я использую пользовательскую категорию для расширения функциональности элемента интерфейса UIKit, скажем, UIButton?

Пояснение: я думаю о реализации переключателя UIButton, который будет переключаться между состояниями нажатия и отпускания при каждом нажатии.


person luvieere    schedule 24.10.2009    source источник
comment
Расширение для чего? Используете ли вы недокументированные API? Вы серьезно нарушаете правила пользовательского интерфейса?   -  person Sixten Otto    schedule 24.10.2009
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он касается политики App Store, а не программирования.   -  person Daniel Storm    schedule 24.12.2015


Ответы (3)


Конечно, вы можете расширить функциональность UIButton с помощью категорий или подклассов.

Нарушения HIG являются наиболее распространенной причиной отклонения приложений, и это то, что меня беспокоит. Но это ваш приговор. Худшее, что может случиться, это то, что они попросят вас исправить это.

person Darren    schedule 24.10.2009

Похоже на то, для чего нужны категории... Вы расширяете UIButton, что является стандартной техникой объектно-ориентированного программирования. Пока ваша категория сама по себе не нарушает никаких правил (т.е. доступ к недокументированному внутреннему коду), я думаю, с вами все будет в порядке, при условии соблюдения стандартных заявлений о том, что никто не знает, почему Apple иногда делает то, что делает...

person jasondoucette    schedule 24.10.2009

Вы можете использовать пользовательские категории, чтобы делать все, что захотите. Если вы включите частный API, скорее всего, вы не будете отклонены, но вы можете оказаться в затруднительном положении, если они изменят API. Рекомендуется оборачивать любые методы, использующие частный API, в блок @try и включать обходной путь на случай, если произойдет худшее.

person coneybeare    schedule 24.10.2009
comment
Извините, но это не правильно. Если вы используете частный API, вы почти наверняка получите отказ. Apple отклоняет такие приложения именно потому, что частные API хрупкие. Хотя верно то, что некоторые приложения, использующие частные API, все равно принимаются, вам лучше держаться подальше от этих методов. - person Alex; 24.10.2009
comment
Помимо проверки того, что ваше приложение обращается к запрещенному оборудованию или фреймворку, обозреватели приложений не могут проверить, используете ли вы какой-либо частный API. Вам не будет отказано в использовании или переопределении какого-либо частного метода UIButton, потому что у них нет возможности его обнаружить. - person Darren; 24.10.2009
comment
Алекс, в то время как ваш и мой опыт чисто анекдотичны, Даррен прав. У Apple нет возможности определить, используете ли вы частные API. Все, что я могу сказать, это то, что в 15 приложениях, многие из которых являются высококлассными приложениями, ни одно из приложений не было отклонено за использование частных API. Некоторые из них тоже были довольно очевидными… Я меняю цвет UISwitch на оранжевый. Я редактирую MPMoviePlayer, чтобы он выглядел так, как я хочу. Дело в том, что Apple никогда не узнает, использовал ли я их недокументированные методы или создал свои собственные. Я был бы признателен за отмену вашего отрицательного голосования, поскольку оба наших ответа являются анекдотичными. - person coneybeare; 24.10.2009