swift] bool 타입 배열 초기화 하는방법
var isSelecteds : [Bool] = [Bool]() mV.isSelecteds = Array.init(repeating: false, count: tmpArrs.count) count: 2 일때 // -> [false, false] mV.isSelecteds = [Bool]() //다시 초기화 // -> []
var isSelecteds : [Bool] = [Bool]() mV.isSelecteds = Array.init(repeating: false, count: tmpArrs.count) count: 2 일때 // -> [false, false] mV.isSelecteds = [Bool]() //다시 초기화 // -> []
class AlarmInfo: NSObject, NSCoding { var sound : eSound = .talkCM init(sound : eSound){ self.sound = sound } } enum eSound : Int { case talkCM case twoSecond case original case first var name: String { switch self { case .first : return "1위" } } var songName: String { switch self { case .first : return "alarm_6_china.mp3" } } } -------- fun test(info: [AlarmInfo]) { info.forEach { (data) in dat..
- swift] json으로 가져온 url(stirng)을 띄어쓰기제거, 한글 인코딩, url 유효성 검사하기 json 형식의 데이터를 파싱하여 가져왔을 때 백엔드개발자의 실수나 어떠한 오류로 json의 url 데이터의 값이 오류가 생기는 경우 앱의 이미지를 보여주거나 웹뷰를 보여줄 때 큰 문제를 발생할 수 있다. 그래서 해당 url을 한번 체크(공백제거, 한글 인코딩, url 유효성 체크)를 해주고 앱이 작동되도록 로직을 구현해준다. let freedSpaceString = url.filter {!$0.isWhitespace} //띄어쓰기제거 guard let target = freedSpaceString.addingPercentEncoding(withAllowedCharacters: .urlQuery..
viewWillLayoutSubviews() 뷰의 bounds가 변하면 뷰는 하위 뷰들의 위치를 조정하는데, 레이아웃이 결정되기 전에 다음과 같은 작업을 수행하고자 할때 이 메서드를 override하여 사용 뷰들을 추가하거나 제거 뷰들의 크기나 위치를 업데이트 레이아웃 constraint를 업데이트 뷰와 관련된 기타 프로퍼티들을 업데이트 layoutSubviews() 뷰의 크기가 변경될 때마다 이에 대응하여 하위 뷰들의 크기&위치 변경되어야 함 -> auto layout을 사용하면 각 뷰의 autoresizingMask프로퍼티를 설정하여 상위 뷰의 크기가 변경되었을 때 어떻게 대응할 지 규칙을 정할 수 있음 뷰의 크기에 변경이 발생하면 우선 하위 뷰들의 autoresizing 동작을 적용하는데, 변경사항..