標籤:des style blog http color 使用 os io
使用CoreData [1]
本篇教程能教你從無開始接觸CoreData,包括建立工程,建立出實體,增刪改查樣樣都有,屬於使用CoreData最初級教程.
1. 建立帶有CoreData的工程項目
2. 添加一個實體類
3. 建立出實體類
4. 建立對象,儲存對象,執行代碼
以下是驗證結果:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSLog(@"%@", NSHomeDirectory()); // 實體描述資訊 NSEntityDescription *description = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:[self managedObjectContext]]; // 初始化對象 Student *student = [[Student alloc] initWithEntity:description insertIntoManagedObjectContext:[self managedObjectContext]]; student.name = @"YouXianMing"; student.age = [NSNumber numberWithInt:26]; // 儲存對象 [self saveContext]; return YES;}
這樣就實現了儲存物件.
5. 重複上面的步驟儲存5個對象.
6. 遍曆出所有的對象
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // 設定要查詢的實體 NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; // 取出查詢結果 NSArray *students = [[self managedObjectContext] executeFetchRequest:fetch error:nil]; // 遍曆 [students enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Student *student = obj; NSLog(@"%@ %@", student.age, student.name); }]; return YES;}
7. 刪除一個對象
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // 設定要查詢的實體 NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; // 取出查詢結果 NSArray *students = [[self managedObjectContext] executeFetchRequest:fetch error:nil]; // 遍曆 [students enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Student *student = obj; // 找到匹配的資料,刪除之 if ([student.name isEqualToString:@"QiuLiang"]) { [[self managedObjectContext] deleteObject:student]; } }]; // 儲存 [self saveContext]; // 遍曆 [students enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Student *student = obj; NSLog(@"%@ %@", student.age, student.name); }]; return YES;}
8. 修改一個對象
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // 設定要查詢的實體 NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; // 取出查詢結果 NSArray *students = [[self managedObjectContext] executeFetchRequest:fetch error:nil]; // 遍曆 [students enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Student *student = obj; // 找到匹配的資料,修改之 if ([student.name isEqualToString:@"YouXianMing"]) { student.age = [NSNumber numberWithInt:100]; } }]; // 儲存 [self saveContext]; // 遍曆 [students enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Student *student = obj; NSLog(@"%@ %@", student.age, student.name); }]; return YES;}
9. 根據謂詞尋找出實體的方法請自行百度腦補,這裡不贅述了.