特定のビューを記憶するある種のセットアップ ウィザードを作成しようとしていますが、ARC を使用しているため、AppDelegate.m コードに問題があります。アプリをコンパイルするとスプラッシュ画面でクラッシュするため、これを修正する方法を知っている人はいますか..
私のAppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSString *controllerName = [[NSUserDefaults standardUserDefaults] objectForKey:@"WIZARD_VIEW"];
if ([controllerName length]) {
Class controllerClass = NSClassFromString(controllerName);
UIViewController *controller = [[controllerClass alloc] init];
// Override point for customization after application launch.
return YES;
}
より明確にするために、viewcontroller ファイルに次のコードを提案として追加しました。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[NSUserDefaults standardUserDefaults] setObject:[[self class] description] forKey:@"WIZARD_VIEW"];
NSLog(@"ViewWillAppear Done.");
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"WIZARD_VIEW"];
NSLog(@"viewWillDisappear");
[[NSUserDefaults standardUserDefaults] synchronize];
}
コンパイル中のクラッシュログ:
/Users/Tim/Documents/XCODE_DEV/App/AppDelegate.m:17:33: No visible @interface for 'NSUserDefaults' declares the selector 'forKey:'
/Users/Tim/Documents/XCODE_DEV/App/AppDelegate.m:20:27: Unused variable 'controller'