Déclarant NSDictionary et mettez la valeur de la clé de la paire en Swift?

J'ai essayé de déclarer un NSDictionary avec le type de classe de la clé et de la valeur comme ceci :

var catAndSubCatDict: NSDictionary<Category, Array<SubCategory>> = NSDictionary<Category, Array<SubCategory>>()

Ici, "Catégorie" et "sous-catégorie" sont les classes. Je sais que je ne peux pas utiliser un type de classe pour le champ de clé. Cependant, je dois réaliser cela de toute façon. Est-il possible de faire cela ? Comment puis-je déclarer spécialisé NSDictionary ou des choses similaires à ce faire ?

En outre, j'utilise ce dictionnaire comme ceci :

for(var i=0; i<resultJson.count; i++)
{
   let subCategoryItemList = resultJson.objectAtIndex(i) as NSDictionary
   let categoryItem = subCategoryItemList.valueForKey(WSConstants.CATEGORY_OBJ) as NSDictionary

   var category: Category = Category()
   category.categoryId    = categoryItem.valueForKey(WSConstants.CATEGORY_ID) as Int
   category.categoryName  = categoryItem.valueForKey(WSConstants.NAME) as String

   var subCategoryList: Array<SubCategory> = []
   let jsonSubCategoryList = subCategoryItemList.allKeysForObject(WSConstants.SUBCATEGORY_LIST_OBJ) as NSArray

   for(var i=0; i<jsonSubCategoryList.count; i++)
   {
      let subCategoryObj = jsonSubCategoryList.objectAtIndex(i) as NSDictionary

      var subCategory: SubCategory = SubCategory()
      subCategory.subCategoryId    = subCategoryObj.valueForKey(WSConstants.SUBCATEGORY_ID) as Int
      subCategory.subCategoryName  = subCategoryObj.valueForKey(WSConstants.NAME) as String
      subCategory.subCategoryType  = subCategoryObj.valueForKey(WSConstants.SUBCATEGORY_TYPE) as Int

      subCategoryList.append(subCategory)
   }
   self.catAndSubCatDict.setValue(category, forkey: subCategoryList) //Also, I have to achieve this
}

Merci pour vos réponses,

En ce qui concerne meilleur

InformationsquelleAutor serhanaksut | 2014-09-24