swift - Kentico-cloud Swift SDK ContentType 没有可用的属性
问题描述
我正在使用 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
.
我认为它应该给我类型的名称作为字符串,这样我就可以将它映射到我的类。
解决方案
您能否验证您在 name 参数中具有有效的内容类型代号?我已经尝试重现它(请参阅随附的屏幕截图),并且一切都在我身边工作(也有针对此功能的测试,它也通过了GetContentType.swift
)。
你能从方法行 176中发布一个requestUrl
属性的值吗?DeliveryClient.swift
getContentType()
编辑:哦,从您在GitHub问题上的屏幕上,我可以看到您正在尝试获取带有错误项目代号的内容类型。您应该使用内容类型的代号。
来自方法的文档getContentType()
:
/** Gets single content type from Delivery service. - Parameter name: The codename of a specific content type. - Parameter completionHandler: A handler which is called after completetion. - Parameter isSuccess: Result of the action. - Parameter contentTypes: Received content type response. - Parameter error: Potential error. */
您可以在此处了解有关内容类型的更多信息。
推荐阅读
- ios - Flutter:扩展图块在纵向模式下工作正常,在横向模式下失败
- mysql - 找不到 drupal 业务用户的数据
- c# - 程序永远不会完成使用任务
- python - Python:倒计时
- javascript - 在 DASH 协议中获取下一段通知的方法或方式
- python - 自定义对象的 Hash() 不是“随机的”
- c++ - C++ 中的条件运算符( ? : )可以编译时使用吗?
- php - laravel/framework v6.9.0 需要 php ^7.2
- android - 用于 Flutter 的 Firebase 云消息传递 - 可选择处理后台消息错误
- java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'users.user'不存在