2012-02-09 10 views
0

ためNSManagedObjectModelを見つけることができませんでした「+ entityForName:エンティティ名のNSManagedObjectModelを見つけることができませんでした 『JourneeDeTravail』 「は、エンティティ名「X」私はこのクラッシュのエラーを持っている

マイAppDelegate.h:

#import <UIKit/UIKit.h> 
#import <CoreData/CoreData.h> 

@interface AppDelegate : UIResponder <UIApplicationDelegate> { 
NSManagedObjectModel *managedObjectModel; 
NSManagedObjectContext *managedObjectContext;  
NSPersistentStoreCoordinator *persistentStoreCoordinator; 
UIWindow *window; 
UINavigationController *navigationController; 
} 

@property (strong, nonatomic) UIWindow *window; 
@property (nonatomic, retain) UINavigationController *navigationController; 
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext; 
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel; 
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator   *persistentStoreCoordinator; 

- (NSURL *)applicationDocumentsDirectory; 
- (void)saveContext; 
@end 

マイAppDelegate.m:

#import "AppDelegate.h" 
#import "TableViewController.h" 
#import "ViewController.h" 

@implementation AppDelegate 

@synthesize window; 
@synthesize navigationController; 
@synthesize managedObjectContext =_managedObjectContext; 
@synthesize managedObjectModel =_managedObjectModel; 
@synthesize persistentStoreCoordinator=_persistentStoreCoordinator; 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
ViewController *viewController = [[ViewController alloc] init]; 
viewController.managedObjectContext = [self managedObjectContext]; 
NSLog(@"AppDelegate VC: %@", managedObjectContext); 
return YES; 
} 

- (void)dealloc { 
[super dealloc]; 
} 

@end 

そして、ViewController.h:

#import <UIKit/UIKit.h> 
#import <CoreData/CoreData.h> 
#import "AppDelegate.h" 

@interface ViewController : UIViewController{ 
NSManagedObjectContext *managedObjectContext; 
} 
@property (retain, nonatomic) IBOutlet UILabel *displayStart; 
@property (retain, nonatomic) IBOutlet UILabel *displayEnd; 
@property (retain, nonatomic) IBOutlet UITextField *displayResult; 
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext; 

- (IBAction)SaveTest:(id)sender; 

@end 

とViewController.m:

#import "ViewController.h" 

@implementation ViewController 
@synthesize managedObjectContext; 

- (void)viewDidLoad {  
if (managedObjectContext == nil) { 
    managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate]managedObjectContext]; 
    NSLog(@"After managedObjectContext VC: %@", managedObjectContext); 
} 
} 

- (IBAction)SaveTest:(id)sender { 
NSLog(@"Dans SaveTest : %@", managedObjectContext); 
NSLog(@"Context: %@",managedObjectContext); 
NSLog(@"PS Coord : %@",managedObjectContext.persistentStoreCoordinator); 
NSLog(@"MOM : %@", managedObjectContext.persistentStoreCoordinator.managedObjectModel); 
NSLog(@"Entities : %@", [[managedObjectContext.persistentStoreCoordinator.managedObjectModel entities] valueForKey:@"JourneeDeTravail"]); 
JourneeDeTravail *journee = (JourneeDeTravail *)[NSEntityDescription insertNewObjectForEntityForName:@"JourneeDeTravail" inManagedObjectContext:managedObjectContext]; 
} 

しかし、私はSaveTestボタンを押すと、それはすべての私のログ行は(ヌル)ですというエラーログとクラッシュします。もちろん

私は...エンティティがJourneeDeTravail呼ば

任意のアイデアを持っていますか?私はmanagedObjectContextを持っていないようですが、私はそれを修正するために何をすべきか分かりません。ご協力いただきありがとうございます !ただ、同じ問題を抱えているあなたの人々のための

答えて

1

デバッガはすべて言います。エンティティを見つけることができません。エンティティはあなたのケースではストレージです。コアデータなし、メモリなし。

ApplicationDidFinishLaunchingの時点でAppDelegate.mでストレージクラスをインスタンス化しようとしました。これはManageObjectModelの検索対象です。

のような:myMainThreadStorage = [[StorageClass alloc] init];

または私は完全に私の問題を研究の最後の6時間を誤解以降で、それを解決した[super viewDidLoad]

関連する問題