我使用CocoaPods(Xcode 9.3.1和Swift 4.1)创建新项目,当然还在其中使用SnapKit。
我想使用第三方类TreeView,这个类是由Objc写的。
我如何在类TreeView中使用SnapKit ???
我尝试使用以下步骤但不能正常工作:
创建名为SnapKit-Bridging-Header.h的新文件
转到TreeView.m,导入头文件(注意:它以' -Swift'结尾):
#import" SnapKit-Swift.h"
编译现在可以!我可以在TreeView.m文件中看到LayoutConstraint(在SnapKit中定义)和其他一些类
但是当我使用view.snp.xxx时,它会抱怨" Property' snp'没找到..."
所以我的问题是如何在ObjC文件中使用view.snp.xxx ???谢谢:))
答案 0 :(得分:1)
Swift代码与Objective-C无法完全互操作。 您只能在Objective-C支持的桥接头中使用此类Swift元素。这个库需要Swift,它并不是说它支持Objective-C,所以你可能需要做额外的适应工作来支持它。
在iOS 9+中,您拥有与SnapKit一样易于使用的NSLayoutAnchor API (见https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html; https://cocoacasts.com/working-with-auto-layout-and-layout-anchors/; https://theswiftlibrary.com/the-simple-way-of-creating-constraints-in-code)
此API易于使用且与Objective-C兼容。
如果您想支持iOS 8,可以使用this one之类的反向移植库。