전체 150

[Swift] 10진수를 2진수로 변환하는 방법

저는 10진수를 2진수로 변환할 때 2로 나누고 나머지를 계산하는 방법을 구현했습니다. 그런데 알고 보니 더 좋은 방법이 있어서 정리합니다. 10 진수애 서 2진수로 변환 import UIKit let decimalNumber: Int = 10 let binaryNumber: String = String(decimalNumber, radix: 2) // 1010(2진수) 변환에 String이 사용되었는데 굳이 Int가 필요하면 다음과 같이 다시 변환해 주면 되긴 합니다. (아직까진 쓸 일이 있을진 모르겠습니다.) import UIKit let decimalNumber: Int = 10 let binaryNumber: Int = Int(String(decimalNumber, radix: 2))! // 10..

iOS/Swift 2022.03.15

[Swift] String 문자열에서 문자 접근하기

Swift에서 String은 0, 1, 2 같은 index로 접근할 수가 없습니다.. 그래서 다른 방법을 이용해야 하는데 그 방법을 정리해 보겠습니다. 인덱스 처럼 사용하기 let aaa:String = "012345" // String 문자열 aaa[aaa.startIndex] // 시작 인덱스로 "0"입니다. // startIndex와 반대로 endIndex도 있습니다. let n: Int = 2 aaa[aaa.index(aaa.startIndex, offsetBy: n)] // n이 2 임으로 "2"를 나타냅니다. 간단하게 aaa[2] 이런식으로 접근하면 좋을텐데 offsetBy를 지정해주어야 하는 단점이 있습니다. 그래도 list() indices 이용하기 - indices 는 index의 복수형..

iOS/Swift 2022.03.15

[Swift] 프로그래머스 LV1 비밀지도

String을 index로 접근하는 방법을 배울 수 있는 예제였습니다. 그건 그렇고 풀고나서 다른 사람들 풀이를 보니 정말 대단한 사람이 많습니다.. import Foundation func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] { var map1: [String] = [] var map2: [String] = [] map1 = decode(n, arr1) map2 = decode(n, arr2) return integrateMaps(map1, map2) } func decode(_ n:Int,_ arr:[Int]) -> [String]{ // 2진수로 만들기 -> 풀고 알았는데 radix를 쓰면 엄청 쉽다.. var tempMap:[St..

개발/PS 2022.03.12

[Mac] 녹화 소리 녹음(OBS 스튜디오 녹화)

-현재 다른 녹화는 잘 되는데 줌에서 발표자의 목소리는 녹음이 안됩니다.- -> 해당 이슈는 blackhole을 사용하면서 해결했습니다. 적용 방법은 본문과 비슷한데 추후 포스팅하겠습니다. 상당히 늦어지긴 했지만 포스팅 했습니다. https://jrepository.tistory.com/167 [Mac] Blackhole로 OBS studio로 영상 소리 녹화 전에 비슷한 포스팅을 했는데 잘 안될 때도 있어 Blackhole을 이용한 방법으로 개선해서 업로드합니다. (OBS 녹화를 하는데 맥북 마이크 소리 없이 컴퓨터 소리만 녹화하고 싶을 때 사용) https://jrepos jrepository.tistory.com 맥에서 OBS studio로 녹화를 하면 맥북 마이크 소리만 녹음이 되게 됩니다. 즉,..

기타 2022.03.04

[iOS] 앱 실행시 조건에 따라 다른 viewController로

구글 로그인을 구현하다가 로그아웃을 하지 않으면 메인 페이지로, 로그인이 되어있지 않은 상태면 로그인 페이지로 가도록 구현하는데 고민을 했습니다. 다음 포스팅을 참조해서 SceneDelegate의 scene에 구현하니 작동이 잘 되었습니다. [iOS] StoryBoard를 쓰지 않고 코드로 작성하기 아래 구현은 google 로그인을 조건으로 작성한 코드이고 이를 응용하면 상황에 따른 시작 지점을 변경해줄 수 있을듯 합니다. // SceneDelegate class func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // 새로 작성해준 코..

iOS/UIKit 2022.03.02

[iOS] TableView 스크롤위치 변경(하단으로 스크롤)

채팅 앱을 tableview로 구현하는데 어떻게 하면 TableView를 하단으로 내릴 수 있을까 고민했습니다. 방법을 찾았는데 scrollToRow를 이용하는 방법이 있었습니다. 애플 공식 문서 저는 talks 라는 배열에 cell의 정보를 담아두었으므로 row에는 cell의 개수-1 값을 주어 마지막 cell의 row를 알려주었고 section은 하나만 사용해서 0을 사용했습니다. 그리고 해당 cell의 아래로 가기 위해 .bottom을 할당했습니다. animation은 true이면 주르륵 내려가는데 false로 주어 채팅방에 들어갔을 때 바로 최하단이 보이도록 하였습니다. scrollToRow let index = IndexPath(row: self.talks.count - 1, section: 0..

iOS/UIKit 2022.03.02

[iOS] Label에 Padding 주기(StoryBoard), Label에 cornerRadius 주기

Label에 padding 주기 라벨에 패딩을 쉽게 주는 방법을 알아보겠습니다. 사실 저장해두고 써먹으려는... (근데 왜 CSS 처럼 padding이나 margin이 없을까...?) 암튼 View 안에 label을 넣어 padding을 주는 방법도 있다고 하는데 여기서는 @IBDesignable을 이용하도록 하겠습니다. @IBDesignable을 설정해주면 스토리보드에서 클릭으로 설정이 가능한 창이 생성됩니다. 사용 방법은 간단합니다. 1. Swift 파일을 만든다. 2. Label의 class에 만든 Swift의 class를 할당해준다. 3. 속성 인스펙터에 새로운 창이 생겼으니 padding을 조절하면 된다! import Foundation import UIKit @IBDesignable class..

iOS/UIKit 2022.03.02

[iOS] Transform을 이용해 KeyBoard 이벤트 처리

키보드가 필요한 작업을 하려고 하니 TextField가 가려지는 현상이 발생했습니다. 아마 많은 분들이 같은 문제를 겪고 계실거라 생각되는데 한번 키보드 높이 만큼 textfield를 이동시켜 가려지지 않게 하고 키보드가 내려가면 다시 원래 위치로 돌아가는 이벤트를 처리해 보겠습니다. 1. 키보드 상승 및 하강을 보고 이벤트를 실행시키기 위해 옵저거 달기 먼저 저는 필요한 화면의 viewWillAppear에 선언해 주었습니다. (메모리를 위해 viewWillDisappear에서 옵저버를 해제해 주셔야 합니다.) override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) // 키보드가 나올때 observing Notific..

iOS/UIKit 2022.03.02

[iOS-Error] firebase(파이어베이스) Key 값 에러

파이어베이스를 사용하던 중 데이터를 set 할 때 오류가 발생했다. 알고보니 value 값은 상관 없지만 key 값에는 . # 등을 쓸 수 없다는 것이었다. 에러명 Thread 1: "(child:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']'" 해결법 위의 문자를 사용하지 않는 key 값을 key 값으로 사용하거나 다른 문자로 치환해서 사용한다.

카테고리 없음 2022.03.01

[iOS-Error] The ios simulator deployment~~ 에러

에러명 the ios simulator deployment target 'iphoneos_deployment_target' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.2.99. 다음의 에러가 발생했는데 지원 버전과 설정 버전이 맞지 않아 발생하는 에러라고 합니다. 해결법 pod 파일에 가서 다음을 추가하시고 install 하니 해결되었습니다. 붙이는 위치는 end 바로 위라고 생각하시면 됩니다. post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |conf..

iOS/Errors 2022.02.28