`po`给出错误:<EXPR>:1:1:错误:使用未parsing的标识符

我有控制台中试图输出一个函数本身工作,但输出一个variables或常量没有这个问题。

第一个结果是<code> po bar.boy()</ code>,第二个是<code> unresolved </ code>

正如你在这里看到的,尽pipe你会认为var / let包含bar.boy()的内容,Swift却无法find它…

所以事实certificate,以前可能有一个错误,当你添加一个Swift文件时,它会添加/询问一个桥接头,但是它不会将该行添加到你的项目中

 SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 

这意味着你会保持这种状态

SWIFT_OPTIMIZATION_LEVEL最快

导致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不起作用