注册 登录
主题 : swift类中怎么使用自定义OC类的delegate?
级别: *
UID: 90103
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
0 楼:  发表于: 2014-06-08 16:32    发自: Web Page
来源于 技术求助 分类

swift类中怎么使用自定义OC类的delegate?   

OC自定义类:
#import <Foundation/Foundation.h>

@protocol OcObjDelegate <NSObject>

- (void)test;

@end


@interface OcObj : NSObject

@property (nonatomic, weak) id<OcObjDelegate> myDelete;

@end


swift类中调用出错


var octest = OcObj()
octest.myDelegate = self //报错:‘OcObj’does not have a member named 'myDelegate'
[ 此帖被泊竹在2014-06-08 17:09重新编辑 ]

级别: 侠客
UID: 81090
精华: 0
发帖: 63
可可豆: 432 CB
威望: 432 点
在线时间: 163(时)
注册时间: 2011-07-13
最后登录: 2016-01-07
1 楼:  发表于: 2014-06-09 13:45    发自: Web Page
1、OcObj有没有放到桥中?
2、不行的话试着把weak改成assgin试试。
PS:一个写的是myDelete 后面又称myDelegate了。。都是什么混乱的逻辑
级别: 新手上路
UID: 63348
精华: 0
发帖: 52
可可豆: 201 CB
威望: 160 点
在线时间: 264(时)
注册时间: 2011-04-12
最后登录: 2014-11-28
2 楼:  发表于: 2014-06-09 16:27    发自: Web Page
One  typo in "myDelete",  I guess you want to write "myDelegate"... ...
级别: *
UID: 90103
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
3 楼:  发表于: 2014-06-09 17:16    发自: Web Page
不好意思,是发帖的时候写乱了
我重新建了一个测试工程,是OC的工程,里面有一个OC类(OCTest),这个类有(OCTestDelegate)。还有一个Swift类(tttt),这个类实例化了OCTest,并指定自己是它的delegate。同时实现了delegate方法。
到这一步都没问题。

有问题的是在另一个OC类中使用这个Swift类(tttt)。为了方便,我直接在Appdelegate里实例化了tttt,并调用了里面的一个方法。编译报错。

图片:1.png
图片:2.png
图片:3.png
图片:4.png
图片:5.png
级别: *
UID: 90103
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
4 楼:  发表于: 2014-06-09 17:18    发自: Web Page
回 3楼(泊竹) 的帖子
这时编译报错

图片:6.png
级别: *
UID: 90103
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
5 楼:  发表于: 2014-06-10 12:59    发自: Web Page
自己解决了
是由于自动桥接文件的编译bug

需要手动在SWIFT_CLASS("_TtC4dddd4tttt")上面加一行:#import "OCTest.h"

并且,对OCTest做了任何改动,自己加的会被自动编译取消掉。得再次手动设置。

级别: 新手上路
UID: 234312
精华: 0
发帖: 1
可可豆: 1 CB
威望: 1 点
在线时间: 46(时)
注册时间: 2013-07-25
最后登录: 2017-05-09
6 楼:  发表于: 2014-09-20 17:38    发自: Web Page
回 5楼(泊竹) 的帖子
不太理解你说的  SWIFT_CLASS 是在哪里改动呢
级别: 骑士
UID: 27176
精华: 0
发帖: 299
可可豆: 933 CB
威望: 933 点
在线时间: 689(时)
注册时间: 2010-08-09
最后登录: 2019-03-12
7 楼:  发表于: 2015-01-14 08:35    发自: Web Page
weak改成assgin 即可
看完帖子没找到总结
我来总结吧
2楼正解 但是楼主解决问题了该总结一下嘛

级别: 新手上路
状态: 连续签到 - [9天]
UID: 513555
精华: 0
发帖: 2
可可豆: 52 CB
威望: 35 点
在线时间: 28(时)
注册时间: 2015-10-13
最后登录: 2018-06-11
8 楼:  发表于: 2016-08-22 11:09    发自: Web Page
回 4楼(泊竹) 的帖子
我也遇到相同问题 怎么解决的

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部