代码之家  ›  专栏  ›  技术社区  ›  runmad

有关从可能匹配项返回uiimage的循环的帮助

  •  0
  • runmad  · 技术社区  · 16 年前

    我正在分析位置列表,并希望返回一个带有基于这些位置的标志的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,并根据数组中正确匹配的字符串获取适当的标志。我相信最好的方法是从数组中提取字符串,因为这是该位置的一个剥离版本。

    任何帮助我指出正确的方向为最后一位是非常感谢。

    1 回复  |  直到 16 年前
        1
  •  0
  •   runmad    16 年前

    这是我自己找到的答案(也编辑成上面的正确答案):

    -(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;
    }
    
    推荐文章