2011-07-08 4 views
1

私はエンティティ 'USer'と属性 'name'を持っています。コアデータのエンティティでイベントを追加する方法は?

- (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. 
    } 
} 

をしかし、それはエラーMSG表示されています:私はFirstViewController.mファイルで使用され、このコードを使用してエンティティ「ユーザー」に1名を追加しようとしています

がキャッチされない例外のためにアプリを終了します'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

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

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

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

+0

私はラウンドrectボタンを使用しているUIViewクラス 'FirstViewController'を持っており、このボタンは 'addUser'メソッドに接続されています。 –

+0

私はアプリデリゲートファイルを質問に追加しました。まずmainview.xibにログインコントローラを接続して作成したコンセント –