iOS coreData入門
1.創建程序時勾選coredata
2.在core.xcdatamodeld文件中建立表User
使用時,先為User表創建modal類,繼承自NSManagedObject
在AppDelegate中會有自動生成的幾個屬性用來數據庫訪問等
數據庫增刪改查過程:先將結果查詢出來,在查詢出來的結果上進行數據操作,最后再保存回去
1.增
User *user = [NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:self.managedObjectContext]; // 返回插入的數據項 user.name = @"gaoxinchuan"; // 設置屬性內容 user.age = [NSNumber numberWithInt:6]; NSError *error = nil; BOOL isSave = [self.managedObjectContext save:&error]; // 保存即可 if (!isSave) { NSLog(@"error:%@,%@",error,[error userInfo]); } else{ NSLog(@"保存成功"); }
2.刪
// 實現原理 // 將結果查詢出來,在查詢出來的結果上操作,最后再保存回去 NSEntityDescription *description = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext]; // 設置查詢集合 NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setIncludesPropertyValues:NO]; [request setEntity:description]; NSError *error = nil; NSArray *datas = [self.managedObjectContext executeFetchRequest:request error:&error]; // 進行查詢 if (!error && datas && [datas count]) { for (NSManagedObject *obj in datas) { [self.managedObjectContext deleteObject:obj]; // 刪除數據項 } if (![self.managedObjectContext save:&error]) // 保存最后結果,同步到數據庫 { NSLog(@"error:%@",error); } }
3.改
NSEntityDescription *description = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setIncludesPropertyValues:NO]; [request setEntity:description]; NSError *error = nil; NSArray *datas = [self.managedObjectContext executeFetchRequest:request error:&error]; if (!error && datas && [datas count]) { for (User *obj in datas) { obj.name = @"haizeiwang"; // 修改數據 } if (![self.managedObjectContext save:&error]) // 同步到數據庫 { NSLog(@"error:%@",error); } }
4.查
//創建取回數據請求 NSFetchRequest *request = [[NSFetchRequest alloc] init]; request.predicate = [NSPredicate predicateWithFormat:@"name == @'gaoxinchuan'"]; //設置要檢索哪種類型的實體對象 NSEntityDescription *entity = [NSEntityDescription entityForName:@"User"inManagedObjectContext:self.managedObjectContext]; //設置請求實體 [request setEntity:entity]; //指定對結果的排序方式 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name"ascending:NO]; NSArray *sortDescriptions = [[NSArray alloc]initWithObjects:sortDescriptor, nil]; [request setSortDescriptors:sortDescriptions]; NSError *error = nil; //執行獲取數據請求,返回數組 NSMutableArray *mutableFetchResult = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; if (mutableFetchResult == nil) { NSLog(@"Error: %@,%@",error,[error userInfo]); } self.dataArray = mutableFetchResult; for (User *dog in self.dataArray) { NSLog(@"age:%@--name:%@",dog.age,dog.name); }
5.可以設置查詢條件:NSPredicate
本文由用戶 eeec4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!