반응형 Apple30 [Swift] 문자열에서 특정 문자 한 개 또는 여러 개 제거하기 PS에서 입력을 파싱해서 사용해야 할 때가 있다. 얼마전 숫자 N개를 공백으로 구분해서 주지 않고 콤마로 구분한 뒤, 심지어 괄호 안에 담아서 [1,2,3,4,5] 이렇게 주는 문제를 만났다ㅠㅠ 공백 대신 콤마로 주는 건 split의 separator를 ", "로 바꿔주기만 하면 되는데, 앞 뒤에 대괄호를 떼어내는 게 문제.. 인덱스로 앞 뒤 잘라내는 방법도 있겠지만 스위프트에서 문자열 인덱스 다루는 게 제일 귀찮은 일이어서ㅎㅎ 그냥 괄호를 없애버리는 방법을 찾았다. 문자열 내에서 Target Substring을 모두 찾아 원하는 Replacement 문자열로 바꿔주는 replacingOccurrences라는 메소드가 있다. func replacingOccurrences(of target: Target,.. 2022. 1. 18. [Swift] 비트 연산과 비트마스킹 (NOT, AND, OR, XOR, 시프트 등) 오늘도 PS를 위한 문법, 비트 연산자이다. 비트 연산은 거의 비트마스킹에 쓰기 때문에 비트마스킹에 활용하는 방법까지 엮어서! Bitwise Operators NOT ( ~ ) 모든 비트를 반대로 뒤집어버린다. 0은 1로 만들고, 반대로 1은 0으로 만든다. 연산자는 ~이다. let A: UInt8 = 0b00110011 // 0011 0011 let notA = ~A // 1100 1100 AND ( & ) 둘 다 1인 경우에만 1이고, 나머지 경우는 모두 0으로 만든다. 연산자는 &이다. let A: UInt8 = 0b00110011 // 0011 0011 let B: UInt8 = 0b01010101 // 0101 0101 let AandB = A & B // 0001 0001 OR ( | ) 둘 .. 2022. 1. 17. [Swift] 진수 변환하기 (2진수, 8진수, 10진수, 16진수 등) PS를 위한 문법~ 이번엔 진수 변환이다. 브론즈~실버에서 가끔 진수 변환이 필요한 문제가 있다. 물론 직접 구현해도 되지만..! 이미 라이브러리에 편하게 메소드가 있다ㅎㅎ Int의 이니셜라이저 중에 문자열과 기수(radix)를 받아 문자열로 표현된 radix진수 → Int로 만들어주는 init(_:radix:)가 있다. 주의할 점은 변환에 실패할 수도 있기 때문에 Failable Initializer이라는 점이다. 옵셔널 타입으로 만들어주므로 옵셔널 바인딩을 하거나 강제 언래핑을 해서 사용해야 함. init?(_ text: S, radix: Int = 10) where S : StringProtocol 또 String의 이니셜라이저 중에 정수와 기수(radix)를 받아 정수 → radix진수 문자열로 .. 2022. 1. 17. [Swift] 거듭제곱하기 거의 PS용 문법들만 포스팅하게 되는 것 같은데..ㅎㅎ 오늘은 거듭제곱이다. 반복문으로 구현해도 되지만 메소드로 만들어져 있다! 사용법 요약부터 하면 let resultOfPow = pow(3.0, 2.0)// 9.0 // Int로 형변환 하려면 Float형으로 호출해야 함 var sum = 0 sum += Int(resultOfPow)// Int형과 더하려면 형변환 필요 스위프트의 거듭제곱 메소드는 pow이다. 종류가 이렇게 많은데, 호출 시에 파라미터를 다 _로 생략하게 되어있으니까 자료형에 맞춰서 알아서 맞는 것으로 호출되겠지..? 하는 생각을 하며 일단 시작 pow(x,y)에서 x가 밑이고 y가 지수이다. 알고리즘 문제에서는 거의 밑과 지수 모두 정수일 때이니까 정수^정수를 해보자. 이렇게 잘 구.. 2022. 1. 15. [iOS] 백그라운드 스레드에서 타이머 돌리기 ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 저번 글에서는 런루프와 타이머의 관계, 타이머 생성하는 법까지 다뤘다. [Swift] Timer(타이머)와 Thread(스레드), RunLoop(런루프) ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 최근 프로젝트에서 반복 타이머가 필요한 경우가 있었는데, 그때 알아보았던 타이머, 스레드, 런루프에 대해 까먹기 전에 정리하 please-amend.tistory.com 요약을 하자면..! 런루프는 스레드마다 존재하면서 마우스나 키보드 같은 입력 이벤트와 타이머 이벤트를 처리해준다. 타이머는 객체를 만들어서 런루프에 추가해주어야 한다. 그럼 타이머는 어느 스레드의 런루프에서 돌리는 것이 적절할까? 메인 스레드에서는 UI와 .. 2022. 1. 15. 이전 1 2 3 4 5 6 다음 반응형