본문 바로가기

728x90

전체 글

(104)
Method( Instance Method, Type Method) 특정 유형과 연관된 함수(Function)를 메서드라 한다. :Class, Struct, Enum과 같은 유형과 연괸된 작업(기능)을 말한다. Method와 Function의 차이 흔히 말하는 함수와 메서드의 차이는 클래스 내부에 정의한 함수를 메서드라고 하며, 이런 메서드와 별개로 독립적인 기능을 함수라 한다. 또 메서드는 객체의 속성을 다루기 위한 행위를 정의한 것이라는 의미도 포함되어 있다. 메서드의 종류 인스턴스 메서드(Instance Method) 타입 메서드(Type Method) 1. Instance Method 인스턴스 메서드는 특정 클래스, 구조 또는 열거형의 인스턴스로 접근 할 수 있는 메서드를 말한다. 인스턴스 메서드는 인스턴스 속성에 엑세스하고 수정하는 방법을 제공하거나, 인스턴스 ..
백그라운드모드에서 위치정보 가져오기 (BackgroundModes + LocationUpdates) 이번 게시물은 최근 프로젝트를 진행하면서 접한 백그라운드 모드에 대해 간단히 경험을 기록한다. 많은 삽질이 있었으니 중간에 잘못된 정보가 보인다면 댓글로 지적해주세요. 시작 백그라운드에서 네트워크 정보가 변경되고 변경된 네트워크(WiFi)명이 내가 원하는 네트워크와 일치하는지 확인 하고 LocalNotification을 발생시키는 기능을 만들고 있었다. 모두 알다시피 앱이 백그라운드상태로 진입하게 되면 보통의 일반적인 기능들은 정지된다. 당장 타이머 하나를 생성해서 1초마다 log를 출력하도록 해보자. 로그를 확인했다면 백그라운드로 앱을 내려보자. 잘 나오던 로그가 멈춘것을 볼 수 있다. Wi-Fi 를 감지하는 것 또한 위와 별 다를게 없으니 어떻게해야 백그라운드에서 동작을 수행할 수 있을지가 맞닥들인 ..
Swift의 Property 저장 속성 Stored Property - 가장 단순한 형태의 속성 - 일반적인 인스턴스의 상수 또는 변수 - 변수 저장은 var, 상수 저장은 let init과 함께 인스턴스를 초기화 할 때 저장속성에 기본값을 제공할 수 있다. struct FixedLengthRange { var firstValue: Int let length: Int } var rangeOfThreeItems = FixedLengthRange(firstValue: 0, lenth: 3) rangeOfThreeItems.firstValue = 6 이 때 rangeOfThreeItems가 let으로 할당 된 인스턴스라면 FiexdLengthRange의 firstValue의 속성이 var(변수)여도 수정이 불가하다. 이것은 값 유형인 s..
Timer로 작업 예약하기 타이머는 실행되어야 할 작업들을 특정 시간 간격을 두고 실행할 수 있게 해준다. 타이머는 RunLoop와 동작하며, 타이머를 효과적으로 이해하려면 RunLoop 가 어떻게 동작하는지 알아야 한다. (정리 필요) 타이머로 작업 예약하는 방법 1. 타이머의 클래스메서드를 사용하여 타이머를 생성하고 현재 런 루프에 자동 등록 timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { t in self.updateCount() }) timeInterval: 타이머로 지정된 작업의 시간(초)간격. 만약 0.0초를 사용하려 한다면 0.1로 사용하라고 한다. repeats: 타이머의 반복 여부. 무효화될 때까지 지정한 Interval 로 blo..
정확한 위치 정보 이전 글[https://greate-future.tistory.com/89] 에 이어서 ... iOS14부터 정확한 위치정보를 수집할 수 있다. 위치정보 수집승인을 요청하면 아래와 같은 팝업이 발생하는데, 지도가 보이는 View에 “정확한 위치: 켬”이 보인다. 이 부분을 터치하면 끔으로 바뀌게 되는데 지도도 축소되고 내 위치의 범위가 수킬로미터로 늘어나게 된다. 한 눈에 봐도 정확한 위치를 안쓴다고 따악 알려주는구나. 정확한 위치정보를 수집하지 않으면 사용자의 위치를 제대로 가져오기가 힘들다. 만약 앱이 네비게이션같은 기능을 사용해야 하다면 반드시 정확한 위치에 접근 하도록 코드를 수정해야한다. 정확한 위치 정보를 사용하는 앱의 동작을 한번 예시로 보겠다. 네이버 지도앱에서 정확한 위치 권한을 끄고 켰..
위치 정보 가져오기(CoreLocation, CLLocationManager) 위치권한이 필요한 프로젝트를 진행하면서, 계속 검색을 하다가 이제는 필요한 내용을 기록해야 겠다는 생각이 들어서 작성한다. 사용자의 위치권한을 받아야 하는 경우는 많지만 개인적으로 필요한 이유는, Wi-Fi 정보를 읽기 위해서였다. 디바이스가 붙어있는 Wi-Fi 정보를 가져오려했더니 위치정보를 켜야한다나… 이쪽은 또 처음이다 보니 일단은 그런가 보다 하고 시작했다. 1. CoreLocation 위치정보를 가져오기에 앞서 import 해야할 Framework이다. https://developer.apple.com/documentation/corelocation Apple Developer Documentation developer.apple.com coreLocation은 장치의 지리적 위치, 고도, 방향..

728x90