Le deuxième objet de quickFilterDictionary
dans self.preferencesListFilterDictionary
est nil
. Comment ajouter [NSIndexPath
] chemin d'index (comme clé) et NSNumber
(comme valeur) dans Dictionary
?Problèmes lors de l'ajout de NSIndexPath comme clé et NSNumber comme valeur dans le dictionnaire?
Remarque: premier objet est ajouté avec succès, seul le 2e but est nil
quand j'imprimé self.preferencesListFilterDictionary
dans la console. Puis-je savoir, qu'est-ce que je fais mal en dessous du code?
self.preferencesListFilterDictionary["price"] = 1000
self.quickFilterArr = [localizedStrOf("deliveryNowOnly"),localizedStrOf("rated")]
var quickFilterDictionary = Dictionary<NSIndexPath, NSNumber?>()
for obj in self.quickFilterArr {
let row = self.quickFilterArr.indexOf(obj)
let indexPath = NSIndexPath(forRow:row!, inSection: 0)
quickFilterDictionary[indexPath] = NSNumber(bool: false)
}
print(quickFilterArr.count)
print(quickFilterDictionary)
self.preferencesListFilterDictionary.updateValue(quickFilterDictionary as? AnyObject, forKey: "quickFilterDictionaryKey")
print(self.preferencesListFilterDictionary)
impression console:
▿ [1] : 2 elements
- .0 : "quickFilterDictionaryKey"
- .1 : nil
Pour obtenir plus haut dictionnaire bool du numéro, je l'ai écrit le code suivant -
func getQuickFilterValueOfIndexpath(indexPath:NSIndexPath) -> Bool {
if let val = self.preferencesListFilterDictionary["quickFilterDictionaryKey"] {
// now val is not nil and the Optional has been unwrapped, so use it
let tempDict = val as! Dictionary<NSIndexPath, NSNumber?>
if let boolVal = tempDict[indexPath] {
return boolVal!
}
}
return false
}
Salut @Kayla Galway, vous avez manqué cette déclaration - self.quickFilterArr = [localizedStrOf ("deliveryNowOnly"), localizedStrOf ("nominale")] – Lion