假设我有一个像这样的结构:
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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。