IOS, как добавить событие в сущности в Core Data? - PullRequest
1 голос
/ 08 июля 2011

У меня есть сущность «USer» и один атрибут «name». Я пытаюсь добавить одно имя к сущности «Пользователь», используя этот код, который используется в файле 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:]: нераспознанный селектор, отправленный экземпляру 0x4d38950'

как это решить? Пожалуйста, помогите !!

EDIT:

#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 Ответ

1 голос
/ 08 июля 2011

Проблема, с которой вы столкнулись, лежит за пределами показанного кода.Вы, вероятно, отправляете сообщение addUser: другому объекту (объекту, который его не реализует), или объект, реализующий метод, уже освобожден (и его память повторно используется для объекта другого типа)

Похоже, у кнопки, которую вы упоминаете, в качестве цели выбран UIViewController, а в качестве действия - addUser: selector.Но UIViewController не имеет метода addUser: вы получаете исключение.

Убедитесь, что вы связываете действие кнопки с объектом, который действительно реализует метод addUser:.

...