2010-10-15 36 views
0

这里显示另一数组的值是我的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]; 

    /////.... 
} 

I'trying搜索键“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

我不是Objective-C的专家。你问你的问题的方式“搜索阵列和显示另一个在同一索引值”听起来像这些是并行阵列

你不能简单地存储一个数组的索引并使用该变量来显示另一个数组的值吗?

我可能误解了plist中如何发挥作用的,但在这里......

在另一方面,它看起来像你正在创建一个字典。为什么使用字典对象呢?您可以制作自己的自定义HindiWord类,并为每个字典条目设置字符串。这将是这样的:

#import <Foundation/NSObject.h> 

@interface HindiWord: NSObject { 
    NSString ehindi; 
    NSString part; 
    NSString meaning; 
    NSString hindi; 
} 

@end 

你会再有1个阵列这些对象,你可以搜索ehindi字符串,并且很容易抢印地文字符串。