【问题标题】:Kentico-cloud Swift SDK ContentType does not have usable propertiesKentico-cloud Swift SDK ContentType 没有可用的属性
【发布时间】:2019-07-03 15:42:15
【问题描述】:

我正在使用 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 的属性。

我认为它应该给我类型的名称作为字符串,这样我就可以将它映射到我的类。

【问题讨论】:

    标签: swift kentico kentico-kontent


    【解决方案1】:

    您能否验证您在名称参数中具有有效的内容类型代号?我已经尝试重现它(请参阅随附的屏幕截图)并且一切正常(在 GetContentType.swift 中也通过了此功能的测试)。

    您能否从DeliveryClient.swift getContentType() 方法行176 中发布requestUrl 属性的值?

    编辑:哦,从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.
     */
    

    您可以了解有关内容类型的更多信息here

    【讨论】:

    • 感谢您的回复。我确实想知道它是否是内容类型的代号而不是内容。我正在尝试获取 LinkedElementType 值的内容类型。似乎没有办法访问这些类型。 value 属性是一个字符串数组,表示它们的代号。
    • 深入研究,我看不出有任何方法可以从其代号中获取一段内容的内容类型,以便我可以使用 getItem 并将其动态映射到我的类。
    • 您可以从 ItemsResponse JSON 访问每个链接元素的类型。它将是 [modular_content][][system][type]
    【解决方案2】:

    我也有同样的想法usps tracking,但感谢您提出问题。

    感谢和问候, 肖恩。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-07
      • 2016-12-24
      • 2019-09-20
      • 1970-01-01
      • 2013-06-16
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多