假设我在objective c实现文件(MyVC.m)中有以下内容:

@interface MyVC ()
  @property (nonatomic, weak) IBOutlet UILabel *titlelabel;
@end

如何将此私有财产公开给Swift(测试)代码?以下原因导致编译器错误:
extension LTConversationSelectionVC {
   @IBOutlet weak var assetBar: LTAssetBar?
}

最佳答案

不幸的是,没有一种方法可以完全用swift来实现这一点。但是,您可以在测试目标的objective-c文件中公开该属性,然后将其放到测试目标的桥接头中。
将myvc+tests.h添加到测试目标:

@interface MyVC (Tests)
  @property (nonatomic, weak) IBOutlet UILabel *titlelabel;
@end

myapptests桥接头.h
#import "MyVC+Tests.h"

然后,在测试目标中的swift代码中,可以按预期使用titleLabel属性。
let vc = MyVC()
vc.titleLabel.text = "Hello, world!"

关于objective-c - 在Swift中公开Objective C类扩展属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29214972/

10-12 13:37