我正在分析位置列表,并希望返回一个带有基于这些位置的标志的uiimage。
我有一个位置的字符串。这可以是许多不同的位置,我希望在NSARRAY中搜索此字符串中可能的匹配项,当有匹配项时,它应该在NSDictionary中找到适当的文件名。
以下是nsdictionary和nsarray的示例:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"franceFlag", @"france",
@"greeceFlag", @"greece",
@"spainFlag", @"spain",
@"norwayFlag", @"norway",
nil];
NSArray *array = [NSArray arrayWithObjects:
@"france"
@"greece"
@"spain"
@"portugal"
@"ireland"
@"norway",
nil];
很明显,我会有更多的国家和国旗。
到目前为止,我要做的是:
-(UIImage *)flagFromOrigin:(NSString *)locationString {
NSRange range;
for (NSString *arrayString in countryArray) {
range = [[locationString lowercaseString] rangeOfString:arrayString];
if (range.location != NSNotFound) {
return [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[dictionary objectForKey: arrayString] ofType:@"png"]];
}
}
return nil;
}
现在,上面的内容实际上不起作用。我错过了一些东西(也许一开始做的不正确),问题是,locationstring可以在同一个国家有几个位置,描述了类似“巴塞罗那、西班牙”、“马德里、西班牙”、“北西班牙”等的东西,但在这种情况下,我只想检索“西班牙”。(另外,请注意每个国家的上限)。
基本上,我要搜索我传递给方法的locationstring,以查找与NSarray中列出的某个国家的可能匹配。如果/找到一个,它应该继续进入nsdictionary,并根据数组中正确匹配的字符串获取适当的标志。我相信最好的方法是从数组中提取字符串,因为这是该位置的一个剥离版本。
任何帮助我指出正确的方向为最后一位是非常感谢。