[英]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]
將所有名稱作為數組訪問。
請記住, allKeys
和allValues
返回不保證順序的數組。
因此,作為第三個選擇,您可以維護一個詞典數組,其中每個詞典都有兩個鍵:name和id,其值分別是name和id。 然后,將每個名稱和ID配對到一個對象(一個字典)中,就可以確定名稱/ ID對數組的順序。
一種方法可能是這樣的,而不是單獨維護數據,因為它們具有關系,您可以將它們封裝在一個類中,稱為Record
,該類具有兩個字段name
和id
。 現在保存此對象的數組(例如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.