【发布时间】:2018-09-11 10:32:50
【问题描述】:
我无法从 Objective C 中看到将myVar 设置为true 的方法/变量,即使很难,我已经添加了@objc 和public 修饰符,并且@987654326 中没有Bool @方法的签名。
这可能是由于 Swift 的 Bool 和 Objective C 的 BOOL 之间的差异造成的。
其他类方法/变量是可见的,只是这个特定的不可见。
如何在 Objective C 中设置 Swift 的 Bool?
Swift 代码:
public class MyViewController : UIViewController {
public var myVar:Bool = false
@objc public func setMyVarTrue() {
self.myVar = true
}
}
目标 C 代码:
MyViewController* myViewController = [MyViewController new];
myViewController.myVar = true // Variable not found
myViewController.setMyVarTrue() // Method not found
[self presentViewController:myViewController animated:NO completion:nil];
【问题讨论】:
-
您是否导入了 modulename-swift.h 文件?您的属性和方法在该文件中可见吗?
-
在你的objective c项目中导入swift文件,然后只能从objective c访问它
-
在
objective-c中将是[myViewController setMyVarTrue];。欢迎从swift回到objective-c
标签: ios objective-c swift bridging-header objective-c-swift-bridge