Описание:
Допустим, у меня есть класс, который содержит UITabBarController
и несколько контроллеров.
Теперь один из контроллеров ( specialController ) не может быть выбран UITabBarController
. Я показываю его по-другому (но я все еще хочу, чтобы он в 1011 * viewControllers
)
При запрете выбора specialController я пропускаю init
, выполненный UITabBarController
. Вот почему я называю init
от руки.
Проблема:
Когда я запускаю «Build and Analyzie», я получаю предупреждение
Неправильное уменьшение счетчика ссылок объекта, который
на данный момент не принадлежит вызывающему абоненту
в соответствии с моим init
. Но приложение работает. Чего мне не хватает?
Код:
в классе A.m
//called in viewDidLoad
- (void)makeVoodooOnViewControllers {
//set all variables etc.
for (int i = 0; i<controllersCount; i++) {
UIViewController *tabViewController = [tabBarController.viewControllers
objectAtIndex:i];
//CUT - some irrelevant code
if ([tabViewController isKindOfClass:[specialController class]]) {
//line below throws a warning
specialControllerProperty = [((specialController *)tabViewController) init];
}
}
Если мне не ясно, пожалуйста, дайте мне знать :). Спасибо!