- UITextField에서 글자수 제한
if count <= 20 {
let countText = String(count) + " / 20"
self.countLabel.text = countText
} else {
self.textField.deleteBackward()
}
일정 글자수 넘으면 deleteBackward() 사용해주면 된다
참고
- RxAlamofire 사용해봤다.
let urlRequest = TimerRouter.getTodayTime
request(urlRequest)
.validate(statusCode: 200..<300)
.responseJSON()
.map { dataResponse -> Int in
guard let data = dataResponse.data else {
print("DEBUG 시간 불러오기 실패")
return 0 }
guard let timerResponse = try? JSONDecoder().decode(TimerResponse.self, from: data) else { return 0 }
guard let time = timerResponse.time else { return 0 }
return time
}
.bind(to: self.timeLabel.rx.intToTimerFormat)
.disposed(by: self.disposeBag)
RxAlamofire 사용해서 함수도 구현해봤다 아직은 잘 사용하고 있는지 모르곘다 조금더 연습해 봐야겠다.
func getTasks() -> Observable<[Todo]> {
return Observable<[Todo]>.create { observer in
let urlRequest = TodoRouter.getTasks
request(urlRequest)
.validate(statusCode: 200..<300)
.responseJSON()
.map { dataResponse in
switch dataResponse.result {
case .success:
guard let data = dataResponse.data else { return }
guard let todosResponse = try? JSONDecoder().decode(TodosResponse.self, from: data) else { return }
guard let todos = todosResponse.data else { return }
print("DEBUG \(todos) get 완료")
observer.onNext(todos)
case .failure(let error):
observer.onError(error)
APIClient.handleError(.unknown(error))
}
observer.onCompleted()
}
.subscribe()
.disposed(by: self.disposebag)
return Disposables.create()
}
}