/ swift

uiwebview or NSURL error for pipe(%7C) character

ISSUE

URL문자열에 | 파이프 문자열이 들어가 있으면 NSURL 생성시 익셉션이 발생한다.

if let url = NSURL(string: "http://m.isplus.joins.com/news/article/article.aspx?total_id=16150910&cloc=rss|isplus") {
// is working?
} else {
// error occur
}

RESOLVE

이를 해결하기 위해서 파이프 문자를 %7C 형태로 치환해야 한다.

extension String {
    public func safeUrl() -> String {
        return self.stringByReplacingOccurrencesOfString("|", withString: "%7C", options: NSStringCompareOptions.LiteralSearch, range: nil)
    }
}

if let url = NSURL(string: "http://m.isplus.joins.com/news/article/article.aspx?total_id=16150910&cloc=rss|isplus".safeUrl()) {
// is working?
} else {
// error occur
}