【问题标题】:The new servicestack client for Xcode 7 and swift 2.0 can't successfully compile code it generates?Xcode 7 和 swift 2.0 的新 servicestack 客户端无法成功编译它生成的代码?
【发布时间】:2015-09-29 19:13:36
【问题描述】:

基本上我们在编译在 Xcode 6.4 中工作的代码时遇到了很多问题

我们的整个 API 堆栈都是使用 servicestack 编写的,但我们并没有将其中的许多 API 用于 servicestack swift 客户端。只有少数几个,所以很多 DTO 即使在 xcode 6.4 中也不可用,但它编译得很好,我们可以使用我们专门修改以适应 servicestack swift 客户端的那些 API。

几天后,我们测试了 XCode 7 的最新 servicestack swift 客户端。立即出现 500+ 错误。主要可以分为2-3种错误类型。

  • 类型“xxxxxx”不符合协议“有元数据”(因为我们没有 ireturn?)
  • 类型别名 'Return' 必须声明为 public,因为它符合公共协议 'IReturn' 中的要求(我们确实有一个返回类型集,这应该是我们真正关心并希望能够打电话)
  • 静态成员“toJson”不能用于“xxxxx”类型的实例
  • 静态成员“fromObject”不能用于“xxxxx”类型的实例

另外,我们是否可以忽略其他所有内容并要求插件仅包含我们真正关心的 3 个 API?我看到顶部有一个名为 //IncludeTypes 的注释区域: //排除类型: 我们可以使用它吗?如果可以,我们应该怎么做?

【问题讨论】:

    标签: swift servicestack xcode7


    【解决方案1】:

    请查看v4.0.46 Release Notes on Swift 2.0 Support

    刚刚发布的 Xcode 7 仅附带 Swift 2.0,这是一个重大的语言更改,仅在 ServiceStack v4.0.46 中首次添加。所以如果你想使用 Xcode 7 你需要升级到 v4.0.46。

    您还需要下载最新的ServiceStack Xcode 7 Plugin

    如果你只想包含几个类型,你可以使用IncludeTypes

    【讨论】:

    • @shawhu 请编辑您的问题以包含 C# DTO 并生成 Swift DTO。
    • 啊,明白了。我们应该升级 servicestack,我们的服务器端库...谢谢!
    • 我会改变我的问题,但不知道你是什么意思,你想让我把我的问题标题改成别的吗?或者添加一些额外的标签?
    • @shawhu 如果它仍然是一个问题或将来当你遇到这样的问题时,除了编译器错误之外,还请包括导致问题的 C# 类以及获取的 Swift 类生成。基本上我们需要这个才能重现您遇到的错误。
    • 知道了,会的。实际上所有的问题都是由一个过时的 servicestack DLL 引起的,在我们更新它之后,一切都检查出来了。谢谢!下次我将介绍有关 DTO 和代码的详细信息。我上次做过,但这次我认为它必须是一个简单的修复,并且不应该是代码本身的问题,所以我没有包含详细的代码
    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 2022-01-15
    • 1970-01-01
    • 2012-06-09
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多