1

エンティティ 'USer' と 1 つの属性 'name' があります。FirstViewController.m ファイルで使用されるこのコードを使用して、エンティティ「ユーザー」に 1 つの名前を追加しようとしています。

- (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 に送信されました'

これを解決するには?助けてください!!

編集:

#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

これはアプリ委任ファイルです。

4

1 に答える 1

1

発生している問題は、表示されたコードの外にあります。addUser: メッセージを別のオブジェクト (それを実装していないオブジェクト) に送信している可能性があります。または、メソッドを実装するオブジェクトが既に割り当て解除されています (別の種類のオブジェクトにメモリが再利用されています)。

あなたが言及しているボタンには、 UIViewController がターゲットとして設定され、 addUser: セレクターがアクションとして設定されているようです。しかし、UIViewController には addUser: メソッドがありません。例外が発生します。

ボタンのアクションを addUser: メソッドを実際に実装するオブジェクトに接続していることを確認してください。

于 2011-07-08T09:13:14.747 に答える