尝试保存核心数据记录后出现错误 [英] Getting error after trying to save core data record

查看:60
本文介绍了尝试保存核心数据记录后出现错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个视图控制器来添加核心数据记录。核心数据实体名称为FavoriteThings,属性为Thingname。我有一个名为SaveButtonAction的保存按钮动作。当我点击按钮内部时,应该存储在文本字段ToDoTextField中插入的文本,但是应用程序崩溃了,并显示以下日志错误:

  2013-12-09 12:30:07.488最喜欢的事情[1701:a0b] ***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'+ entityForName:nil不是合法的NSManagedObjectContext参数,用于搜索实体名称' 

这是该方法的代码

 -(IBAction)SaveButtonAction:(id)sender {
FavoriteThing * newEntry = [NSEntityDescription insertNewObjectForEntityForName:@ FavoriteThing inManagedObjectContext:managedObjectContext];
newEntry.thingName = self.ToDoTextField.text;
NSError *错误;
if(![self.managedObjectContext save:& error])
{
NSLog(@糟糕,无法保存:%@,[错误localizedDescription]);
}

谢谢您的时间。.

解决方案

请检查实体名称,并在YourAppDeleagte.h

$

中执行以下操作b
$ b

  +(YourAppDeleagte *)sharedManagedContext; 

在YourAppDeleagte.m

  +(YourAppDeleagte *)sharedManagedContext {

return(YourAppDeleagte *)[[UIApplication sharedApplication] delegate];
}

在viewController.m中



#import YourAppDelegate.h

  @property(nonatomic,retain)NSmanagedObjectContext * managedObjectContext; 

-(void)viewDidLoad {
[super viewDidLoad];
self.managedObjectContext = [YourAppDelagete shareManagedContext] .managedObjectContext;
}


i have a view controller to add a core data record. The core data entity name is FavoriteThings, the attribute is thingname. I have a save button action called SaveButtonAction. When I tap inside the button, the text inserted in the textfield called ToDoTextField should be stored, but the app crashed showing following log error:

2013-12-09 12:30:07.488 Favorite Things[1701:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'FavoriteThing'' 

This is the code for the method

- (IBAction)SaveButtonAction:(id)sender {
    FavoriteThing *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"FavoriteThing" inManagedObjectContext:managedObjectContext ];
    newEntry.thingName = self.ToDoTextField.text;
    NSError *error;
    if (![self.managedObjectContext save:&error])
    {
        NSLog(@"Whoops, couldn't save:%@",[error localizedDescription]);
    }

Thank you for your time..

解决方案

Please check the enity name and also do the following

in YourAppDeleagte.h

+(YourAppDeleagte*)sharedManagedContext;

in YourAppDeleagte.m

  +(YourAppDeleagte*)sharedManagedContext{

     return (YourAppDeleagte *)[[UIApplication sharedApplication]delegate];
}

in viewController.m

#import "YourAppDelegate.h"

@property(nonatomic,retain)NSmanagedObjectContext *managedObjectContext;

-(void)viewDidLoad{
   [super viewDidLoad];
   self.managedObjectContext=[YourAppDelagete shareManagedContext].managedObjectContext;         
 }

这篇关于尝试保存核心数据记录后出现错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆