gpt4 book ai didi

objective-c - RestKit:如何将 URL 参数映射到对象属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:26 25 4
gpt4 key购买 nike

我有像这样的 REST 服务方法

/GetOfficeDocument?officeId=259

返回文档数组。应用程序中的文档是一个与办公室有关系的 NSManagedObject 对象。如何将 officeId 参数映射到我的 Documentoffice 关系?

我知道我应该重写 objectLoader:willMapData:,但我不知道我应该在这个方法内部做什么。文档没用。

UPD. 服务器的响应如下所示:

[{"AddedDate":"\/Date(1261484400000+0400)\/","Title":"Some text","Uri":"\/Document\/News\/851"}]

如您所见,officeId 不包含在响应中,仅包含在 URL 中。我可以使用

objectLoader:willMapData: 中提取它
[[[loader URL] queryParameters] objectForKey:@"officeId"]

但是接下来我应该把它放在哪里呢?可映射数据参数是一个可变数组,我应该放在那里什么?不知道。

最佳答案

您可以尝试在响应中返回的每个文档项中注入(inject) OfficeId 值,如下所示:

- (void)objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData
{
NSString *officeId = [[[loader URL] queryParameters] objectForKey:@"officeId"];

NSMutableArray *newMappableData = [[NSMutableArray alloc] initWithCapacity:[*mappableData count]];

for (NSDictionary *documentDict in *mappableData)
{
NSMutableDictionary = newDocumentDict = [documentDict mutableCopy];
[newDocumentDict setObject:officeId forKey:@"OfficeId"];
[newMappableData addObject:newDocumentDict];
}

*mappableData = newMappableData;
}

并在您的 Document 映射中使用类似于以下内容的内容:

[documentMapping mapAttributes:@"AddedDate", @"Title", @"Uri", @"OfficeId", nil];
[documentMapping mapKeyPath:@"" toRelationship:@"office" withMapping:officeMapping];
[documentMapping connectRelationship:@"office" withObjectForPrimaryKeyAttribute:@"OfficeId"];

关于objective-c - RestKit:如何将 URL 参数映射到对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com