Использует подпредставления в Alert без документов
Я задал похожий вопросВот и получил несколько ответов, так что, прежде всего, извините за то, что вы, люди, снова беспокоитесь.
Но у меня есть аргумент на этот раз. Сначала я покажу свой кусок кода
- (void) showTheAlert{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Hey!" message:@"?" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Yes",@"No",@"Don't know eaxactly.",nil];
[alertView setTag:101];
[alertView show];
}
- (void)willPresentAlertView:(UIAlertView *)alertView{
if(alertView.tag == 101){
[[[alertView subviews] objectAtIndex:2] setBackgroundColor:[UIColor colorWithRed:0.5 green:0.0f blue:0.0f alpha:0.5f]];
[[[alertView subviews] objectAtIndex:3] setBackgroundColor:[UIColor colorWithRed:0.0 green:0.5f blue:0.0f alpha:0.5f]];
}
}
И мое последнее предупреждение выглядит
Теперь моя путаница в том, что[alertView subviews]
не задокументировано, как могут сказать некоторые люди, но alertview является подклассомUIView
, который имеет свойство под названиемsubviews
.
Поэтому я использую задокументированное свойство суперкласса, которое определенно разрешено.
Так может ли это предупреждение вызвать отклонение моего приложения или нет? (Я не думаю, что у яблока будет основание говорить, что я использую недокументированные или приватные API. Внешний вид также похож на представление о предупреждении.)