首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建混合开发pod

如何创建混合开发pod
EN

Stack Overflow用户
提问于 2019-01-23 19:18:13
回答 1查看 192关注 0票数 0

对不起,我不能包含代码,因为我在工作中遇到了这种情况,而且出于某些安全原因,我不能共享代码。

我所拥有的:

我有一个包含UI组件和主要基类的Objective-c pod

我想:

我想在主项目中使用Swift组件(RatePlanCardView)。我需要创建一个带有自定义类(RatePlanCardView)的视图控制器包含视图,并为它创建一个插座,我可以调用这个自定义类中的任何函数。

我做了什么:

我在情节提要包含视图中创建了一个视图控制器,然后我将此视图的类更改为(RatePlanCardView),并为其创建了一个插座。

发生了什么:

当我执行调试时,我发现这个插座的类是UIView not (RatePlanCardView),所以每次调用自定义类中的任何函数都会发生如下错误。

正在终止应用程序,因为未捕获异常'NSInvalidArgumentException',原因:'-UIView adjustCardView:无法识别的选择器已发送到实例0x7ffbae08ab10‘

而(adjustCardView)是(RatePlanCardView)类中的函数。

我有两个解决方案:

1-我为新组件(RatePlanCardView)创建了Swift pod,这个类继承了ObjC pod (ExpandableCardView)的一个类,并且编译成功。当我把新的pod放到主项目中并根据需要使用它时,一切都编译成功了,但是当我导航到新的视图控制器并调用函数(adjustCardView)时,上面的错误就会触发。但是当我看到这个函数的定义时,xCode将我移到正确的函数,但它不能执行任何函数,因为它已经将自定义类视为UIView,而不是RatePlanCardView。

2-我试图搜索,如何创建混合开发的pod,但我找不到任何支持这个解决方案的教程。

注意:

感谢您的耐心和支持,给我时间阅读我的问题。当然,任何其他解决方案都将非常受欢迎。另外,如果你帮助我任何上述的解决方案,也谢谢。

提前谢谢。

我解决了这个问题:

我创建了包含objC代码和带有桥接头文件的swift代码的框架,一切工作正常

EN

回答 1

Stack Overflow用户

发布于 2019-01-23 20:32:14

您创建的outlet应该是这样的:

代码语言:javascript
复制
@property (nonatomic, weak) IBOutlet RatePlanCardView *rpCardViewOutlet;

现在转到XIB并将此插座连接到您的RatePlanCardView视图。这样,您只能在类型匹配时才能将视图与outlet连接,并且应该触发对此类函数的任何调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54326034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档