본문 바로가기

iOS/swift18

[Swift] Firestore 데이터는 불러오는데 마커가 사라진다면? (해결 방법 정리) 🧐 문제 상황Firebase Firestore에서 흡연 구역 데이터를 가져와 리스트에 표시하는 기능을 추가했는데, 리스트는 정상적으로 출력되지만 지도에 마커가 사라지는 문제 발생!🔍 증상앱 실행 후 초기 화면에서 마커가 정상적으로 표시됨리스트 화면에서 데이터를 확인 후, 다시 지도로 돌아오면 모든 마커가 사라짐smokingAreas.count를 확인하니 데이터는 정상적으로 있음 (즉, Firestore에서 데이터는 정상적으로 가져옴)하지만 지도에는 마커가 표시되지 않음🏷 원인 분석📌 1. Firestore 데이터는 정상적으로 불러옴먼저 SmokingAreaData.shared.smokingAreas를 출력해보니, Firestore에서 가져온 데이터는 정상적으로 존재함. 즉, 데이터가 사라진 것이 .. 2025. 2. 18.
[Swift] ListView Detail 표시하는 법 안녕하세요 오늘은 리스트뷰를 만들고 있습니다. 문제 상황: 리스트 뷰 - 셀에서 Detail이 나오지 않는 이슈스토리보드에서 설정도 했기 때문에 스토리보드에서는 잘 나오는데 왜 막상 앱을 실행하면 안보이는걸까??? 해결: 문제는 바로 아래와 같은 코드를 기본적으로 삽입해놔서..!// 셀 등록 (스토리보드에서 셀 설정이 안 되었을 경우 대비) tableView.register(UITableViewCell.self, forCellReuseIdentifier: "SmokingAreaCell") 이러면 UITabelViewCell을 사용하기 때문에 기본 스타일이 적용되어스토리보드의 설정대로 안나옴! 코드 삭제로 해결~참고로 테이블 뷰 셀도 아래와 같이 다른 스타일로 설정해놔야함! 2025. 2. 12.
[Swift] MVC 디자인 패턴을 아라보자 MVC는 Model-View-Controller의 약자로, 앱을 세 가지 주요 부분으로 나누는 디자인 패턴Model: 앱의 데이터와 로직을 담당 ( 이 앱의 핵심적인 목적 ! )데이터 저장, 처리, 네트워크 요청 등을 맡고 있음View: 사용자 인터페이스(UI)를 담당 화면에 보여지는 모든 요소들(버튼, 텍스트 등)을 처리함Controller: Model과 View를 연결하는 역할사용자의 입력을 받아 Model을 업데이트하고, 업데이트된 데이터를 View에 반영함즉, Model은 데이터 처리, View는 화면 표시, Controller는 둘을 연결하는 역할을 함 MVC 패턴은 각 역할을 나누어 코드의 유지보수를 쉽게 해줌 요소 역할 비유Model데이터와 로직을 관리레시피: 요리의 재료와 방법을 정리한 책.. 2025. 2. 9.
[iOS] xcode에 firebase 연결하기 안녕하세요? 오늘은 Firebase 연결하는 방법에 대해 포스팅해보겠습니다! 저는 역시나 첫 도전에 헤매서,,,한번 뒤집어 엎고 ㅋ두번째 도전만에 성공을 했답니다🙂‍↕️ 공식 문서 링크를 참조했습니다! 1단계: Firebase 프로젝트 만들기우선 파이어베이스 접속해서 콘솔 > 프로젝트를 만들어주세요. 2단계: Firebase에 앱 등록앱 추가로 이름 / 번들ID / 기타 선택 사항을 입력해주시고요.번들ID는 아래 경로에서 확인 가능!3단계: Firebase 구성 파일 추가폴더 안에 넣어야합니다! 4단계: 앱에 Firebase SDK 추가적용할 프로젝트를 고르고 Add Package 한 후 아래의 목록 중 본인이 원하시는 프로덕을 골라서 타겟 지정해주시면 됩니다 5단계: 앱에서 Firebase 초기화Ap.. 2025. 1. 22.
Xcode boot 에러 해결하기 이 에러는 Xcode 시뮬레이터가 launchd 서비스와 통신하는 데 실패하여 발생한 문제임. 아래 해결 방법을 하나씩 시도해보셈:1. Xcode 및 macOS 재시작Xcode를 완전히 종료하고, macOS를 재부팅한 후 다시 시도.많은 경우 시스템 리소스 문제나 launchd 서비스 초기화 문제가 해결될 수 있음.2. Xcode Derived Data 삭제Xcode의 Derived Data를 삭제하여 빌드 캐시 문제를 해결:rm -rf ~/Library/Developer/Xcode/DerivedData3. Simulator 데이터 초기화Xcode > Window > Devices and Simulators로 이동.문제가 발생한 시뮬레이터를 선택하고 Erase All Content and Settings.. 2024. 11. 30.
[앨런 swift 문법 마스터 스쿨] 변수 상수 조건문 튜플 삼항연산자 반복문 함수 복습 ! 0. 헤헤 여지껏 배운거 한 번 복습할겸직접 작성해보기! 1.- 상수 : 값이 변할 수 없는 데이터 공간 - 변수 : 값이 변할 수 있는 데이터 공간//상수let constantsA = 1//변수var variableA = 1 조건문 - if if a > 5 { pritn("5보다 큽니다.")}else if a > 3{ print("3보다 큽니다.")}else { print("3보다 작습니다.")} - switchswitch age {case 1...10: print("아가")case 11...20: print("청소년")default: print("어른")} let 바인딩을 통해 조건 사용 가능switch num{case let x where x % 2 == 0: print("짝수")default: p.. 2024. 7. 14.
[앨런 swift 문법 마스터 스쿨] 연습 문제 | 배운 문법 사용해보기 문제 : 값을 넣으면 소수인지 아닌지 판별하는 함수를 만들어라! 내 코드func primeNumber(_ num: Int) -> String{ var count = 0; for i in 1...num{ if (num % i) == 0{ count += 1 }else { continue } } if count >= 3{ return "소수가 아닙니다." }else{ return "소수입니다." }}primeNumber(97) 개선 코드func primeNumber(num: Int){ for i in 2.. 개선 코드가 더 나은 이유 : 내 원래 코드의 경우 약수.. 2024. 7. 4.
[앨런 swift 문법 마스터 스쿨] 함수 함수에서 정의한 파라미터는 상수로 정의되었기 때문에 변경 불가능, 만약 값을 변경하고 싶다면 새로운 변수에 할당해서 사용하기func someAdd(a: Int) - >Int{ //let a: Int 로 선언된 것임 // a += 1 -> 불가능 //이런식으로 변경 가능 var b = a b += a return a}  - return 키워드의 역할 - 1) 리턴타입이 있는 함수의 경우(아웃풋이 있는 경우):      리턴 키워드 다음의 표현식을 평가한 다음에 그 결과를 리턴하면서 함수를 벗어남 - 2) 리턴타입이 없는 함수의 경우(아웃풋이 없는 경우):      함수의 실행을 중지하고 함수를 벗어남 ⭐️ continue: 반복문을 다음 싸이클로 보냄 다음 싸.. 2024. 7. 1.
[앨런 swift 문법 마스터 스쿨] 변수와 상수 ~ 반복문 [앨런 swift 문법 마스터 스쿨] 변수와 상수 ~ 반복문 8강 변수와 상수 - 변수 선언 시 쉼표 사용 가능var a = 1, b = 2, c= 3- 변수 print 시 : \(변수)- 변수 이름은 소문자로 시작 (숫자, 대문자 금지), camel case - 변수 : var (mutabel)- 상수 : const, let (immutable) 10강 타입 주석 / 타입 추론 / 타입 안정성 / 타입 변환타입 주석 : 어떤 타입인지 정확히 명시함타입 추론 : 값을 보고, 어떤 타입인지를 컴파일러가 추론해서 사용함var name = "홍길동"type(of: name) //->어떤 타입인지 알려줌현재 선언하는 것이 없다면 반드시 타입을 지정해주어야한다.만약 값을 선업했다면 타입이 정해지는 것이기 때문에 .. 2024. 6. 29.