我正在使用Kentico-cloud Swift SDK在后台使用Delivery API从CMS抓取一堆元素。
其中一种Swift SDK方法允许我获取CMS上某个元素的ContentType,因此可以将其映射到代码中的对象。这是代码:
self.client.getContentType(name: codename, completionHandler: { (isSuccess, contentType, error) in
guard error == nil else {
print(error!)
return
}
if isSuccess {
if let type = contentType {
print(type)
self.client.getItem(modelType: type, itemName: codename, completionHandler: { (isSuccess, deliveryItem, error) in
if isSuccess {
// save this Element
print(deliveryItem)
} else {
if let error = error {
print(error)
}
}
})
}
}
})
属性codename
是我要为其寻找ContentType
的对象的名称。调用成功,但是我得到了ContentType
对象,很遗憾,该对象中没有nil
以外的任何属性。
我认为它应该给我类型的名称作为String,以便我可以将其映射到我的班级。
答案 0 :(得分:1)
您能否验证name参数中的内容类型代号有效?我已经尝试过重现它(请参阅随附的屏幕截图),并且一切都在我这边进行(对此功能的测试也在{[K in keyof R]: R[K]}
中通过了。)
您可以从{uuid: number; name: string; age: number; alive: boolean}
GetContentType.swift
方法第176行中发布requestUrl
属性的值吗?
编辑:哦,在GitHub问题的屏幕上,我可以看到您正在尝试获取内容类型为错误的项的代号。您应该使用内容类型的代号。
从DeliveryClient.swift
方法的文档中:
getContentType()
您可以了解有关内容类型here的更多信息。
答案 1 :(得分:0)
我也有同样的想法usps tracking,但感谢您提出了一个问题。
感谢和问候, 谢恩。