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

endfun 2015-03-21 01:46:25
我用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");
...全文
347 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReyZhang 2015-04-17
  • 打赏
  • 举报
回复
swift中的枚举与oc中的枚举是有很大的区别。在swift中枚举被重新定义成了类型。它不仅可以定义计算属性,还可以有方法。
c00216863 2015-04-16
  • 打赏
  • 举报
回复
很明显啊 ‘Int' is not convertible to 'CCOperation' OC下定义的枚举转换到Swift里是Int类型,可你定义的CCOperation不是啊
u013984264 2015-04-13
  • 打赏
  • 举报
回复
swift和objc的枚举定义及使用是有区别的,你这个objc类定义的枚举在swift不能这样用的,swift类不知道kCCEncrypt是什么东西。 重新在swift中定义相应枚举变量吧
endfun 2015-03-21
  • 打赏
  • 举报
回复
引用 1 楼 zhanglei5415 的回复:
这样试试
Des3.TripleDES("aaa",.kCCEncrypt.value,"123456");
LoginViewController.swift:145:27: Could not find member 'kCCEncrypt'
ReyZhang 2015-03-21
  • 打赏
  • 举报
回复
这样试试
Des3.TripleDES("aaa",.kCCEncrypt.value,"123456");

1,420

社区成员

发帖
与我相关
我的任务
社区描述
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。
swift 技术论坛(原bbs)
社区管理员
  • Swift
  • 网罗开发
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧