我有一個最多可容納4個值的數組。該數組將始終有至少1個值,但其他3個可能爲零。我必須將數組內的元素分配給類屬性。Swift iOS -Get字典接受零值
問題是我遍歷數組後,獲取nil值,將它們分配給類屬性,然後嘗試將這些零屬性分配給我的字典,我得到一個崩潰。
我需要字典接受帶顏色的值並忽略零值。所以我有兩個問題。
- 來自的確存在數組中的顏色上來的零在myDict
- 數組中的零值是例外
我如何去解決這個?
代碼:
class ColorClass{
var colorOne:String?
var colorTwo:String?
var colorThree:String?
var colorFour:String?
}
let colorClass = ColorClass()
var randColors: [String?] = []
//In this case I have 2 colors but sometimes randColors may have 1 color or 3 colors or 4 colors. It will always vary
randColors = ["purple","pink"]
for (index,element) in randColors.enumerate(){
switch index {
case 0:
if let elZero = element{
colorClass.colorOne = elZero
}
case 1:
if let elOne = element{
colorClass.colorTwo = elOne
}
case 2:
if let elTwo = element{
colorClass.colorThree = elTwo
}
case 3:
if let elThree = element{
colorClass.colorFour = elThree
}
default:
break
}
}
var myDict = [String:AnyObject]()
myDict.updateValue(colorClass.colorOne!, forKey: "firstKey")
myDict.updateValue(colorClass.colorTwo!, forKey: "secondKey")
myDict.updateValue(colorClass.colorThree!, forKey: "thirdKey")
myDict.updateValue(colorClass.colorFour!, forKey: "fourthKey")
的崩潰發生在:
myDict.updateValue(colorClass.colorThree!, forKey: "thirdKey")
myDict.updateValue(colorClass.colorFour!, forKey: "fourthKey")
對象'[字符串:AnyObject] '不能在裏面有任何'nil'值。但是'[String:AnyObject?]'可以。因此,請嘗試更改myDict的簽名,使其看起來像'var myDict = [String:AnyObject?]()'...那麼如果您需要它爲零,則可以簡單地編寫'myDict.updateValue(nil,forKey: 「yourKey」)' – mutantkeyboard
@突變鍵盤感謝您的幫助。我試過你的解決方案,但它沒有奏效。我將dict聲明更改爲var myDict = [String:AnyObject?]()。另外,我剛剛意識到實際存在的2個顏色值顯示爲零值。 –
字典中的「nil」值意味着相應的密鑰丟失。一個聲明'[String:AnyObject?]'是無稽之談。 – vadian