2015-12-07 58 views
-3

我正在創建一個要保存特定數據的plist。我有一個字典,我需要在文件中寫入。字典有一個名爲數組的值和一個關鍵數組bfor鍵。但是我不知道我在哪裏做錯了,但是我的代碼不工作。在iOS9詞典類型中添加數組作爲鍵和值swift

let namearray = [self.usernametextfield.text,self.passwordtextfield.text] 
     let keyarray = ["username","password"] 
     let dict = NSMutableDictionary() 
     dict.setObject(namearray as! AnyObject, forKey: keyarray) // I am having problem in this line of how to add arrays to dictionary. 
     dict .writeToFile(plistfinalpath, atomically: true) 

所以,任何人都可以建議如何將數組作爲鍵和值添加到字典中。請糾正我的代碼。

+0

從[aaisataev](http://stackoverflow.com/users/5400375/aaisataev):可以在迅速改寫 - [含有的NSDictionary一個NSArray](HTTP: //stackoverflow.com/questions/5526941/nsdi ctionary-containing-an-nsarray) – KyleMit

回答

1

您無法使用數組作爲重點

我不知道,你有什麼需要準確,但大概就像

import Foundation 
let namearray = ["name","pswd"] 
let keyarray = ["username","password"] 
let dict = NSMutableDictionary() 
dict.setObject(namearray[0], forKey: keyarray[0]) 
dict.setObject(namearray[1], forKey: keyarray[1]) 
// gives you 

dump(dict) 
/* 
▿ 2 key/value pairs 
▿ [0]: (2 elements) 
▿ .0: username #0 
▿ NSMutableString: username 
▿ NSString: username 
- NSObject: username 
- .1: name 
▿ [1]: (2 elements) 
▿ .0: password #1 
▿ NSMutableString: password 
▿ NSString: password 
- NSObject: password 
- .1: pswd 
*/ 

OK,現在看來,要添加的陣列,以字典...

import Foundation 
let namearray = ["name","pswd"] 
let dict = NSMutableDictionary() 
dict.setObject(namearray, forKey: "user1") 
// gives you 

dump(dict) 
/* 
▿ 1 key/value pair 
▿ [0]: (2 elements) 
▿ .0: user1 #0 
▿ NSMutableString: user1 
▿ NSString: user1 
- NSObject: user1 
▿ .1: 2 elements 
- [0]: name 
- [1]: pswd 
*/ 
+0

好的,你有gvn grt答案在過去對我的問題。 TX。在這裏,我希望每當用戶輸入用戶名和密碼時,它將被保存在plist路徑中。在obj c中,我將用戶名,密碼添加到數組值,然後將其添加到具有相應鍵值數組的字典中。所以有可能迅速。 –

+0

是的,你可以添加一個數組到字典中。看我上面的例子。接下來,您可以將它保存爲plist,就像您之前嘗試過的一樣。我選擇了一個關鍵的「user1」,這取決於你,你的關鍵是什麼。密鑰必須是NSCopying兼容的,即所有 – user3441734

+0

密鑰必須不是數組。它必須是一個值,符合NSCopying(與目標C相同的快速) – user3441734