2016-03-08 49 views
-1

我讓其中包含的一些信息,我儲值在字典格式的NSMutableArray例如如何檢查包含字符串值中的NSMutableArray

{name : daniel, email : xxx.com},{name: daniel, email : yay.com},{name : daniel, email : zzz.com} {name: Annie, email : annie.com},{name: George, email : ger.com} 

一些迴應,我有兩個標籤,姓名和電子郵件。當我按標籤行動我顯示所有的用戶名在我選擇名稱爲「丹尼爾」

現在我要第二個標籤稱爲電子郵件行動,我只想要「丹尼爾」的電子郵件列表其中包含三個郵件我必須在tableview中顯示

這裏我想這代碼,但並沒有爲我工作

if NameLabel.text!.containsString(self.NameList.valueForKey("Name") as! String){ 
      NSLog("success") 
     }else{ 
      NSLog("fail") 
     } 

我的輸出日誌:

Could not cast value of type '__NSArrayI' (0x1059da8b0) to 'NSString' (0x103a50b20). 
+0

請不要編輯您的問題,包括一個新的問題。相反,創建一個新問題。 – Matt

回答

1

試試這個

let Namelist = [["name" : "daniel", "email" : "[email protected]"]] 

let data = Namelist.filter{($0 as [String:String])["name"]!.lowercaseString.containsString("daniel".lowercaseString)}.map { x in return x["email"]!} 
print(data) 

我在操場上進行了測試

enter image description here

+0

可以有點清楚。它不工作 – user3458924

+0

你得到什麼錯誤? – techloverr

+0

我已更新大小寫敏感問題的答案 – techloverr

1

你有一個字典數組,這意味着,你可以通過陣列需要循環,然後檢查是否每個字典包含該鍵的值爲「名稱',它等於你的nameLabel文本,然後從同一個字典中獲取電子郵件。

let nameList : NSMutableArray = [["name":"daniel","email":"[email protected]"], ["name":"martin","email":"[email protected]"], ["name":"john","email":"[email protected]"]] 

... 
let nameLabel = UILabel() 
nameLabel.text = "daniel" 
... 

for list in nameList { 

    if let dic = list as? [String: String] { 


     if dic["name"] == nameLabel.text { 
      let email = dic["email"] 
      print("\(email)") 
     } 
    } 
}