В некоторых случаях вы можете захотеть изменить этот файл. По умолчанию шаблоны разработки для iOS предполагают, что вы будете использовать Interface Builder для предоставления своего начального интерфейса, и при этом в качестве последнего аргумента UIApplicationMain()
будет указано значение nil, как показано ниже:
return UIApplicationMain(argc, argv, nil, nil);
Если вы хотите программно построить интерфейс, вам может потребоваться указать класс делегата приложения, используя этот последний параметр:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([SPAppDelegate class]));
Это сделано для того, чтобы приложение знало, с чего начать при создании интерфейса. С одним из них, созданным с использованием Interface Builder, вы указываете, какой IB-файл использовать в качестве базы, с помощью одного из ваших ключей Info.plist.
Если у вас есть файл main.m, созданный до автоматического подсчета ссылок, у вас может быть явный NSAutoreleasePool, который оборачивает эту функцию:
NSAutoreleasePool *pool = [NSAutoreleasePool new];
int retval = UIApplicationMain(argc, argv, nil, NSStringFromClass([SPAppDelegate class]));
[pool release];
return retval;
В ARC это будет преобразовано в @autoreleasepool
:
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil,NSStringFromClass([SPAppDelegate class]));
return retVal;
}
Это только два случая, когда я редактировал файл main.m любым способом.