消息关闭
    暂无新消息!
我用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");

4个回答

︿ 1
swift中的枚举与oc中的枚举是有很大的区别。在swift中枚举被重新定义成了类型。它不仅可以定义计算属性,还可以有方法。
︿ 0
很明显啊
‘Int' is not convertible to 'CCOperation'

OC下定义的枚举转换到Swift里是Int类型,可你定义的CCOperation不是啊
︿ 0
swift和objc的枚举定义及使用是有区别的,你这个objc类定义的枚举在swift不能这样用的,swift类不知道kCCEncrypt是什么东西。
重新在swift中定义相应枚举变量吧