簡體   English   中英

附加兩個NSMutableArrays並與UISearchBar一起使用

[英]Attach two NSMutableArrays and use with UISearchBar

我有兩個NSMutableArrays; name和nameID在我的表視圖中,只有名稱將顯示為textLabel。

我想使用UISearchBar搜索名稱。 例如;

   name   --    nameID
    Stack         123
    Over          -1

nameID是需要使用的主要內容。

那么,是否可以鏈接兩個NSMutableArrays,以便每當用戶選擇Stack時,它都顯示123?

謝謝

如何使用一個NSMutableDictionary以名稱作為鍵,將ids作為值?

然后,在您的表中,可以使用[myNameDict allKeys]找到數據數組。

或者,您可以使id為鍵,為名稱命名為值,在這種情況下,可以通過調用[myNameDict allValues]將所有名稱作為數組訪問。

請記住, allKeysallValues返回不保證順序的數組。

因此,作為第三個選擇,您可以維護一個詞典數組,其中每個詞典都有兩個鍵:name和id,其值分別是name和id。 然后,將每個名稱和ID配對到一個對象(一個字典)中,就可以確定名稱/ ID對數組的順序。

一種方法可能是這樣的,而不是單獨維護數據,因為它們具有關系,您可以將它們封裝在一個類中,稱為Record ,該類具有兩個字段nameid 現在保存此對象的數組(例如recordList )。

當我們可以使用給定的searchText搜索任何Record時,如下所示。

-(Record *) searchRecordWithName:(NSString *)searchText
{
Record *tempRecord;
  for( tempRecord in recordList)
  {
    NSRange searchRange = [tempRecord.name rangeOfString:searchText options:NSCaseInsensitiveSearch];
     if( searchRange.length>0 && searchRange.location==0)
      {
         break;
      }
  }
return tempRecord;
}

請根據您的需要更正上面的代碼。 在這里,我正在考慮您要查找名稱以searchText開頭的record nameId(如您所見,我使用了searchRange.location == searchRange.location )。

將來,假設您需要保存“記錄”的更多詳細信息,這將比以前更容易。

我發現一種簡單的方法是連接字符串(名稱#nameID),然后分開獲取名稱ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM