【发布时间】:2019-03-08 15:22:00
【问题描述】:
我正在尝试在 swift 上下文中设置一些便利变量并从 ObjC 上下文中访问它。
(lldb) expression -l swift -- var $answerSwift = 42
(lldb) expression -o -l swift -- $answerSwift
42
(lldb) expression -o -l objc -- $answerSwift
error: use of undeclared identifier '$answerSwift'
反之亦然:
(lldb) expression -l objc -- int $answerObjc = 42
(lldb) expression -o -l swift -- $answerObjc
42
如何将值从 swift 范围 (?) 移动到 objC 范围?
【问题讨论】:
-
鉴于即使在普通代码中,Swift 全局变量在 ObjC 中也不可见,如果这完全不可能,我不会感到惊讶。 (在 Swift 表达式中添加
@objc甚至不会解析。) -
Swift Int 是结构而不是类。我不认为您可以在编译代码中访问 ObjC 中的 swift 结构,因此您也无法在调试器中访问。对象可以工作,但如果它们不能开箱即用,我不会感到惊讶。
-
我使用 Ints 是因为我希望它们能成为一个好的、简单的例子。在我的初始设置中,我试图访问对象。
标签: objective-c swift lldb