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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!