最近在一个oc于Swift混编的项目中,oc的类需要用到Swift类中的成员属性,比如oc的控制器需要访问使用Swift编写的模型类的成员属性,但是无论如何都调用不到(Xcode不进行只能提示,强写之后编译报错不通过)!
尝试了各种方法来修饰Swift类的成员属性,尽脑汁,终无果,遂弃之。
然鹅,这样一个问题解决不了,难道要让寡人将模型类用oc重新编写?
既然百思不得姐,就先放着吧,于是继续编写其它代码。
就在写到给button添加点击事件的时候,使用Selector包装的方法需要使用 @objc 修饰,忽然灵机一动,是不是Swift类的成员属性使用 @objc 修饰之后 oc 对象就能正常调用了呢?
有此想法之后忽又联想到在 Swift4.0 之后,Swift运行时获取一个类的成员属性列表时,成员属性也要用 @objc 修饰。这似乎离答案又近了一步,我想很可能 成员属性 使用 @objc 修饰之后在 oc 对象中就能正常调用了,于是迫不及待加上 @objc ,果然,idea 得到证实,正是如此!于是愉快地完成了模型任务~~
其实,现实生活中或者回想高中解题的时候也或多或少遇到过此类情况,有些问题当时百思不得其解,那么暂且放过,继续之后正常的活动或者生活,也许会在某个时刻恍然大悟,之前绞尽脑汁得不到答案的事情忽然就融汇贯通了。
自然界万事万物相互作用相互联系,真是玄妙至极!
额,上升到哲学高度了。
好了,回到本文主题,欢迎朋友们将自己遇到的这样的小问题分享出来大家相互讨论,共同进步!