묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
init 함수가 없는 구조체에 인자가 들어갈 수 있는 이유가 궁금합니다.
"ProfileView(viewModel: ProfileViewModel(user: user))"ProfileView에는 init함수가 존재하지 않지만viewModel을 인자로 받아서 생성자를 호출할 수 있는 이유가 무엇인지 궁금합니다.viewModel에 @state를 사용했기 때문일까요?"구조체에 @state변수가 있다면 해당 구조체를 새로 만들 때 인자로 부여할 수 있다."이렇게 이해하면 될까요?? @state에 대해 설명부탁드립니다
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
NewPostViewModel.swift 생성후 오류 질문
NewPostViewModel.swift 파일에서 @Observable에 Unknown attribute 'Observable' 이런 오류가 발생합니다...찾아보니 ios버전이 17이하버전에서는 Observable을 사용할 수 없다고하는데, 제가 지금 16.4버전을 사용중에 있습니다. 버전을 업그레이드하려는데, 이 부분도 해결이 되지 않아서 그러는데, 어떻게 해야할까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
강의를 들으면서 앱을 만들어보고 있습니다
chat gpt API를 활용해서 간단한 앱을 만들어보려고 하는데 API를 어떻게 써야할지 감이 잘 오지 않습니다.혹시 괜찮으시다면 관련된 자료나 예시를 알 수 있을까요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
섹션2.끝말잇기앱 질문 - textfield 입력 변수 수정 방법
끝말잇기 앱을 만들다가 궁금증이 생겼습니다.textfield 로 입력 받은 문자열을 수정해서 사용하고 싶을 때(예: 사용자가 소문자로 입력한 영문자를 모두 대문자로 바꾸고 싶을 때)어떻게 할 수 있나요? 입력받은 값을 저장한 변수를 건드리면 에러가 뜹니다. 즉,nextWord = nextWord + "수정 더함"해도 에러가 나고다른 변수에 대입한 후 그 변수를 바꾸려 해도 (nextWord2 = nextWord + "수정") 에러가 납니다.
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
선생님 12강 mvc 코드 실습 강의 내용 영상이 짤린건가요?
시작 부분이 뭔가 짤린 거 같습니다..?? 흐름을 따라갈 수 없어요 ㅜㅠㅜ
-
미해결[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
페이지 이동에 관해 질문이 있습니다 !
안녕하세요 강의 너무 잘 듣고 있습니다 ! 예전에 앱 만들다가 궁금했던 것이 두가지 정도 있어 여쭤보려고 합니다. 페이지 페이지 가 연결되는 느낌이 아니라 아예 다른 페이지로 넘어가고 싶은데,Tab, NavigationLink 말고 다른 방법이 있을까요? 보통 이럴 때는 그냥 NavigationLink 로 이동시키고 hidden을 false를 주는건가요? 그리고 페이지 내 컴포넌트 안에 있는 컴포넌트에서 버튼을 눌렀을 때 Sheet이 올라오게 하고 싶은데 그럴 때 Sheet의 전체 크기가 전체 화면 기준이 아니라 그 컴포넌트가 기준이 되어 작게 나타났을 때가 있었습니다.이런 경우에는 어떻게 해결하나요? 답변해주시면 감사하겠습니다.
-
미해결[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기
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 중급 - Core Data와 SwiftData로 앱 완성하기
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 중급 - Core Data와 SwiftData로 앱 완성하기
Local Notification 강의 편집오류 있어요
17:29 부분에서 변수명 scenePhase 타이핑중 sce 까지만 타이핑 하고 바로 화면 이동 됩니다.컷 편집 잘못된거 같아요. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기
강의중 코드폴딩 단축키 (커맨트+옵션+왼쪽방향키)
강의 중 함수내 코드폴딩 단축키는커맨드 + 옵션 + 왼쪽 방향키 입니다.Sorted,Filter,Map 강의 8:14 에커맨드 + 쉬프트 + 왼쪽 방향키로설명 되어 있어서 있어서 혼동 했네요. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
scrollTransition 에서 phase 값을 찍어보고 싶습니다.
안녕하세요..scrollTransition 에서phase 값을 실시간으로 확인해 보고 싶습니다.swiftUI 에서 print 를 통해 콘솔에 디버깅 하고싶은데 어떻게 하면 좋을까요 ? 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
갤러리에서 슬라이더 변경시 gridSwitch 가 두번 실행됩니다.
안녕하세요. 이전 문의에 대한 답변 잘 확인했습니다.답변 감사합니다. //GridLayout @Published var gridLayout: [GridItem] = [GridItem(.flexible())] @Published var gridColumn: Double = 4.0 //init init() { gridSwitch() } //func func gridSwitch() { print("gridSwitch") gridLayout = Array(repeating: GridItem(.flexible()), count: Int(gridColumn)) } 방금 실습 프로젝트 진도 마무리하고 grid 쪽 다시 보고 있는데요gridSwitch() 함수에 print 넣고 체크해 보니슬라이더 움직이면 위에 함수가 2번씩 호출됩니다. gridLayout 과 gridColumn 2개 값이 @ObservedObject되어 있어서 각각 변경이 되서 총 2번 호출되는건지요 ? 차후 저런 변수가 많이 들어가 있는 함수는갯수만큼 호출될꺼 같은데. 어떻게 대응해야 하는지효율적인 방식이 있는지 조언 부탁드려도 될까요 ? 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
미해결[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
유튜브 영상 플레이시 워닝 이슈 문의
시뮬레이터나 디바이스에서YoutubeView 에 로딩된 유튜브화면플레이버튼 누르면 아래처럼 워닝이 쭉 뜹니다.어떻게 해결 해야 할까요 ?(영상이 플레이는 되는데, 로그에 저렇게 나오네요) Snapshotting a view (0x106f3acb0, _UIButtonBarStackView) that is not in a visible window requires afterScreenUpdates:YES.https://www.youtube.com/embed/IRRCX1ZQdVYError acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)" UserInfo={NSLocalizedFailureReason=(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)}>0x178060270 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'WebKit Media Playback' for process with PID=10,676, error: Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)" UserInfo={NSLocalizedFailureReason=(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)}Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)" UserInfo={NSLocalizedFailureReason=(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)}>0x1780603b0 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'WebKit Media Playback' for process with PID=10,512, error: Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)" UserInfo={NSLocalizedFailureReason=(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)}Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)" UserInfo={NSLocalizedFailureReason=(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)}>0x178060cc0 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'WebKit Media Playback' for process with PID=10,678, error: Error Domain=RBSServiceErrorDomain Code=1 "(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)" UserInfo={NSLocalizedFailureReason=(originator doesn't have entitlement com.apple.runningboard.assertions.webkit AND originator doesn't have entitlement com.apple.multitasking.systemappassertions)}Visual isTranslatable: NO; reason: observation failure: noObservationsRequest to remove background on an unsupported device. Error Domain=com.apple.VisionKit.RemoveBackground Code=-8 "(null)"Error generating mask only remove background image for analysis: <VKCImageAnalysisResult: 0x104b69d80> - Error Domain=com.apple.VisionKit.RemoveBackground Code=-8 "(null)"[MADService] Client XPC connection invalidatedLaunchServices: disconnect event interruption received for service com.apple.lsd.open 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
해결됨[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
ListBasic 강의 문의 - 딸기 id 오류 및 move 오작동
struct ListBasic: View { //property @State var fruits:[String] = [ "사과","오렌지","바나나","수박" ] @State var meats:[String] = [ "소고기","돼지고기","닭고기" ] var body: some View { NavigationView { List { Section { //content ForEach(fruits, id: \.self) { fruit in Text(fruit) .font(.body) .foregroundColor(.white) .padding(.vertical) } .onDelete(perform: delete) .onMove(perform: move) .listRowBackground(Color.blue) } header: { Text("과일종류") .font(.headline) .foregroundColor(.brown) } // : Section Section { ForEach(meats, id: \.self) { meat in Text(meat) .font(.body) } } header: { Text("고기종류") .font(.headline) .foregroundColor(.red) } // : Section }//: List .navigationTitle("우리동네 마트") .navigationBarItems(leading: EditButton(), trailing: addButton) }// : NavigationView } // Fucntion func delete(indexSet: IndexSet) { fruits.remove(atOffsets: indexSet) } func move(indices:IndexSet , newOffSet: Int) { fruits.move(fromOffsets: indices, toOffset: newOffSet) } var addButton: some View { Button { fruits.append("딸기") } label: { Text("Add") } } } 강의 내용에 따라 작성후 프리뷰 플레이에서 확인해 보니에디트 모드에서 과일을 move 해봤는데 버벅 거리면서이동하려던 과일이 원래 위치로 돌아갑니다. 증상 분석 프리뷰에서 테스트프리뷰 플레이에서 move 시 원래 위치로 돌아감 2. 디바이스에서 테스트move 정상 작동딸기 추가 시 아래 메시지 노출ForEach<Array<String>, String, ModifiedContent<Text, _PaddingLayout>>: the ID 딸기 occurs multiple times within the collection, this will give undefined results!CADisplayTimingsControl too many reasons.CADisplayTimingsControl too many reasons.CADisplayTimingsControl too many reasons. 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
해결됨[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
LazyGrid 강의 문의 - 데이터가 30개 인데 로우가 3줄이면 27개만 노출됨
// 2. LazyHGrid struct LazyGridBasic2: View { // LazyHGrid // title 을 1000 개 변수로 생성 // ["목록 1","목록 2", ... "목록 30"] [String] let title: [String] = Array(1...30).map {"목록 \($0)"} // 화면 그리드형식으로 채워줌 let rows: [GridItem] = [ GridItem(.flexible(maximum: 80)), GridItem(.flexible(maximum: 80)), GridItem(.flexible(maximum: 80)) ] var body: some View { // 2 - LazyHGrid // ScrollView horizontal ScrollView(.horizontal) { LazyHGrid(rows: rows, spacing: 20, content: { ForEach(title, id:\.self) { item in VStack { Capsule() .fill(Color.yellow) .frame(height: 30) Text(item) .foregroundColor(Color.blue) } } }) } } }30개 LazyHGrid 사용시한줄일때는 30개가 노출되는데3줄일때는 27개만 노출 됩니다. 왜 이럴까요 ? 강의 관련된 질문은 언제나 환영입니다 😄코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)마크다운을 사용해서 편리하게 글을 작성하세요먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
-
해결됨[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
ScrollView에서 질문 있습니다.
강의자료에 있는 파일에는 에러가 발생하지 않는데 새로 만든 파일에선 ForEach 구문에 'Argument passed to call that takes no arguments' 라고 뜨네요...해결 방법을 모르겠어서 질문 남깁니다.
-
미해결SwiftUI - iOS14 퍼펙트 가이드
커스텀 팝업 사용하는 방법
안녕하세요.먼저 좋은 강의 만들어주셔서 감사합니다. 실제 프로젝트에 SWIFTUI 를 적용하려다보니 커스텀팝업(UIKIT으로는 투명배경 ViewController)를 어떤식으로 적용 할 수 있는건지 잘모르겠습니다.혹시 사용하고 있는 방법이 있으시면 알려주실 수 있을까요?
-
해결됨[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기
코어데이터에 중복값 입력 방지
강사님, 안녕하세요. 강의를 보면서 코드를 작성하던 중에 코어 데이터에서 값을 입력 할 때에 중복값이 계속 들어가는것을 확인하고 이것을 막고자 합니다. 어떤 방법으로 해야 하는지요? 아니면 제가 강의 중에서 놓친 부분이 있을 수도 있으니 해당 영상의 위치를 알려주시면 살펴보겠습니다.감사합니다.
-
해결됨[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
MVVM에서 처음
import SwiftUI @main struct mountainApp: App { var body: some Scene { WindowGroup { AuthView() .environmentObject(AuthViewModel()) } } } 1번 경우에는 @StateObject 없이 바로 AuthViewModel 객체로 environmentObject에 넣어주면 문제가 발생하나요?
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
강의 완강하고 앱을 만들어봤어요!
안녕하세요 애그마 쌤 !얼마전 강의 완강하고 4일 동안 틈틈히 개발해서 간단한 앱을 만들어봤습니다,, ㅋㅋㅋ!!자랑하고 싶은데.. 메일 주소가 없어서 일단 여기에 올려요 ㅋㅋㅋ ㅠ직접 만든 첫 앱이라 기분이 좋네요 ㅋㅋ 심사 대처까지 강의에서 알려주셔서 한 번만 리젝당하고 빠르게 통과됐어요 ㅎㅎ좋은 강의 제공해주셔서 감사합니다!!