这是我在imageurls
:
Object
的方式
var imageURLs = List<String>()
并解析:
func mapping(map: Map) {
imageURLs <- map["image_urls"]
}
这就是我要解析的内容:
{ "image_urls": ["a"] }
最后,属性为空。为什么呢?
使用Realm 3.3这样的基元数组应该可以工作。
答案 0 :(得分:1)
如果您正在使用Realm和ObjectMapper,那么有一个非常酷的选项,通过使用ObjectMapper+Realm,您可以将数组直接映射到域列表,如下所示:
func mapping(map: Map) {
imageURLs <- (map["image_urls"], ListTransform<String>())
}
请注意,默认情况下,对象映射器无法将数组映射为域列表,这可以通过使用上述库来实现。
答案 1 :(得分:1)
您可以在函数中创建变量并将项目映射到数组:
func mapping(map: Map) {
var pathes = [String]()
pathes <- map["image_urls"]
self.imageUrls.add(pathes)
}
或者您可以使用名为ObjectMapper+Realm
的扩展程序,如上所述。
答案 2 :(得分:0)
您可以使用ObjectMapper如下所示映射String数组,这很好用:
import ObjectMapper
import RealmSwift
import ObjectMapper_Realm
public class Items: Object, Mappable {
var images = List<ListImages>()
@objc dynamic var id = 0
required convenience public init?(map : Map){
self.init()
}
public override class func primaryKey() -> String? {
return "id"
}
public func mapping(map: Map) {
var images: [String]? = nil
images <- map["image"]
images?.forEach { image in
let value = ListImages()
value.value = image
self.images.append(value)
}
}
}
class ListImages:Object{
@objc dynamic var value: String = ""
}