221120 - TIL

bromp 2022년 11월 21일 AM 02:37 47 0
bromp Profile Image Level 7
1 #TIL

  • 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()
    }
  }

RxAlamofire Git
함수 구현 참고

댓글