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