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://it72.com/7951.htm