我将Cocoa应用程序中的数据保存到文本文件中。文本文件包含如下所示的信息:
foo1 -> foo2
blah -> lwjef
hi -> bye
hello -> goodbye
现在每行的第一部分由用户提供,但我需要在->
之后获取每一行的一部分。例如,如果用户输入foo1
,我想在解析文本文件后输出foo2
。有谁知道怎么做?
答案 0 :(得分:3)
解析一次:
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
NSArray *lines = [string componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];
for (NSString *line in lines) {
NSArray *values = [line componentsSeparatedByString:@" -> "];
if ([values count] != 2) {
continue;
}
[dictionary setObject:[values objectAtIndex:1] forKey:[values objectAtIndex:0]];
}
然后查询键:
NSString *input = @"foo1";
NSString *answer = [dictionary objectForKey:input]; //@"foo2"
但是,如果数据最初来自您自己的应用程序,您可能应该这样做,而不是自定义(和不安全)的字符串格式:
//For saving:
[dictionary writeToFile:filePath atomically:YES];
//For loading:
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:filePath];