Код: Выделить всё
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
Поэтому я всегда думал, хочу ли я вызвать метод, объявленный на f.e. класс FirstViewController, мне пришлось сделать это так:
Код: Выделить всё
FirstViewController *firstVC = (FirstViewController *)[self.tabBarController objectAtIndex:0];
[firstVC someMethod];
Код: Выделить всё
[[self.tabBarController objectAtIndex:0] someMethod];
Правильно ли это предположение? И если возможно, не могли бы вы предоставить дополнительную информацию или ссылку о типе идентификатора?
Или компилятор позволял вызывать любой метод по идентификатору (импортированный или нет) до ARC, а теперь жалобы на неимпортированные методы являются просто результатом ARC?
Спасибо большое.
Подробнее здесь: https://stackoverflow.com/questions/130 ... pe-variabl