             var rs = Dictionary<NSObject, AnyObject>(minimumCapacity: dic.count)
             var type: Any.Type?
             
-            // 如果不是数组/字典/可选, 偿试直接获取到类型
-            if (!valueTypeName.hasPrefix("Swift.Array")
-                && !valueTypeName.hasPrefix("Swift.Optional")
-                && !valueTypeName.hasPrefix("Swift.Dictionary")) {
+            // !!这将会加载效率
+            // 如果不是容器, 偿试直接获取到类型
+            if !_sf_isContainer(valueTypeName) {
                 type = _sf_class(name: valueTypeName)
             }
             

                // 转换为对应的值
                if let k = _sf_convertOfValue(k, kt) as? NSObject {
                    if let type = type {
                        // 继续处理. 不能直接识别的类型
                        if let v: AnyObject = _sf_unserialize(v, type) {
                            rs[k] = v
                        }
                    } else {
                        // 继续处理. 不能直接识别的类型
                        if let v: AnyObject = _sf_unserialize(v, valueTypeName) {
                            rs[k] = v
                        }

    let dstTypeName = "\(dstType)"
    
    // 如果有数组/字典/可选
    if _sf_isContainer(dstTypeName) {
        return _sf_unserialize(src, dstTypeName)
    }
    
    return nil
