var catandSubCatDict: NSDictionary<category,Array<Subcategory>> = NSDictionary<category,Array<Subcategory>>()
这里,“category”和“Subcategory”是全局类.我知道我不能将类类型用于关键字段.但是,无论如何,我应该做到这一点.有没有办法做到这一点?如何声明专门的NSDictionary或类似的东西来做到这一点?
另外,我使用这样的字典:
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}
谢谢您的回答,
最好的祝福
解决方法 NSDictionary不支持泛型,因此您无法声明这种方式 – 如果要使用它,请按如下方式对其进行实例化:var catandSubCatDict: NSDictionary = NSDictionary()
Swift提供了一个新的字典类型,它支持泛型,并且要创建它,你只需要在代码中用字典替换NSDictionary:
var catandSubCatDict: Dictionary<category,Array<Subcategory>> = Dictionary<category,Array<Subcategory>>()
或使用以下紧凑形式之一:
var catandSubCatDict: [category : Array<Subcategory>] = [category : Array<Subcategory>]()var catandSubCatDict: [category : [Subcategory]] = [category : [Subcategory]]()
请注意,在上面提到的所有情况下,您可以使用类型推断并通过删除变量类型来缩短代码:
var catandSubCatDict = NSDictionary()var catandSubCatDict = Dictionary<category,Array<Subcategory>>()var catandSubCatDict = [category : Array<Subcategory>]()var catandSubCatDict = [category : [Subcategory]]()
最后,使用swift词典,您可以使用类作为键 – 您需要做的是使密钥类(代码中的类别)实现Hashable和Equatable协议
总结以上是内存溢出为你收集整理的ios – 声明NSDictionary并在Swift中添加键值对?全部内容,希望文章能够帮你解决ios – 声明NSDictionary并在Swift中添加键值对?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)