Ios 如何在核心数据中添加JSON解析数据?

Ios 如何在核心数据中添加JSON解析数据?,ios,objective-c,core-data,Ios,Objective C,Core Data,我正在使用ASIHTTPRequest解析数据。现在,我想把它储存起来 核心数据中的数据。习惯于 我的实体名称SMS,包括三个属性Id、名称和IsActive。 此代码用于解析数据 -(void)DataRetireve { deatilinfoarray = [[NSMutableArray alloc] init]; NSURL *url = [NSURL URLWithString: @"http://sms.instatalkcommunications.c

我正在使用ASIHTTPRequest解析数据。现在,我想把它储存起来 核心数据中的数据。习惯于 我的实体名称SMS,包括三个属性Id、名称和IsActive。 此代码用于解析数据

-(void)DataRetireve
{
    deatilinfoarray = [[NSMutableArray alloc] init];
    NSURL *url = [NSURL URLWithString:   
    @"http://sms.instatalkcommunications.com/apireq/GetSMSCategories?
    t=1&h=admin&param=1"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];``
    [request setDelegate:self];
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{

    NSError *error;

    NSString *responseString = nil;

    if (!error)
    {
        responseString = [request responseString];

        SBJsonParser *parser = [[SBJsonParser alloc] init] ;

        NSMutableArray *jsondata = [parser objectWithString:responseString];
        NSMutableArray *jsondata1 = [[NSMutableArray alloc]init];
       info *myinfo=[[info alloc]init];
        for(int i=0;i<jsondata.count;i++)
        {

            myinfo.Id=@"Id";
            myinfo.Name=@"Name";
            myinfo.IsActive=@"IsActive";

            [jsondata1 addObject:myinfo];
             NSLog(@"%@",responseString);

        }
           for(int i=0;i<jsondata1.count;i++)
           {
            myinfo= [jsondata1 objectAtIndex:i];

                 NSManagedObjectContext *context=[self managedObjectContext];
               NSManagedObject *sms = [NSEntityDescription insertNewObjectForEntityForName:@"SMS" inManagedObjectContext:context];


               NSLog(@"%@", context);

               [sms setValue:@"Id" forKey:@"Id"];
               [sms setValue:@"Name" forKey:@"Name"];
               [sms setValue:@"IsActive" forKey:@"IsActive"];

               [jsondata1 addObject:myinfo];

            }

完成了代码,但首先给我一个错误,我认为AsitpRequest有点过时了。根据最近一次修改的日期为2011年。我建议你改用

现在,关于核心数据的JSON。首先,应该使用NSJSONSerialization解析JSON数据。您可以查看此问题以了解更多信息

然后,为您的实体创建一个新的NSManagedObject:

NSManagedObject *aSMS = [NSEntityDescription insertNewObjectForEntityForName:@"SMS"
                                                      inManagedObjectContext:context];
然后设置值。比如:

aSMS.Name = JSON[@"Name"];

当然,使用这行代码NSManagedObjectContext*context;您没有有效的托管对象上下文。从AppDelegate获取权限或将其传递给相关的ViewController。我传递以下代码-NSManagedObjectContext*managedObjectContext{NSManagedObjectContext*context=nil;id delegate=[[UIApplication sharedApplication]delegate];如果[delegate performSelector:@selectormanagedObjectContext]{context=[delegate managedObjectContext];}返回上下文;}在mainint argc,char*argv[]{@autoreleasepool{return UIApplicationMainargc,argv,nil,NSStringFromClass[AppDelegate class];}中显示此错误这不是错误。发布控制台日志并设置异常断点。是的,我设置了断点,但未显示任何错误没有错误,但我混淆了数据库中添加的数据aur not