加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 如何在调试时打印Swift结构的自定义描述,而不是其他内

发布时间:2020-12-14 19:17:24 所属栏目:百科 来源:网络整理
导读:假设我有一个像这样的结构: struct MyStruct: CustomStringConvertible { let myInt: Int let myString: String var description: String { return "my int is (myInt),nand my string is "(myString)"" }} 从代码打印描述工作正常. let myStruct = My
假设我有一个像这样的结构:

struct MyStruct: CustomStringConvertible {
    let myInt: Int
    let myString: String

    var description: String {
        return "my int is (myInt),nand my string is "(myString)""
    }
}

从代码打印描述工作正常.

let myStruct = MyStruct(myInt: 3,myString: "hello")
print(myStruct)

这导致了

my int is 3,and my string is "hello"

当我想从调试器打印myStruct的描述时出现问题. po myStruct导致

? my int is 3,and my string is "hello"
  - myInt : 3
  - myString : "hello"

明确地打印出它的描述也没有帮助,因为po myStruct.description结果

"my int is 3,nand my string is "hello""

我认为它可能与CustomDebugStringConvertible有关,所以我添加了这段代码:

extension MyStruct: CustomDebugStringConvertible {
    var debugDescription: String {
        return description
    }
}

不幸的是,这根本不会改变任何结果.

有办法吗?

my int is 3,and my string is "hello"

调试时从命令行打印?

解决方法

(lldb) expression print(myStruct)
my int is 3,and my string is "hello"

你可以定义自己的’命令’

(lldb) help command
The following subcommands are supported:

      alias   -- Allow users to define their own debugger command
                 abbreviations.  This command takes 'raw' input (no need to
                 quote stuff).
      delete  -- Allow the user to delete user-defined regular expression,python or multi-word commands.
      history -- Dump the history of commands in this session.
      regex   -- Allow the user to create a regular expression command.
      script  -- A set of commands for managing or customizing script commands.
      source  -- Read in debugger commands from the file <filename> and execute
                 them.
      unalias -- Allow the user to remove/delete a user-defined command
                 abbreviation.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读