Swift开发——String类添加md5函数拓展

Home / iOS MrLee 2016-3-11 2812

Swift里面有一个新特性,在其它语言中基本上是没有的。它就是extension,它到底有多方便快捷呢?慢慢看我道来!
做过C++和Java的人应该知道,如果你要实现给String类添加一个方法,比如MD5的。你的唯一选择就是自己写一个类并继承这个String类,然后添加一个新的md5方法,申明的时候还只能是你创建的类名。比如
public class MyString extends String{
   public String toMD5(){
      ......
   }
}
MyString s = ""; 
s = s.toMD5();

想下,多麻烦,我还要继承它。并且还要申明类型只能是你定义的!但是在Swift中,你就会觉得,我其实就是添加了一个方法而且嘛。看看Swift中是怎么实现的呢?
//拓展String类md5方法
extension String  {
    
    func toMd5()-> String! {
        let str = self.cStringUsingEncoding(NSUTF8StringEncoding)
        let strLen = CC_LONG(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
        let digestLen = Int(CC_MD5_DIGEST_LENGTH)
        let result = UnsafeMutablePointer.alloc(digestLen)
        
        CC_MD5(str!, strLen, result)
        
        let hash = NSMutableString()
        for i in 0..
好了,你的所有String对象就可以调用这个toMD5了,是不是很方便!
let md5 = String("admin").toMd5()
        print(md5)

最后要说明一点,你必须要添加一个桥接头文件,然后在头文件中添加以下代码(因为包含该方法嘛,不然找不到具体方法。其实本质就是调用C/C++的方法)
#import 

 

本文链接:https://www.it72.com/7951.htm

推荐阅读
最新回复 (0)
返回