请问swift调用object-c,这里为什么有错

[复制链接]
272 6
我用swift调用Object-c,在Object C中定义了方法:

enum {
kCCEncrypt = 0,
kCCDecrypt,
};
typedef uint32_t CCOperation;

+(NSString*)TripleDES:(NSString*)plainText : (CCOperation) encryptOrDecrypt : (NSString*)encryptOrDecryptKey;

然后swift中调用时:
Des3.TripleDES("aaa",.kCCEncrypt,"123456");

就是提示 .kCCEncrypt这里步对,改成 kCCEncrypt也不对,枚举究竟该如何使用呢?



修改成如下,也有错误提示:
let a:CCOperation = kCCEncrypt;//这里提示,‘Int' is not convertible to 'CCOperation'

Des3.TripleDES("aaa",a,"123456");

举报 使用道具

回复

6 个评论

米有爱  新手上路  发表于 2019-2-17 23:17:38  | 显示全部楼层
我用swift调用Object-c,在Object C中定义了方法:

enum {
    kCCEncrypt = 0,
    kCCDecrypt,     
};
typedef uint32_t CCOperation;

+(NSString*)TripleDES:(NSString*)plainText : (CCOperation) encryptOrDecrypt : (NSString*)encryptOrDecryptKey;

然后swift中调用时:
Des3.TripleDES("aaa",.kCCEncrypt,"123456");

就是提示 .kCCEncrypt这里步对,改成 kCCEncrypt也不对,枚举究竟该如何使用呢?



修改成如下,也有错误提示:
        let a:CCOperation = kCCEncrypt;//这里提示,‘Int' is not convertible to 'CCOperation'
        
        Des3.TripleDES("aaa",a,"123456");

举报 使用道具

回复
dafeidao  新手上路  发表于 2019-2-17 23:34:02  | 显示全部楼层
这样试试
Des3.TripleDES("aaa",.kCCEncrypt.value,"123456");

举报 使用道具

回复
Olefgovvat  新手上路  发表于 2019-2-17 23:54:50  | 显示全部楼层
引用 1 楼 zhanglei5415 的回复:
这样试试
Des3.TripleDES("aaa",.kCCEncrypt.value,"123456");


LoginViewController.swift:145:27: Could not find member 'kCCEncrypt'

举报 使用道具

回复
KatromsRot  新手上路  发表于 2019-2-18 02:16:25  | 显示全部楼层
swift和objc的枚举定义及使用是有区别的,你这个objc类定义的枚举在swift不能这样用的,swift类不知道kCCEncrypt是什么东西。
重新在swift中定义相应枚举变量吧

举报 使用道具

回复
maxok  注册会员  发表于 2019-2-18 02:50:12  | 显示全部楼层
很明显啊
‘Int' is not convertible to 'CCOperation'

OC下定义的枚举转换到Swift里是Int类型,可你定义的CCOperation不是啊

举报 使用道具

回复
我爱你?  注册会员  发表于 2019-2-18 02:59:57  | 显示全部楼层
swift中的枚举与oc中的枚举是有很大的区别。在swift中枚举被重新定义成了类型。它不仅可以定义计算属性,还可以有方法。

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表