Objective-c CoreData

   2023-02-09 学习力0
核心提示:#import "AppDelegate.h"#import "Person.h"@implementation AppDelegate@synthesize managedObjectContext = _managedObjectContext;@synthesize managedObjectModel = _managedObjectModel;@synthesize persistentStoreCoordinator = _persistentStore
#import "AppDelegate.h"
#import "Person.h"
@implementation AppDelegate

@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self createNewPersonWithFirstName:@"Anthony" lastName:@"Robbins" age:51];
    [self createNewPersonWithFirstName:@"Richard" lastName:@"Branson" age:61];
    
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]initWithEntityName:@"Person"];
    
    NSSortDescriptor *ageSort = [[NSSortDescriptor alloc] initWithKey:@"age" ascending:YES];
    
    NSSortDescriptor *firstNameSort = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES];
    
    fetchRequest.sortDescriptors = @[ageSort, firstNameSort];
    
    NSError *requstError = nil;
    
    NSArray *persons = [self.managedObjectContext executeFetchRequest:fetchRequest error:&requstError];
    
    for (Person *person in persons) {
        NSLog(@"First Name = %@", person.firstName);
        NSLog(@"Last Name= %@", person.lastName);
        NSLog(@"Age = %lu", (unsigned long)[person.age unsignedCharValue]);
    }
    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

-(BOOL) deletePerson:(NSArray*)praramPersons
{
    BOOL isDelete = NO;
    
    if ([praramPersons count] > 0) {
        Person *lastPerson = [praramPersons lastObject];
        [self.managedObjectContext deleteObject:lastPerson];
        
        NSError *savingError = nil;
        if ([self.managedObjectContext save:&savingError]) {
            NSLog(@"Successfully deleted the last Person in the array");
        } else {
            NSLog(@"Failed to delete the last Person in the array");
        }
    } else {
        NSLog(@"Could not find any Person entities in the context");
    }
    
    
    return isDelete;
}


-(BOOL) createPersonSuccess:(NSArray*)paramPersons
{
    BOOL createResult = NO;
    
    if ([paramPersons count] > 0) {
        createResult = YES;
        NSUInteger counter = 1;
        for (Person *thisPerson in paramPersons) {
            NSLog(@"Person %lu First Name = %@", (unsigned long)counter, thisPerson.firstName);
            NSLog(@"Person %lu lastName = %@", (unsigned long)counter, thisPerson.lastName);
            NSLog(@"Person %lu Age = %ld", (unsigned long)counter, (unsigned long)[thisPerson.age unsignedIntegerValue]);
            counter ++;
        }
    } else {
        NSLog(@"Could not find any Person entities in the context");
    }
    
    return createResult;
}

-(void)createNewPerson
{
    Person *newPerson = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
    
    if (newPerson != nil) {
        newPerson.firstName = @"Anthony";
        newPerson.lastName = @"Robbins";
        newPerson.age = @51;
        
        NSError *savingError = nil;
        
        if ([self.managedObjectContext save:&savingError]) {
            NSLog(@"Successfully saved the context.");
        } else {
            NSLog(@"Failed to save the context. Error = %@", savingError);
        }
    } else {
        NSLog(@"Failed to create the new Person.");
    }
    
}


-(BOOL) createNewPersonWithFirstName:(NSString*)paramFirstName
                            lastName:(NSString*)paramLastName
                                 age:(NSUInteger)paramAge
{
    BOOL result = NO;
    
    if ([paramFirstName length] == 0 | [paramLastName length] == 0) {
        NSLog(@"First and Last names are mandatory");
        return NO;
    }
    
    Person *newPerson = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
    
    if (newPerson == nil) {
        NSLog(@"Failed to create the new person.");
        return NO;
    }
    
    newPerson.firstName = paramFirstName;
    newPerson.lastName = paramLastName;
    newPerson.age = @(paramAge);
    
    NSError *savingError = nil;
    
    if ([self.managedObjectContext save:&savingError]) {
        return YES;
    } else {
        NSLog(@"Failed to save the new person.Error = %@", savingError);
    }
    return result;
}

  NSlog

2014-09-13 00:20:18.452 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.453 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.454 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.454 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.454 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.455 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.455 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.455 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.456 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.456 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.456 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.457 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.457 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.457 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.458 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.458 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.458 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.459 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.459 CoreDataDemo[683:60b] First Name = Anthony
2014-09-13 00:20:18.485 CoreDataDemo[683:60b] Last Name= Robbins
2014-09-13 00:20:18.486 CoreDataDemo[683:60b] Age = 51
2014-09-13 00:20:18.487 CoreDataDemo[683:60b] First Name = Richard
2014-09-13 00:20:18.487 CoreDataDemo[683:60b] Last Name= Branson
2014-09-13 00:20:18.487 CoreDataDemo[683:60b] Age = 61
2014-09-13 00:20:18.488 CoreDataDemo[683:60b] First Name = Richard
2014-09-13 00:20:18.488 CoreDataDemo[683:60b] Last Name= Branson
2014-09-13 00:20:18.489 CoreDataDemo[683:60b] Age = 61
2014-09-13 00:20:18.489 CoreDataDemo[683:60b] First Name = Richard
2014-09-13 00:20:18.489 CoreDataDemo[683:60b] Last Name= Branson
2014-09-13 00:20:18.490 CoreDataDemo[683:60b] Age = 61
2014-09-13 00:20:18.490 CoreDataDemo[683:60b] First Name = Richard
2014-09-13 00:20:18.491 CoreDataDemo[683:60b] Last Name= Branson
2014-09-13 00:20:18.491 CoreDataDemo[683:60b] Age = 61
2014-09-13 00:20:18.495 CoreDataDemo[683:60b] Application windows are expected to have a root view controller at the end of application launch

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 《黑马程序员》 category分类的使用(Objective
    分类的作用:在不改变原来类的基础上,可以给类增加一些方法。使用注意 : ①  分类只能增加方法,不可以增加成员变量                ②  分类的方法在实现中可以访问成员变量,不过成员变量必须手动实现。               
    03-16
  • Objective-C学习—UIScrollView控件使用
    Objective-C学习—UIScrollView控件使用
    一、知识点简单介绍1.UIScrollView控件是什么?(1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限(2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容(3)普通的UIView不具备滚动功能
    03-16
  • Objective-C Runtime(转)
    博主地址: http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/曾经觉得Objc特别方便上手,面对着 Cocoa 中大量 API,只知道简单的查文档和调用。还记得初学 Objective-C 时把[receiver message]当成简单的方法调用,而无视了“发送消息”这句话
    03-08
  • iOS扩展——Objective-C开发编程规范 简单io扩展实验代码
    iOS扩展——Objective-C开发编程规范 简单io扩
      最近准备开始系统学习一个完整项目的开发流程和思路,在此之前,我们需要对iOS的开发变成规范进行更系统和详尽的学习,随意对编程规范进行了整理和学习。本文内容主要转载自:Objective-C-Coding-Guidelines-In-Chinese  此外,这篇文章所说的一些常见
    03-08
  • Objective-C利用协议实现回调函数
    实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下:  实现的代码如下:定义协议:#import UIKit/UIKit.h @protocol NoteDelegate //回调函数 -(void)messageCallBack:(NSString *)string; @end 调用协议:#impor
    02-10
  • 刨根问底Objective-C Runtime(1)- Self & S
      刨根问底Objective-C Runtime(1)- SelfSuper - Chun Tips专注iOS开发 刨根问底Objective-C Runtime(1)- SelfSuper前言关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime译文地址为: http://blog.cocoabit.com/blog/2
    02-10
  • Objective-C利用协议实现回调函数
    实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下: 实现的代码如下:定义协议:#import UIKit/UIKit.h @protocol NoteDelegate//回调函数-(void)messageCallBack:(NSString *)string;@end  调用协议:#import Founda
    02-10
  • Objective-c开发中混合使用ARC
    首选“Compile Sources”的位置:选中工程-TARGETS-相应的target然后选中右侧的“Build Phases”,向下就找到“Compile Sources”了。如何在未使用arc的工程中引入一个使用了arc特性的文件:对相应的文件添加:-fobjc-arc参数如何在arc工程中引用未使用arc的文件
    02-10
  • Objective C运行时(runtime)技术总结,好强大
    前言:         Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/cla
    02-09
  • Programming With Objective-C---- Introductio
    a:link { color: rgba(88, 114, 210, 1); text-decoration: none }a:visited { color: rgba(88, 114, 210, 1); text-decoration: none }a:hover { color: rgba(173, 189, 248, 1); text-decoration: none }a:active { color: rgba(0, 0, 255, 1); text-decora
    02-09
点击排行