2010-10-15 38 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字符串,並且很容易搶印地文字符串。