티스토리 뷰
반응형
문제 상황 이해하기
API를 통해서 문자열을 호출할 때 HTML 태그와 함께 오는 경우들이 있어요.
예를 들면, Kakao API에서 카페 검색 정보를 호출할 때 결과물 중 제목과 콘텐츠에 HTML 태그들이 섞여와요.
아래는 Kakao 개발 가이드에서 보여주는 Response의 예시에요.
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"meta": {
"is_end": false,
"pageable_count": 983,
"total_count": 218662
},
"documents": [
{
"cafename": "쭉빵카페",
"contents": "무대의상들 정보 궁금해하는 게녀들이 있길래 가져왔어! 이번에는 레드벨벳이랑 <b>아이유</b> 의상만 가져왔는데 기회가 되면 다음에 다른 연예인들 의상도 가져올게~ 링크가...",
"datetime": "2017-01-31T16:57:33.000+09:00",
"thumbnail": "https://search1.kakaocdn.net/thumb/P100x100/?fname=http%3A%2F%2Fsearch1.kakaocdn.net%2Fargon%2F130x130_85_c%2FFJtvuJLusO",
"title": "연예인 무대의상 정보 가져왔어! (feat. 레드벨벳, <b>아이유</b>)",
"url": "http://cafe.daum.net/ok1221/9fQk/39709"
},
...
]
}
title에서 원하는 정보는 "feat. 레드벨벳, 아이유"인데 그대로 받아오면 "<b>아이유</b>"를 출력하게 돼요.
그래서 Swift에서 문자열 중 html만 제거하는 기능을 구현하는 방법을 볼게요 :]
기능 구현하기
// MARK: - Edit HTML String
extension String {
// MARK: Initializers
init?(htmlEncodedString: String) {
guard let data = htmlEncodedString.data(using: .utf8) else { return nil }
let options: [NSAttributedString.DocumentReadingOptionKey:Any] = [
.documentType: NSAttributedString.DocumentType.html,
.characterEncoding: String.Encoding.utf8.rawValue
]
guard let attributedString = try? NSAttributedString(data: data, options: options, documentAttributes: nil) else {
return nil
}
self.init(attributedString.string)
}
}
반응형
'iOS 앱개발 > iOS' 카테고리의 다른 글
[iOS] ViewController 초기화시 init과 ViewDidLoad의 차이 (0) | 2022.01.19 |
---|---|
[iOS] 시뮬레이터 없이 UI 확인하는 Preview 기능 만들기 (0) | 2022.01.03 |
[iOS] Kakao API 사용시 Date 타입이 iso8601일 때 iOS에서 Decoding이 안되는 경우 (0) | 2022.01.03 |
[iOS] Custom UIColor 만들기 (0) | 2022.01.02 |
[iOS] - RxSwift 개념 이해하기_05 (0) | 2021.10.24 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 나무자르기#BOJ#이분탐색#Python
- 텀 프로젝트#백준알고리즘#Python
- NumberofDiscIntersections#Codility#Sort#Python
- Swift#Tuples#Range
- PassingCars#Codility#Python
- 암호코드#dp#BOJ#Python
- 미로 탐색#백준알고리즘#Python
- 백준 알고리즘#BackTracking
- 리모컨#완전탐색#BOJ#Python
- django
- filter#isalnum#lower
- 터틀비치#리콘#xbox#controller
- 토마토#백준알고리즘#Python
- 쿼드트리#BOJ#분할정복#Python
- 공유기 설치#BOJ#이분탐색#Python
- 랜선자르기#이분탐색#BOJ#Python
- 배열합치기#분할정복#BOJ#Python
- 날짜 계산#BOJ#완전탐색#Python
- 병든 나이트#BOJ#탐욕법#Python
- 순열사이클#BOJ#Python
- django#slicing
- Triangle#Sorting#Codility#Python
- API#lazy#
- N으로 표현#DP#Programmers#Python
- Distinct#Codility#Python
- Brackets#Stacks and Queues#Codility#Python
- 섬의개수#백준알고리즘#Python
- 반복수열#백준알고리즘#Python
- 종이자르기#분할정복#BOJ#Python
- 파이썬알고리즘인터뷰#4장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함