-4

コア データに NSDictionary を追加する方法については、ドキュメントまたはサンプル コードが役立ちます。前もって感謝します。

4

1 に答える 1

0

新しいプロジェクト ウィンドウで、任意のテンプレート オプションを選択します。ウィンドウの [オプション] セクションで、[コア データをストレージに使用] の横のチェック ボックスが選択されていることを確認し、[選択] をクリックします。

の中にAppDelegate.h

@class coreDataViewController;

@interface coreDataAppDelegate : NSObject <UIApplicationDelegate> {

NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;
NSPersistentStoreCoordinator *persistentStoreCoordinator;

coreDataViewController *viewController;

UIWindow *window;
 }

@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator    *persistentStoreCoordinator;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet coreDataViewController *viewController;
- (NSString *)applicationDocumentsDirectory;
@end

あなたのviewControllerで:

// データを保存する

- (void) saveData
{
    coreDataAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    NSManagedObject *newContact;
    newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context];
    [newContact setValue:@"anyData" forKey:@"anyKeyInDataBase"];
    [newContact setValue:@"anyData" forKey:@"anyKeyInDataBase"];
    [newContact setValue:@"anyData" forKey:@"anyKeyInDataBase"];
    NSError *error;
    [context save:&error];
 }

// データを取得するには

 - (void) findContact
 {
    coreDataAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

    NSManagedObjectContext *context = [appDelegate managedObjectContext];

    NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Contacts" inManagedObjectContext:context];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];

    [request setEntity:entityDesc];

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"(yourPrimaryKey = %@)", @"theKeyYouSearchFor"];

    [request setPredicate:pred];

    NSManagedObject *matches = nil;
    NSError *error;

    NSArray *objects = [context executeFetchRequest:request error:&error];

    if ([objects count] == 0) {
             NSLog( @"No matches");
    } else {
            matches = [objects objectAtIndex:0];
             NSLog( @"%@",[matches valueForKey:@"anyKey"]);
             NSLog( @"%@",[matches valueForKey:@"anyKey"]);
             NSLog( @"%@",[matches valueForKey:@"anyKey"]);

    }
    [request release];
}

それはうまくいくはずです

于 2012-09-02T09:35:39.333 に答える