После обновления до xCode 4.2 я получаю следующее предупреждение ...
Ожидается, что приложения будут иметь контроллер корневого представления в конце запуска приложения
Прочитав столько, сколько я мог найти в Интернете о RootViewController, я не уверен, правильно ли я создал свой контроллер корневого представления. Я создал его давным-давно, когда впервые учился программировать в xCode.
У меня один вопрос: можно ли назвать контроллер корневого представления чем-то другим, кроме RootViewController? Каждый пример, который я сейчас вижу, имеет имя RootViewController. Я также вижу, как это синтезируется в приложении делегата, как это ...
@synthesize rootViewController = _rootViewController;
Я не понимаю, что это делает. Почему бы просто ...
@synthesize rootViewController;
В любом случае я менял имя моего корневого контроллера представления на RootViewController и следовал примеру, найденному на cupsofcocoa.com . Но даже после внесения изменений я получаю предупреждение «... ожидается наличие корневого контроллера ...».
Если у кого-то есть время взглянуть и сообщить мне, что мне не хватает, я перечислю важные части своего кода инициализации ниже.
Спасибо,
John
//RootViewController.h
#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController {
}
@end
.
//RootViewController.m
#import "RootViewController.h"
#import "JetLoggerAppDelegate.h"
@implementation RootViewController
@end
.
//JetLoggerAppDelegate.h my app delegate
#import <UIKit/UIKit.h>
@class RootViewController;
@interface JetLoggerAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
RootViewController *rootViewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet RootViewController *rootViewController;
@end
.
//.m app delegate
#import "JetLoggerAppDelegate.h"
#import "RootViewController.h" //I don't think I need this here
@implementation JetLoggerAppDelegate
@synthesize window;
@synthesize rootViewController = _rootViewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([launchOptions count] == 0) {
_rootViewController = [[RootViewController alloc] init];
self.window.rootViewController = self.rootViewController;
[window makeKeyAndVisible];
return YES;
}else{
[JLHelper showAlertWithTitle:@"" message:[NSString stringWithFormat:@"launchOptions: %@", launchOptions]];
}
return NO;
}
.
//main.m
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"JetLoggerAppDelegate");
[pool release];
return retVal;
}