我正在尝试设置 RKRoute 以使用 RestKit 从 Dropbox API 获取文件夹内容。
获取内容的 URL 是https://api.dropbox.com/1/metadata/dropbox/<path>
.
所以我设置了这样的响应和路由:
// objectManagers baseURL is @"https://api.dropbox.com/1/"
RKResponseDescriptor *rootResponse = [RKResponseDescriptor responseDescriptorWithMapping:dynamicMapping pathPattern:@"metadata/dropbox:path" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager.router.routeSet addRoute:[RKRoute routeWithClass:[DropboxFolder class] pathPattern:@"metadata/dropbox:path" method:RKRequestMethodGET]];
// dropboxFolder.path is @"/" for root
// dropboxFolder.path is @"/Images" for the "Images"-folder contained in root
但是随后路径匹配失败,[RKPathMather matchesPath:tokenizeQueryStrings:parsedArguments:
因为斜杠的数量被检查如下:RKNumberOfSlashesInString(self.patternString) == RKNumberOfSlashesInString(self.rootPath)
当我注释掉这个检查时,映射是有效的,但我确信在其他一些情况下需要它。