我正在尝试在我的应用程序中实现可搜索的表格视图,当有人搜索位置并获取结果时。它看起来像这样:
我从genomes.com获取我的数据源,其中不仅包括城市,还包括公园、建筑、县等等。我只想显示城市位置。
数据是一个JSON文件,由JSONKit解析。整个文件被读入(最多20个对象),然后可搜索的表格视图会显示出来。我不确定是否应该以不同的方式解析JSON文件,或者是否应该使表格视图仅显示所需的结果。(在这种情况下,性能不是问题。)JSON文件被转换为NSArray。
以下是数组的一部分:
我希望做的是,如果“fcl”(在数组中可见)等于P,则希望在表格视图中显示它。如果“fcl”是其他字符,则不希望在表格视图中看到它。我相信if语句可以做到这一点,但我不知道如何过滤其中的一部分。
任何帮助都将不胜感激!谢谢
编辑:截至目前,以下是搜索代码:
![enter image description here](https://istack.dev59.com/uMMdU.webp)
数据是一个JSON文件,由JSONKit解析。整个文件被读入(最多20个对象),然后可搜索的表格视图会显示出来。我不确定是否应该以不同的方式解析JSON文件,或者是否应该使表格视图仅显示所需的结果。(在这种情况下,性能不是问题。)JSON文件被转换为NSArray。
以下是数组的一部分:
{
adminCode1 = MA;
adminCode2 = 027;
adminName1 = Massachusetts;
adminName2 = "Worcester County";
adminName3 = "";
adminName4 = "";
adminName5 = "";
continentCode = NA;
countryCode = US;
countryName = "United States";
elevation = 178;
fcl = A;
fclName = "country, state, region,...";
fcode = ADMD;
fcodeName = "administrative division";
geonameId = 4929431;
lat = "42.2000939";
lng = "-71.8495163";
name = "Town of Auburn";
population = 0;
score = "53.40083694458008";
timezone = {
dstOffset = "-4";
gmtOffset = "-5";
timeZoneId = "America/New_York";
};
toponymName = "Town of Auburn";
},
我希望做的是,如果“fcl”(在数组中可见)等于P,则希望在表格视图中显示它。如果“fcl”是其他字符,则不希望在表格视图中看到它。我相信if语句可以做到这一点,但我不知道如何过滤其中的一部分。
任何帮助都将不胜感激!谢谢
编辑:截至目前,以下是搜索代码:
- (void)delayedSearch:(NSString*)searchString
{
[self.geoNamesSearch cancel];
[self.geoNamesSearch search:searchString
maxRows:20
startRow:0
language:nil];
}
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
self.searchDisplayController.searchBar.prompt = NSLocalizedStringFromTable(@"ILGEONAMES_SEARCHING", @"ILGeoNames", @"");
[self.searchResults removeAllObjects];
// Delay the search 1 second to minimize outstanding requests
[NSObject cancelPreviousPerformRequestsWithTarget:self];
[self performSelector:@selector(delayedSearch:) withObject:searchString afterDelay:0];
return YES;
}