Ios 如何在核心数据中添加JSON解析数据?
我正在使用ASIHTTPRequest解析数据。现在,我想把它储存起来 核心数据中的数据。习惯于 我的实体名称SMS,包括三个属性Id、名称和IsActive。 此代码用于解析数据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
-(void)DataRetireve
{
deatilinfoarray = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:
@"http://sms.instatalkcommunications.com/apireq/GetSMSCategories?
t=1&h=admin¶m=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