묻고 답해요
135만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Swift 언어로 배우는 iOS 벽돌깨기 게임
class 문법 질문입니다
class Test{ var age = 100 var name = "배트맨" func simpleFunction(){ print("안녕하세요 저는 \(name)입니다. 저는 \(age)살임") } init(){ simpleFunction() print("부모 클래스 init") } } class Test1: Test{ override func simpleFunction(){ print("자식 클래스") } } let test1 = Test1() test1.simpleFunction()자식 클래스 부모 클래스 init 자식 클래스 위와 같은 상황입니다 일단 Test1에 init 메서드가 없으니 컴파일러가 자동으로 init(){ super.init() }을 생성하겠죠 그럼 부모 클래스의 init을 호출할 거고 부모 클래스의 init에는 simpleFunction 메서드 호출 구문이 있으니 호출하겠죠 근데 분명 부모 클래스 내에서 호출했는데 왜 재정의된 simpleFunction 메서드의 내용이 호출됐는지 이해가 되질 않습니다 구글링이랑 gpt 이용해서 알아 보니 재정이된 메서드는 부모 클래스에서 호출하더라도 재정의된 내용이 호출된다는데 이 말대로라면super.simpleFunction를 이용해서 메서드를 호출한다고 하더라도 재정의 됐으니 재정의된 내용이 출력되어야 할텐데 super를 이용한 호출은 또 재정의 되기 전 내용이 출력됩니다. 호출 기준이 너무 헷갈리는데 이 부분에 대해서 알려주시면 감사하겠습니다!
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
질문합니다. 섹션 4 - 10 [투두 삭제기능 구현하기(onDelete)]
완전 초보이다보니 궁금증이 생겨서요.투두 타이틀 반복문 쓸땐 List { } 안에서 todoList 의 타이틀들을 반복할땐 Foreach 쓰시고, .onDelete에선 for _ in을 쓰셨는데 서로 적용할 조건이 다른건가요???
-
미해결iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션큐의 이해
수업자료 markup 에 대해 궁금합니다!
좀 샛길로 샌거 같지만... 이런 질문에도 답변해주신다면 너무 감사합니다ㅠㅠ//: 로 마크업 다시는거 혹시 수정은 어떻게 하는지 알 수 있을까요..? 수업자료로 코드 주신걸 보다가 궁금해졌는데요. 한줄로 마크업 다는거는 //: 이렇게 하니까 달아지던데, 저는 xcode에서 바로 적용이 되더라고요. https://developer.apple.com/library/archive/documentation/Xcode/Reference/xcode_markup_formatting_ref/AddingMarkup.html#//apple_ref/doc/uid/TP40016497-CH100-SW1이 문서 보니까 markup in source editor 랑 rendered documentation mode 에서 다르게 보여지는거 같은데...이건또 어떻게 설정하는지도 모르겠고요ㅠㅠㅠ
-
해결됨SwiftUI의 Property Wrapper(@State, @Binding...)
@State 관련 질문입니다
//정상 작동 하지 않는 코드 import SwiftUI struct MiniView: View { @State var numb: Int var body: some View { Text("\(numb)") .padding() } } struct ContentView: View { @State var number: Int = 0 var body: some View { VStack { Text("\(number)") } Button(action: { number += 1 }, label: { number%2 == 0 ? Text("짝") : Text("홀") }) MiniView(numb: number) } } #Preview { ContentView() }위의 코드는 작동하지 않습니다. 하지만 여기서MiniView 아래 numb 변수의 @State 를 지워주면정상 작동합니다. (아래코드) 이유가 뭘까요.. ㅜㅠ ?? //정상 작동 하는 코드 import SwiftUI struct MiniView: View { var numb: Int var body: some View { Text("\(numb)") .padding() } } struct ContentView: View { @State var number: Int = 0 var body: some View { VStack { Text("\(number)") } Button(action: { number += 1 }, label: { number%2 == 0 ? Text("짝") : Text("홀") }) MiniView(numb: number) } } #Preview { ContentView() }
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
75강 api 추출할때 질문있습니다 !
jazz라는 분야를 얻기위해서 api를 호출하는건데 , 계속 실행해보면 현재 term=" " 에 입력을 하게 되면 , jazz라는 분야가 아닌 아티스트 이름으로 결과값이 나오고 있습니다. 1~2시간동안 이 문제를 해결하려고 노력했는데 term은 필수적인 사항이라서 뺄수도 없고 , term에 어떤 값을 넣어도 동일한 아티스트 이름이 나와서 강의를 따라갈 수 없습니다 ㅠ
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
테이블 뷰 관련 질문있습니다!
안녕하세요. 앨런님.테이블 뷰를 사용하던 중 고민이있어 질문드립니다.현재 테이블 뷰의 높이를 정적으로 선언하는 방식이 아닌,테이블 뷰의 셀의 수와 높이를 계산하여 동적으로 내부 컨텐츠 사이즈에 따른 테이블 뷰의 높이를 설정하고 싶습니다.우선 저의 코드에서는 뷰의 계층 구조는 최상위부터스크롤뷰 -> 스택뷰 -> 테이블 뷰로 스크롤이 가능하게 구성을 했습니다.스택뷰의 높이를 내부 컨텐츠 크기에 자동으로 맞추고, 스택뷰의 바텀 제약에 맞춰 스크롤 뷰의 사이즈가 정해지는 방식입니다.더 좋은 방식이 있다면 조언 부탁드립니다. 감사합니다추가.테이블 뷰 셀의 수에 맞춰서 테이블 뷰의 높이를 지정하는 것 까지 해결했습니다.하지만 테이블 뷰 셀의 크기를 UITableView.automaticDimension로 했을 경우 셀의 크기가 잘리는 현상이 발생합니다.
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
섹션4-4 'NavigationStack' 오류가 납니다
'NavigationStack' is only available in iOS 16.0 or newer라고 뜹니다
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data
5월 업데이트 예정이었던 , iOS17 컨텐츠 SwifData 업데이트 언제 되나요 ?
SwiftData - iOS 17 (24년 5월 중 업데이트 예정)
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용앱 64강에서 초기 설정에 관한 질문입니다.
안녕하세요 앨런님제가 이전강의를 볼때부터 질문드리고 싶었는데요 앱 설정에서 아이패드는 체크를 안하고 싶은데요 새로 업데이트된 xcode에서 그것이 안되는데 어떻게 하면 좋나요?
-
미해결[Lv.1] 누구나 할 수 있는 - SwiftUI Basic with iOS 17
GalleryView 작성시, @State? @Bidnable? 의 차이점이 뭔지 궁금합니다.
IOS17로 업데이트 됨에 따라,@Observable 매크로를 활용하여 ViewModel을 활용하면,상태 변화를 감지하여 'View에서 자동적으로 업데이트 된다.'라고 알고 있습니다. @Observable 매크로를 사용해서 코드를 업데이트하던 중 궁금증이 생겨 질문을 남겨봅니다. ContentView, VideoView에서 AnimalViewModel의 인스턴스를 갖고 있을 때, var로 정의했을 때와 let으로 정의를 했을 때의 차이점이 있을까요?struct ContentView: View { // let이나 var이나 상관없는가? let vm: AnimalViewModel var body: some View { NavigationStack{ List{ // 1. Cover Image - hero Image CoverImageView(vm: vm)관련내용을 공부하다보니, 해당 링크에서https://www.donnywals.com/comparing-observable-to-observableobjects/"Defining an @Observable as a let property" 부분에HomeView에서 ViewModel에 @State 프로퍼티 래퍼를 사용한 후 let을 사용한다? 라는 내용을 본적이 있습니다. GalleryView에서 @State 프로퍼티 래퍼와 @Bindable 프로퍼티 래퍼를 사용했을 때의 차이점이 뭘까요 ㅠㅠ . 우선, @State로 했을 때는 변화의 감지를 HomeView에서도 GalleryView에서도 잘 작동하여, 슬라이더를 변화시켰을 때 Grid의 개수가 바뀝니다. 하지만 @Bindable 프로퍼티 래퍼를 사용했을 때에는 GalleryView에서만 슬라이더 변화를 감지 하고, HomeView에서는 변화를 감지하지 못하는 상황이 벌어집니다. @State var vm: AnimalViewModel@Bindable var vm: AnimalViewModelstruct GallaryView: View { @State var vm: AnimalViewModel var body: some View { NavigationStack{ ScrollView(.vertical, showsIndicators: false){ VStack(spacing: 30){ // 1. Image Image(vm.selectedAnimal) .resizable() .scaledToFill() .frame(width: 250, height: 250) .clipShape(Circle()) .overlay(Circle().stroke(Color.accentColor, lineWidth: 5)) // 2. Slider Slider(value: $vm.gridColumn, in: 2...4, step: 1) .padding(0) .onChange(of: vm.gridColumn) { withAnimation(Animation.easeInOut(duration: 1.0)){ vm.gridSwitch() } } // 3. Grid LazyVGrid(columns: vm.gridLayout, spacing: 20){ ForEach(vm.animals){ animal in Image(animal.image) .resizable() .scaledToFill() .frame(width: 80, height: 80) .clipShape(Circle()) .overlay(Circle().stroke(Color.white, lineWidth: 1)) .onTapGesture { withAnimation(Animation.spring()){ vm.selectedAnimal = animal.image } } } } } //:VSTACK .padding() } //:SCROLL .navigationTitle("갤러리") .navigationBarTitleDisplayMode(.inline) } //:NAVIGATION } } 추가로,@Observable 매크로를 이용한 예시가 잘 정리되어 있는 문서들이 있을까요?? 제가 잘 이해를 못한 건지, 이 부분이 너무 어렵네요. 감사합니다 😀
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
강의를 들으면서 앱을 만들어보고 있습니다
chat gpt API를 활용해서 간단한 앱을 만들어보려고 하는데 API를 어떻게 써야할지 감이 잘 오지 않습니다.혹시 괜찮으시다면 관련된 자료나 예시를 알 수 있을까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
섹션2.끝말잇기앱 질문 - textfield 입력 변수 수정 방법
끝말잇기 앱을 만들다가 궁금증이 생겼습니다.textfield 로 입력 받은 문자열을 수정해서 사용하고 싶을 때(예: 사용자가 소문자로 입력한 영문자를 모두 대문자로 바꾸고 싶을 때)어떻게 할 수 있나요? 입력받은 값을 저장한 변수를 건드리면 에러가 뜹니다. 즉,nextWord = nextWord + "수정 더함"해도 에러가 나고다른 변수에 대입한 후 그 변수를 바꾸려 해도 (nextWord2 = nextWord + "수정") 에러가 납니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용앱 59강에 관한 질문입니다
앨런님,안녕하세요 제가 코드로 설명해주신 것과 스토리보드로 한 것을 비교를 해보니까요 DetailViewController에서 구현된것에서 코드에서 말한 것과 다르게 numberofline=0이것이 없어서 그런지 여러줄로 표현이 안되서요 그래서 제가 좀더 스토리보드쪽에 보니까 numberofline이 있더라구요 그것에 0으로 해도 description에서 여러줄로 표현이 안되는데요 어떻게 하면 스토리보드로 구현한 Detailviewcontroller에서 description을 여러줄로 표현할수 있을까요?
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
활용-3 앱 /코드로 UI 짜기 영상에서 문의 드립니다.
영상 11분 20초 경 lazy var를 이용해 view.addSubview(emailTextFieldView)를 사용할 수 있다고 하셨는데 이 부분이 UIViewController의 view를 카리키는것이 아닌 클로저 내부에서 이미 선언한 let view = UIView()의 변수 아닌가요? 해당 코드가 왜 정상적으로 동작하는지 영상이 잘못된거 같은데요. 제가 잘못 이해하고 있다면 다시 설명 부탁드립니다.
-
미해결[Lv.1] 누구나 할 수 있는 - SwiftUI Basic with iOS 17
페이지 이동에 관해 질문이 있습니다 !
안녕하세요 강의 너무 잘 듣고 있습니다 ! 예전에 앱 만들다가 궁금했던 것이 두가지 정도 있어 여쭤보려고 합니다. 페이지 페이지 가 연결되는 느낌이 아니라 아예 다른 페이지로 넘어가고 싶은데,Tab, NavigationLink 말고 다른 방법이 있을까요? 보통 이럴 때는 그냥 NavigationLink 로 이동시키고 hidden을 false를 주는건가요? 그리고 페이지 내 컴포넌트 안에 있는 컴포넌트에서 버튼을 눌렀을 때 Sheet이 올라오게 하고 싶은데 그럴 때 Sheet의 전체 크기가 전체 화면 기준이 아니라 그 컴포넌트가 기준이 되어 작게 나타났을 때가 있었습니다.이런 경우에는 어떻게 해결하나요? 답변해주시면 감사하겠습니다.
-
미해결Swift로 iOS 2D 아케이드 게임 만들기
스코어 만들기 강의의 info.plist 파일이 없어요
그전까지 안보였던 파일들 같은데 어느 순간 flappybirdlike 폴더도 생기고 product 폴더도 생겼네요 ㅠ 저건 어떻게 생성 하는 거죠 ??
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data
Spacer() 를 넣으니 예제처럼 SafeArea 확보가 안됩니다.
struct MatchedGemomatryEffectInter: View { @State private var isToogle: Bool = false var body: some View { VStack { RoundedRectangle(cornerRadius: 20) .frame(width: 100, height: 100) .offset(y: isToogle ? UIScreen.main.bounds.height * 0.7 : 0) Spacer() } .frame(maxWidth: .infinity,maxHeight: .infinity) .background(.green) .onTapGesture { withAnimation(.spring()) { isToogle.toggle() } } } }안녕하세요.동일하게 작성했는데 저는 상하 safeArea 가 채워진체나옵니다. 타겟은 iOS15 입니다. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data
Local Notification 예제 문의
예제를 전부 구현한 상태에서아래 코드를 통해서 뱃지 숫자를 1씩 올려서 보내게되어 있습니다. func scheduleNotification() { //notification 내용 설정 let content = UNMutableNotificationContent() content.title = "Local Notification 테스트 1" content.subtitle = "앱 알람 테스트 중입니다." content.sound = .default content.badge = NSNumber(value: UIApplication.shared.applicationIconBadgeNumber + 1)하지만 아래 코드에 의해 뱃지가 0 으로 리셋되기에항상 1만 발송하게 됩니다..onChange(of: scenePhase) { newValue in if newValue == .active { UIApplication.shared.applicationIconBadgeNumber = 0 } }추가적으로 5초 딜레이로 설정후 로컬노티 여러번 누른후에앱을 종료하고 기다리면 노티가 여러개 오지만모두 뱃지 1로 오기 때문에 앱아이콘에 뱃지는 1로 계속옵니다. 실무에서 로컬노티에 카운터를 현재 뱃지 카운터에 + 1 해서보내는건 실효성이 없어보이는데요. 따로 해결할 방법이 있을까요 ? 조언 부탁드립니다. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data
Local Notification 강의 편집오류 있어요
17:29 부분에서 변수명 scenePhase 타이핑중 sce 까지만 타이핑 하고 바로 화면 이동 됩니다.컷 편집 잘못된거 같아요. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.2] 레벨업 - SwiftUI intermediate with Core Data
강의중 코드폴딩 단축키 (커맨트+옵션+왼쪽방향키)
강의 중 함수내 코드폴딩 단축키는커맨드 + 옵션 + 왼쪽 방향키 입니다.Sorted,Filter,Map 강의 8:14 에커맨드 + 쉬프트 + 왼쪽 방향키로설명 되어 있어서 있어서 혼동 했네요. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요