繁体   English   中英

将Swift字典作为AnyObject返回

[英]Returning Swift Dictionary as AnyObject

 func toAnyObject() -> AnyObject {
        return [
            "name": title,
            "addedByUser": subtitle,
            "completed": imageURL
        ]
    }

上面的代码产生以下错误:

Contextual type 'AnyObject' cannot be used with dictionary literal

更新:我正在尝试创建toAnyObject函数并在Firebase应用程序中使用它。 我得到以下内容:

, reason: '(setValue:) Cannot store object of type _SwiftValue at name. Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray.'

 let rootRef = FIRDatabase.database().reference()
        let categoriesRef = rootRef.child("categories")

        let annuals = FlowerCategory(id: 1, title: "Annuals",subtitle :"Plants that just last one season. These plants will die in the winter. ", imageURL: "annuals.jpg")
        let perennials = FlowerCategory(id: 2, title: "Perennials",subtitle :"Plants come back year after year. These are also very less expensive", imageURL: "Perennial.jpg")

        let flowerCategories = [annuals,perennials]

        for flowerCategory in flowerCategories {

            let categoryRef = categoriesRef.child("category")
            categoryRef.setValue(flowerCategory.toAnyObject())  <- THIS LINE ERROR

        }

Dictionary是一种快速的值类型 而且AnyObject只接受引用类型

因此,为了返回Dictionary使用Any而不是AnyObject

func toAnyObject() -> Any {
        return [
            "name": title,
            "addedByUser": subtitle,
            "completed": imageURL
        ]
    }

投射到NSDictionary

func toAnyObject() -> AnyObject {
    return [
        "name": title,
        "addedByUser": subtitle,
        "completed": imageURL
    ] as NSDictionary
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM