我想在我的应用中进行多级离线搜索。 我按照官方Skobbler页面上的指示进行操作,唯一的区别是我没有下载法国地图,而是下载了怀俄明州的地图。
如果我是对的,它的离线包代码是 USWY 。
-(void)prepareForSearch{
[SKSearchService sharedInstance].searchServiceDelegate = self;
[SKSearchService sharedInstance].searchResultsNumber = 500;
_listLevel = SKCountryList;
_searchSettings = [SKMultiStepSearchSettings multiStepSearchSettings];
_searchSettings.listLevel = _listLevel;
_searchSettings.offlinePackageCode = @"USWY";
_searchSettings.parentIndex=-1;
}
- (IBAction)searchAction:(UIButton *)sender {
_searchSettings.searchTerm = [NSString stringWithFormat:@"%@",_searchBar.text];
[[SKSearchService sharedInstance]startMultiStepSearchWithSettings:_searchSettings];
}
-(void)searchService:(SKSearchService *)searchService didRetrieveMultiStepSearchResults:(NSArray *)searchResults
{
if ([searchResults count] !=0 && _listLevel<SKInvalidListLevel){
if (_listLevel == SKCountryList) {
_listLevel = SKCityList;
}
else{
_listLevel++;
}
SKSearchResult *searchResult = searchResults[0];
SKMultiStepSearchSettings* multiStepSearchObject = [SKMultiStepSearchSettings multiStepSearchSettings];
multiStepSearchObject.listLevel = _listLevel++;
multiStepSearchObject.offlinePackageCode = _searchSettings.offlinePackageCode;
multiStepSearchObject.searchTerm = _searchBar.text;
multiStepSearchObject.parentIndex = searchResult.identifier;
[[SKSearchService sharedInstance]startMultiStepSearchWithSettings:multiStepSearchObject];
}
}
-(void)searchServiceDidFailToRetrieveMultiStepSearchResults:(SKSearchService *)searchService
{
NSLog(@"Multi Level Search failed");
}
无论我把它作为一个搜索条件放在哪里,我最终都会&#34;多级搜索失败&#34;。
从这个截图中,您可以看到我的怀俄明州地图包已包含在我的SKMaps.bundle中: (另外,如果有人能回答我这个问题:我的应用程序和测试应用程序中的模拟器文件夹中的版本控制是不同的,我下载了一个离线软件包。因此,出于测试目的,我制作了两个文件夹,并将Wyoming软件包放入他们(20140807和20140910)。对此有什么规定吗?)
可能是什么问题?
答案 0 :(得分:2)
好的,几天后我找到了问题的根源。
首先,我发现我使用的是哪个版本,它是20140910.
其次,由于某种原因,无法识别包含地图的整个文件夹。所以我把整个SKMaps.bundle和Skobbler团队提供的演示应用程序中的一些预先捆绑的地图一起拿到我的项目中,现在一切正常。