2013-04-11 92 views
0

我有2个实体:Article和Category。iOS Restkit如何关联映射实体

//Article mapping 
RKManagedObjectMapping *categoryMapping = [RKManagedObjectMapping mappingForClass:[Category class] inManagedObjectStore: objectManager.objectStore]; 
categoryMapping.primaryKeyAttribute = @"categoryId"; 
[categoryMapping mapKeyPathsToAttributes: 
@"CategoryId",@"categoryId", 
@"CategoryName",@"categoryName", 
nil]; 

//Category mapping 
RKManagedObjectMapping *articleMapping = [RKManagedObjectMapping mappingForClass:[Article class] inManagedObjectStore: objectManager.objectStore]; 
articleMapping.primaryKeyAttribute = @"articleId"; 
[articleMapping mapKeyPathsToAttributes: 
@"ArticleId",@"articleId", 
@"ArticleName",@"articleName", 
@"ArticleText",@"articleText", 
@"CategoryId",@"categoryId", 
nil]; 

//relationship mapping 
[categoryMapping mapRelationship:@"articles" withMapping:articleMapping]; 
[articleMapping mapRelationship:@"category" withMapping:categoryMapping]; 
[articleMapping connectRelationship:@"category" withObjectForPrimaryKeyAttribute:@"categoryId"]; 

//set mapping 
[objectManager.mappingProvider setMapping:articleMapping forKeyPath:@"article"]; 
[objectManager.mappingProvider setMapping:categoryMapping forKeyPath:@"category"]; 

那么我想知道文章的范畴,但它等于空:

Article* article = [[Article allObjects] objectAtIndex:0]; 
    //article.category == nil 

article.categoryId和category.categoryId是相等的。

为什么映射关系不起作用?以这种方式

[categoryMapping mapKeyPath:@"articles" toRelationship:@"articles" withMapping:articleMapping]; 
[articleMapping mapKeyPath:@"category" toRelationship:@"category" withMapping:categoryMapping]; 

+0

[categoryMapping mapRelationship:@“articles”withMapping:articleMapping]; [articleMapping mapRelationship:@“category”withMapping:categoryMapping]; [articleMapping connectRelationship:@“category”withObjectForPrimaryKeyAttribute:@“categoryId”]; 此代码是正确的? – Maxim 2013-04-11 05:32:12

回答

0

尝试关系映射这是工作非常适合我。我在两个项目中使用了它。

+0

谢谢你的回答,但你如何定义article.categoryId与category.categoryId相同? – Maxim 2013-04-11 08:45:59