Използването на персонализирана категория за разширяване на 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, което е стандартна OO техника. Докато вашата категория сама по себе си не нарушава никакви правила (т.е. достъп до недокументиран вътрешен код), мисля, че ще се справите, при спазване на стандартните откази от отговорност, че никой не знае защо 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