TabbarでCoreDataを使う
Githubにテンプレもどきのファイルが上げてあります。
GitHub - prince9/TabbarCoreDataSample: CoreData is used by TabBarView. TabBar+StoryboardでCoreDataを使うやり方です
データをユーザが追加するタイプのアプリで力を発揮する、データベースCoreData。
Master-Detail Applicationを選んでCoreDataにチェックを入れて・・・とやりやすくはなっていますが、TableViewの前にViewを追加したりTabbarを使うとなると話は別。
Tabbed Applicationを選んで後からCoreDataを追加してもシミュレータで落ちる・・・とまあなかなか難儀でして。
どうやらViewを追加したりすると、正確にCoreDataを移植してもエラーログで「データベースがオブジェクト参照できないよー」と言ってくるようです。
TabbarでCoreDataを使うという記事がなかったので、テンプレートもどきを作りました。
導入方法はReadMeを読んで頂くとして、追加したのは以下となります(Master-Detail Applicationを選んでCoreDataにチェックを入れて生成された部分を除く)。
・AppDelegate.h
@property (nonatomic,retain) UITabBarController *tabBarController; @property (nonatomic,retain) MasterViewController *masterViewController;
・AppDelegate.m
@synthesize tabBarController; @synthesize masterViewController; と - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { } ここの中身に以下を追加 //ここがないと落ちる masterViewController.managedObjectContext = self.managedObjectContext; [_window addSubview:tabBarController.view]; [_window makeKeyAndVisible];
・MasterViewController.m
- (void)viewDidLoad { } ここの中身に以下を追加 //ここがないと落ちる __managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; NSLog(@"After managedObjectContext: %@", __managedObjectContext);