发布于 2015-12-28 10:34:04 | 132 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Swift教程,程序狗速度看过来!

Swift编程语言

SWIFT,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。


1,什么是字符值引用

(1)字符值引用 (numeric character referenceNCR) 是在标记语言SGML以及派生的如HTML与XML中常见的一种转义序列结构,用来表示Unicode的通用字符集 (UCS)中的单个字符. NCR可以表示在一个特定文档中不能直接编码的字符,而该标记语言阅读器软件把每个NCR当作一个字符来处理。
(2)我们可以将其理解为HTML、XML 等 SGML 类语言的转义序列(escape sequence)。而不是一种编码或转码。  

2,字符值引用的格式
以「&#x」开头的后接十六进制数字。或者以「&#」开头的后接十进制数字。
1
2
中国  //中国(16进制格式)
中国  //中国(10进制格式)
(不管哪种形式写在html页面中都会正常显示出“中国”)
 
3,将普通字符串转为字符值引用
由于Swift不提供原生的方法,那么我们通过扩展String类来实现
1
2
3
4
5
6
7
8
9
10
11
12
extension String {
    //转译成字符值引用(NCR)
    func toHtmlEncodedString() -> String {
        var result:String "";
        for scalar in self.utf16 {
            //将十进制转成十六进制,不足4位前面补0
            let tem = String().stringByAppendingFormat("%04x",scalar)
            result += "&#x\(tem);";
        }
        return result
    }
}
使用:
1
2
3
let words = "欢迎来到 hangge.com"
print(words.toHtmlEncodedString())
//欢迎来到 hangge.com

4,将字符值引用转位普通字符串  
同样先扩展String类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
extension String {
    init(htmlEncodedString: String) {
        do {
            let encodedData = htmlEncodedString.dataUsingEncoding(NSUTF8StringEncoding)!
            let attributedOptions : [StringAnyObject] = [
                NSDocumentTypeDocumentAttributeNSHTMLTextDocumentType,
                NSCharacterEncodingDocumentAttributeNSUTF8StringEncoding
            ]
            let attributedString = try NSAttributedString(data: encodedData,
                options: attributedOptions, documentAttributes: nil)
            self.init(attributedString.string)
        } catch {
            fatalError("Unhandled error: \(error)")
        }
    }
}
使用:
1
2
3
let words = String(htmlEncodedString: "欢迎来到 hangge.com")
print(words)
//欢迎来到 hangge.com

 

 



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务