这是我的plist:
<dict>
<key>ehindi</key>
<string>ankamaal</string>
<key>part</key>
<string>n</string>
<key>meaning</key>
<string>hug</string>
<key>hindi</key>
<string>अंकमाल </string>
</dict>
这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Data.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath]
retain];
NSArray *inHidi = [NSArray arrayWithArray:[dict valueForKey:@"hindi"]];
NSDictionary *inHindiDict = [NSDictionary dictionaryWithObject:inHindi
forKey:@"HindiArray"];
NSArray *inEhindi = [NSArray arrayWithArray:[dict valueForKey:@"ehindi"]];
NSDictionary *inEhindiDict = [NSDictionary dictionaryWithObject:inEhindi
forKey:@"EHindiArray"];
[listItem addObject:inEhindiDict];
[listItem addObject:inHindiDict];
copyItem = [[NSMutableArray alloc] init];
/////....
}
我正在搜索关键'ehindi'并在我的屏幕上显示'hindi'结果。这里我做了什么搜索
- (void) searchTableView {
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in listItems)
{
NSArray *array = [dictionary objectForKey:@"EHindiArray"];
[searchArray addObjectsFromArray:array];
}
for (NSString *sTemp in searchArray)
{
NSRange titleResultsRange = [sTemp rangeOfString:searchText
options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[copyItem addObject:sTemp];
}
[searchArray release];
searchArray = nil;
}
我只能搜索'ehindi'。我怎样才能在'印地语'中找到并显示单词。搜索devnagari是不可能的,我唯一的选择是查找索引并显示“EHindiArray”索引的值....如果有人能帮助我解决这个问题,我会很高兴。
答案 0 :(得分:0)
我不是Objective-C的专家。您提出问题的方式“在数组上搜索并在同一索引处显示另一个的值”听起来像并行数组。
你能不能简单地存储一个数组的索引并使用该变量来显示另一个数组的值?
我可能误解了plist如何在这里发挥作用但是......
另一方面,看起来你正在创建一本字典。为什么要使用字典对象呢?您可以创建自己的自定义HindiWord
类,并为每个字典条目添加字符串。它会是这样的:
#import <Foundation/NSObject.h>
@interface HindiWord: NSObject {
NSString ehindi;
NSString part;
NSString meaning;
NSString hindi;
}
@end
然后你有1个这些对象的数组,你可以搜索ehindi字符串,并轻松获取hindi字符串。