ios如何在Core Data的实体中添加事件?

Posted

技术标签:

【中文标题】ios如何在Core Data的实体中添加事件?【英文标题】:ios how to add event in entity in Core Data? 【发布时间】:2011-07-08 09:07:33 【问题描述】:

我有一个实体“用户”和一个属性“名称”。我正在尝试使用 FirstViewController.m 文件中使用的代码为实体“用户”添加一个名称:

- (IBAction)addUser:(id)sender 
    User *user = (User *)[NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:managedObjectContext];

    [user setName:@"Bhagwan"];
    NSError *error = nil;
    if (![managedObjectContext save:&error]) 
        // Handle the error.
    

但它显示错误消息:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController addUser:]: unrecognized selector sent to instance 0x4d38950”

如何解决这个问题? 请帮忙!!

编辑:

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

@interface CoreDataTry2AppDelegate : NSObject <UIApplicationDelegate> 

    UIViewController *_first;  @property (nonatomic, retain) IBOutlet UIViewController *first;

@property (nonatomic, retain) IBOutlet UIWindow *window;

@property (nonatomic, retain, readonly) NSManagedObjectContext
*managedObjectContext; @property (nonatomic, retain, readonly) NSManagedObjectModel
*managedObjectModel; @property (nonatomic, retain, readonly) NSPersistentStoreCoordinator
*persistentStoreCoordinator;

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

@end

这是应用委托文件。

【问题讨论】:

【参考方案1】:

您遇到的问题不在显示的代码范围内。您可能会将 addUser: 消息发送到不同的对象(没有实现它的对象),或者实现该方法的对象已经被释放(并且它的内存被重新用于不同类型的对象)

您提到的按钮似乎将 UIViewController 设置为目标,并将 addUser: 选择器设置为操作。但是 UIViewController 没有 addUser: 方法你会得到一个异常。

确保将按钮的操作连接到真正实现 addUser: 方法的对象。

【讨论】:

我有一个 UIView 类“FirstViewController”,我在其中使用了一个圆形矩形按钮,这个按钮连接到“addUser”方法。 我将应用委托文件添加到问题中。首先是通过连接 mainview.xib 中的登录控制器创建的插座

以上是关于ios如何在Core Data的实体中添加事件?的主要内容,如果未能解决你的问题,请参考以下文章

IOS/objective-c/core-data:如何从相关实体获取属性

iOS Core Data - 将相关数据添加到实体

iOS开发学习之Core Data

iOS Core Data:使用 Foundation 对象添加属性

iOS - 如何使用 Core Data 将 2 个实体迁移到 1 个?

iPhone如何使用NSPredicate按父实体过滤Core Data?