Ios RestKit在RKEntityMapping生产线发生碰撞
我是Objective-C新手,非常喜欢RestKit。我试图在我的web服务器上用JSON的数据创建一个非常简单的Ios RestKit在RKEntityMapping生产线发生碰撞,ios,json,restkit,restkit-0.20,Ios,Json,Restkit,Restkit 0.20,我是Objective-C新手,非常喜欢RestKit。我试图在我的web服务器上用JSON的数据创建一个非常简单的UITableView,我已经被困了一段时间 这是我的简单JSON: { "restaurants": [ { "id": "27", "franchise_name": "Franchise 1", "branch_name": "Branch 1", "bra
UITableView
,我已经被困了一段时间
这是我的简单JSON:
{
"restaurants": [
{
"id": "27",
"franchise_name": "Franchise 1",
"branch_name": "Branch 1",
"branch_phone": "0200 111 0000",
"cuisine": "Salad",
"cooking_time": "15",
"is_open": 1
},
{
"id": "97",
"franchise_name": "Franchise 2",
"branch_name": "Branch 2",
"branch_phone": "0207 222 0000",
"cuisine": "Healthy",
"cooking_time": "10",
"is_open": 1
}
]
}
这是我的核心数据模型:
Entities: Restaurant
Attributes: branchName -> String
franchiseName -> String
id -> integer 16
readyTime-> integer 16
我的视图控制器中有以下代码。在viewDidLoad
中,RKEntityMapping
导致异常:
RKManagedObjectStore *managedObjectStore = [RKManagedObjectStore defaultStore];
RKEntityMapping *entityMapping = [RKEntityMapping mappingForEntityForName:@"Restaurant" inManagedObjectStore:managedObjectStore]; //THIS LINE CAUSES THE CRASH
[entityMapping addAttributeMappingsFromDictionary:@{
@"id": @"id",
@"cooking_time": @"readyTime",
@"branch_name": @"branchName",
@"franchise_name": @"franchiseName"}];
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:entityMapping pathPattern:@"/api/restaurants" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; //I GET AN ISSUE HERE AS WELL INVOLVING responseDescriptorWithMapping BEING DEPRECIATED.
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http//mywebserver.com/api/resturants"]];
RKManagedObjectRequestOperation *managedObjectRequestOperation = [[RKManagedObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]];
managedObjectRequestOperation.managedObjectContext = self.managedObjectContext;
[[NSOperationQueue currentQueue] addOperation:managedObjectRequestOperation];
有几条错误消息,我没有收到:
NSAssert(objectClass, @"Cannot initialize an entity mapping for an entity with a nil managed object class: Got nil class for managed object class name '%@'. Maybe you forgot to add the class files to your target?", [entity managedObjectClassName]);
在控制台中:
*** Assertion failure in -[RKEntityMapping initWithEntity:],
responseDescriptorWithMapping
已被弃用,它现在有一个额外的方法
参数。这只是一个警告-您应该更新,但不必更新
如果首次尝试使用
managedObjectStore
时发生崩溃,则表明您没有正确/完全配置核心数据堆栈(或者您的实体名称/类名错误)。查看所需设置的简单概述。如果要使用对象管理器,请选中。谢谢您的回答。关于第二部分,你介意给我再详细一点吗。我是新来的,我遵循的是要点教程,似乎不需要所有额外的代码。哪个教程(给出一个链接)。您需要创建托管对象存储和上下文作为绝对最小值。它是github Wiki中的一个。此部分显示了所需的设置。这是我没有得到的。我确实做到了这一点(唯一的区别是我的pathForResource不同,并且我将我的xcdatamodel的文件名放在这里)。