Отклонит ли Apple приложение за использование KVC для настройки parentViewController в UIViewController?

#iphone #appstore-approval

#iPhone #appstore-одобрение

Вопрос:

Я внедряю пользовательские UIViewController подклассы, которые эмулируют поведение UITabBarController и UINavigationController .

Я хотел бы сделать эти классы достаточно общими, чтобы можно было использовать любой UIViewController . Одна из проблем, с которой я столкнулся, заключается в том, что свойство parentViewController (а также navigationController ) доступно только для чтения.

(В стороне: одной из причин настройки parentViewController является правильное поведение -presentMoviePlayerViewControllerAnimated: . UIViewController, похоже, передает его в parentViewController, если он установлен.)

Использование метода KVC setValue:self forKey:@"parentViewController" , похоже, работает, но может ли это привести к отклонению моего приложения? Кто-нибудь делал что-нибудь подобное?

Ответ №1:

Я бы не беспокоился об отклонении, но я бы беспокоился о любой мотивации, которая была у Apple для создания parentViewController только для чтения для начала. Они могут зависеть от этого, и вы, возможно, вводите тонкую ошибку.

Например, если на момент установки значение не равно нулю, кто вызывает release для предыдущего значения. Могут ли эти свойства быть переданы куда-то еще (и сохранены) перед их перезаписью?

Если вы уверены, что не вводите малозаметную ошибку, тогда все должно быть в порядке. Своевременно проверяйте обновления для iOS, чтобы убедиться, что ничего не изменилось.

Комментарии:

1. Это не отвечает на вопрос. Композиция контроллера просмотра до версии 5.0 не была разрешена / распознана. Установка этого свойства (или «_parentViewController») необходима, если требуется композиция контроллера. Конечно, есть риски, но бывают случаи, когда это «просто должно сработать».

Ответ №2:

Я не могу говорить за эту точную ситуацию, но из того, что я знаю и слышал, я не думаю, что это должно быть проблемой.