`po`给出错误:<EXPR>:1:1:错误:使用未parsing的标识符
我有控制台中试图输出一个函数本身工作,但输出一个variables或常量没有这个问题。
正如你在这里看到的,尽pipe你会认为var / let包含bar.boy()
的内容,Swift却无法find它…
所以事实certificate,以前可能有一个错误,当你添加一个Swift文件时,它会添加/询问一个桥接头,但是它不会将该行添加到你的项目中
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
这意味着你会保持这种状态
导致error: <EXPR>:1:1: error: use of unresolved identifier
!
我只能find,因为我在项目中移动文件,当我添加ObjC文件到项目中时,它向我询问了一个桥接头(尽pipe我已经有一个头)!幸运的是,添加了SWIFT_OPTIMIZATION_LEVEL
。 有人可以认为这是一个错误,认为默认值是fastest
,但是,然后我再次猜测这只是一个过去的错误,现在已经修复。
不过,我现在修正了这个问题,如果它在发布版本中none
添加none
,那么这可能是一个错误。 我现在不能testing这个,因为testing这个我只有一个Debug
版本。 我会把这个作为一个练习:)苹果公司的工程师。
我把Swift Complier设置为“-O”
SWIFT_OPTIMIZATION_LEVEL = "-O";
并将其设置回“ – 无”。
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
然后它工作。
我敢打赌,这个错误是由于foo
已经在编译过程中被优化了,而且它的符号在编译的代码中不再存在(即使它不应该在debugging中,它仍然是一个LLDB错误)
大概如果你在接下来的几行(甚至是println)中添加一些foo
用法,它的符号将会保存在IR中,你就可以用po foo
(我同意,这仍然是一个错误,但至less如果它的工作,你会有一个解决方法和一些解释感)
修改后设置:
在Swift编译器 – 代码生成下Optimization Level = None[-Onone]
请注意,在Apple LLVM 8.0 – 代码生成下设置Optimization Level
不起作用