- 先按照網上的教程,建一個簡單的帶coredata的項目
- 再 添加一個 UserInfo 對象(表)(按照網上的教材,可視化方式添加)
- 然後在AppDelegate.m中按如下修改,(只添加了4個方法)
- 然後運行,看控制檯日誌
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- // Override point for customization after application launch.
- self.window.backgroundColor = [UIColor whiteColor];
- [self.window makeKeyAndVisible];
- [self addUser];
- [self gainDatas];
- return YES;
- }
- //添加
- -(void)addUser{
- UserInfo * userInfo = [NSEntityDescription insertNewObjectForEntityForName:@"UserInfo"
- inManagedObjectContext:self.managedObjectContext];
- userInfo.name = @"dage";
- userInfo.password = @"password3";
- NSError *error = nil;
- if (![self.managedObjectContext save:&error]) {
- NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
- abort();
- }
- NSLog(@"add success");
- }
- //查詢
- -(void)gainDatas {
- NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
- [fetchRequest setEntity:[NSEntityDescription entityForName:@"UserInfo" inManagedObjectContext:self.managedObjectContext]];
- NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like[cd]'baobao'"];//查詢條件
- // NSPredicate *predicate = [NSPredicate predicateWithFormat:@"password='password3'"];//查詢條件
- NSMutableArray *sortDescriptors = [NSMutableArray array]; //排序用
- [sortDescriptors addObject:[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES] ]; //排序用
- [fetchRequest setPredicate:predicate]; //查詢條件
- [fetchRequest setFetchBatchSize:5]; //分頁
- [fetchRequest setSortDescriptors:sortDescriptors]; //排序
- [fetchRequest setReturnsObjectsAsFaults:NO];
- [fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"name", @"password", nil]]; //查詢的字段,一般不需要
- NSError *error = nil;
- NSArray *fetchedItems = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
- if (fetchedItems == nil) {
- NSLog(@"fetch request resulted in an error %@, %@", error, [error userInfo]);
- }else {
- NSLog(@"fetchedItems=%d",fetchedItems.count);
- for (UserInfo *user in fetchedItems) {
- NSLog(@"user.authour=%@",user.name);
- // [self deleteUser:user]; //刪除
- // [self updateUser:user]; //更新
- }
- }
- }
- //刪除:NSManagedObject對象必須先取出來,用managedObjectContext刪除,保存就好
- -(void)deleteUser:(id)user{
- [self.managedObjectContext deleteObject:user];
- NSError *error = nil;
- if (![self.managedObjectContext save:&error]) {
- NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
- abort();
- }
- NSLog(@"delete success");
- }
- //更新:直接修改對象,保存managedObjectContext就好
- -(void)updateUser:(UserInfo*)user{
- user.name = @"baobao"; //修改後,直接保存managedObjectContext就可以了
- NSError *error = nil;
- if (![self.managedObjectContext save:&error]) {
- NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
- abort();
- }
- NSLog(@"update success");
- }
coredata 最簡單例子
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.