RESTkit无法识别的选择器错误
我试图通过iPhone添加一个人类到我的服务器。RESTkit无法识别的选择器错误
我有以下的代码,我得到这个错误:
* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[Person object]: unrecognized selector sent to class 0x5fe6c' error
@interface Data : NSObject {
Person *person;
NSArray *dogs;
}
@property (nonatomic ,retain) Person *person;
@property (nonatomic ,retain) NSArray *dogs;
@end
@interface Person : NSObject {
NSString *name;
NSNumber *personId;
NSDate *updatedAt;
NSDate *createdAt;
}
@property (nonatomic , retain) NSDate * createdAt;
@property (nonatomic , retain) NSDate * updatedAt;
@property (nonatomic , retain) NSNumber *personId;
@property (nonatomic , retain) NSString *name;
@end
RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[Person class]];
[userMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[userMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"];
[userMapping mapKeyPath:@"name" toAttribute:@"name"];
[userMapping mapKeyPath:@"id" toAttribute:@"personId"];
RKObjectMapping* dogMapping = [RKObjectMapping mappingForClass:[Dog class]];
[dogMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[dogMapping mapKeyPath:@"person_id" toAttribute:@"spersonId"];
[dogMapping mapKeyPath:@"name" toAttribute:@"name"];
[dogMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"];
[dogMapping mapKeyPath:@"id" toAttribute:@"dogId"];
RKObjectMapping *dataMapping = [RKObjectMapping mappingForClass:[Data class]];
[dataMapping mapKeyPath:@"dog" toAttribute:@"dogs"];
[dataMapping mapKeyPath:@"person" toRelationship:@"person" withMapping:userMapping];
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:dataMapping];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/people"
objectMapping:dataMapping delegate:self];
-(void)createObject{
RKObjectRouter * router = [RKObjectManager sharedManager].router;
[router routeClass: [Person class] toResourcePath:@"/people/:personId"];
[router routeClass: [Person class] toResourcePath:@"/people"
forMethod:RKRequestMethodPOST];
Data *data =[[Data alloc]init];
Person *daveLiu = [Person object];
daveLiu.name = @"Dave Liu";
[[RKObjectManager sharedManager] postObject:daveLiu delegate:self];
}
让我们来分析一下:
Terminating app due to uncaught exception 'NSInvalidArgumentException'
OK,你有一个无效的参数异常。为什么?
reason: '+[Person object]:
拜访了Person类
unrecognized selector sent to class 0x5fe6c' error
称为object
类方法......但是Person类没有实现object
类方法。看看你对Person的实现,我们可以看到情况是这样的。
那么,我们从哪里调用?通过
MJA的评论快速扫描
代码为我们展示了这条线:
Person *daveLiu = [Person object];
这可能是您的罪魁祸首。正如mja所说,这可能应该是
Person *daveLiu = [Person alloc] init];
thnx很多家伙!!!!得到它=] – 2012-01-12 09:23:42
[对象]是一个NSManagedObject + ActiveRecord的方法,并假定将一个实体插入上下文没有样板代码。它失败,因为restkit导入不正确。 – 2013-06-17 12:37:26
这条线是什么意思? Person * daveLiu = [Person object];不应该被分配] init]? – mja 2012-01-11 12:02:52