목록앱 개발/iOS (96)
나의 발자취
print(_ items: Any..., separator: String = " ", terminator: String = "\n") _: 와일드카드 패턴; argument label을 사용하지 않음. separator: 글자를 분리하는 기본값 terminator: 글자를 끝내는 기본값
guard(감시하다) : 조건이 맞는지 감시한다. 사용 이유 if문을 사용할 때, 조건이 여러개가 된다면 들여쓰기가 많아져서 가독성이 떨어진다는 단점이 있다. 또한 여러개의 옵셔널 타입을 안전하게 언래핑할 수 있다. 코드의 영역이 변경되지 않고, guard문에서 선언된 변수를 아래문장에서 사용 가능하기 때문이다. 불만족하는 조건을 사전에 걸러내는 조건문 먼저 감시를 해서 조건을 만족하지 않으면 else문이 실행이 되며 종료시킨다. (early exit) (종료 조건; 함수 내애서는 return / true. 반복문에서는 break / continue. ) 조건을 만족하면 else 문 밑의 코드들을 실행한다. else문이 먼저 등장하는 if문이라고 생각하면 쉽다. 형태 guard password.count..
함수 내의 파라미터는 기본적으로 값타입이고(복사되어서 전달) 임시상수이기 때문에 변경이 불가하다. 이때 inout 키워드를 사용하면 참조로 전달하게 된다. 파라미터의 복사본이 전달되는 것이 아니라 원본의 주소가 전달된다. (내부적으로 copy-in copy-out 매커니즘이 실행된다.) 변수를 직접 넣었다가 뺀다고 생각하면 쉽다. 정의 하는 방법은 함수 파라미터를 할 때 파라미터 타입 앞에 inout 키워드를 추가한다. func swapNumbers(a: inout Int, b: inout Int) { ... } 실행 방법 swapNumbers(a: &num1, b: &num2) 위에서 inout 키워드로 선언하면 아래에서 호출할 때 자동으로 되지만, 변수를 전달할 때 & 기호를 꼭 붙어야 한다.(원본이..

조건문 for item in stride(from:to:by:) let _ = (1…10).reversed() for item in 범위 {} repeat {condition} while 일단 한번은 실행하고 나서, 조건을 판단해서 실행. (do...while 문과 비슷) terminator 파라미터 print(“df”, terminator: "") 함수 argument label addFincti(_ firstNimL Int, dfsfd){} 가변파라미터 variadic parameters func arthmaticAverage(_ numbers: Double…)-> Double {} Guard 문 1) 가독성을 높임/if문의 불편함을 해소(조건을 만족해야 다음 문장, 조건 불만족 걸러내기) 2) 여러..

iOS의 메모리 관리 기법에 대해 더 깊게 알아보고, 정리를 해보고 싶어서 듣게 되었다. 세 명의 엔지니어들이 10분정도씩 돌아가며 설명을 해준다. Memory Footprint iOS 에서 어떻게 메모리를 관리하는지 설명하는 부분인데, 일단 메모리는 크게 Clean, Dirty, Compressed로 명칭이 나뉜다. (Clean Dirty, Dirty가 압축되면 Compressed) 메모리 공간을 나눠서 세는 단위(?)를 page라고 하는데 각각 클린 메모리에는 뭐가 들어가고, 더티 메모리는 뭐가 해당된다고 설명하는 부분이다. 우리가 흔히 메모리를 사용하게 되는 앱은 더티 메모리에 해당된다. 메모리를 절약하기에 좋은 방법은 Singleton, Global Initializers이다. 싱글턴의 경우 한번..
일단 증거가 있기 전에도 나의 대답은 yes였다. 사파리로 블로그 메모 + 동시에 XCode에서 Playground를 돌리면 앱을 처음 빌드하고 시뮬레이션을 가동시킬때처럼 가동되면서 팬소리가 들린다. 그래서 메모리를 확인해보니 꽉 차고, 메모리를 주로 사용하는 앱들로 사파리와 XCode 둘이가 나와있어서 찾아보았다. https://www.idropnews.com/news/faq-are-my-pinned-tabs-in-safari-draining-battery-and-cpu-power/162714/ FAQ: Are My Pinned Tabs in Safari Draining Battery and CPU Power? Pinning a tab in Safari can be an incredible timesa..

최소 버전을 iOS 12.0 이상으로 설정하면 정상적으로 빌드가 되지않고 오류가 발생한다. 왜 그럴까? 아......이거 전에도 애플 앱 빌드하면 안되고 자꾸 오류나서 해결을 겨우 겨우 했었다. delegate어쩌고 설정을 바꿔서 겨우 해결했었는데, 이것을 해결하기 전까지는 진짜 하루종일 삽질했다. Podfile의 오류인것같다고 plist 지우고 podfile 해결하고 등등..ㅠㅠㅠ 역시나 스택오버플로우에도 podfile 관련한 내용이 적혀있는것으로 보아(https://stackoverflow.com/questions/53117077/swift-unable-to-open-file-in-target-xcode-10) 이와 연관이 있는것같은데, 정확히 pod이 무엇이고 왜 나는지 잘 모르겠다. 구글에 'mi..

나는 평소에 애플제품의 UI를 너무 좋아한다. 그리고 무엇보다도 갤럭시모델보다 애플 모델을 좋아하는 이유는 이스터에그 때문이다. 아이폰이나 기타 애플 제품을 오래 사용한 유저라면 공감할 수도 있는 부분이고, 이제 막 애플 제품에 입문한 유저에게는 불편함으로 다가올 수 있다. 애플 제품은 갤럭시보다 기능이 직관적으로 보이진 않지만 히든기능이 있어 그런 것들을 발견해내어 잘 사용하게 되는 맛이 있다. 아주 쉬운 예를 들자면 시계를 더블클릭하면 스크롤이 제일 위로 올라간다거나, 계산기에서 숫자 부분을 스와이프하면 한 숫자(figure)씩 지울 수 있고, assistive touch를 활성화 한 후 세 손가락으로 세 번 화면을 터치하면 Low light 필터를 사용할 수 있어 밤에 눈이 더 편한, 이런 기능 말..