55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨야곰의 iOS 프로그래밍
5번 프로젝트 - 나머지 화면 구성하기
두번째 View Controller에서 가로모드 시 깨짐 방지를 위한 Image View의 Priority를 750으로 낮추는 부분에 대한 질문입니다. 제가 따라하기로는 750으로 낮춰도 깨져서 이리저리 해보다가 749로 내리니 잘 동작되었습니다. 실습을 잘못했을까요? 어떻게 해석해야하나요?
- 해결됨야곰의 iOS 프로그래밍
웹브라우저 - 코드로 기능 구현하기
Thread 1: "-[UIWebView setNavigationDelegate:]: unrecognized selector sent to instance 0x7fcdd861ecf0" 2021-06-03 14:56:51.427325+0900 MyWebBrowser[70067:4962002] -[UIWebView setNavigationDelegate:]: unrecognized selector sent to instance 0x7fcdd861ecf0 와 같은 에러가 발생하는 것 같은데 어디가 문제인지 확인을 못하는 중입니다. View Controller 코드에서 self.webView.navigationDelegate = self 를 주석처리하면 오류없이 실행되긴 합니다. 버전 문제인 것 같기도 한데,, 시작부터 쉽지 않네요;;
- 미해결야곰의 iOS 프로그래밍
어시스던트에 매뉴얼이 없습니다.
xcode 12.4 버전이에요, 스토리보트에 코드 연결하는 부분에서 매뉴얼이 없는데 어디서 스토리보드를 열면 되나요?
- 미해결야곰의 iOS 프로그래밍
제공된 코드블럭 파일
제공된 코드블럭 파일이 6-3-8까지만 작성이 되어있고 6-3-9부터는 없어요
- 미해결야곰의 iOS 프로그래밍
5번째 프로젝트 질문입니다
5번째 프로젝트에서요 다른 코드는 괜찮은데, mainViewController에서 오류가 있습니다. 마지막 부분 decode인데요. "Cannot invoke 'decode' with an argument list of type '(@escaping (main.ButtonTag) -> AnimalInfo?, from: Data)'" 이러한 말이 뜹니다. 어떻게 해결해야하나요? // main.swift// What's This?//// Created by Tae-hee on 2020-05-11.// Copyright © 2020 Tae-hee. All rights reserved.//import UIKitclass main: UIViewController { //MARK: - Nested Type private enum ButtonTag: Int { case dog = 101 case cat, rabbit, hedgehog } // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destination. // Pass the selected object to the new view controller. guard let button: UIButton = sender as? UIButton else { return } guard let nextViewController: game = segue.destination as? game else {return} guard let tag: ButtonTag = ButtonTag(rawValue: button.tag) else { print("버트의 태그를 enum 변경불가") return } guard let info: AnimalInfo = self.AnimalInfo(for: tag) else { return } nextViewController.AnimalInfo = info } //MARK: Privates private func AnimalInfo(for tag: ButtonTag) -> AnimalInfo? { let assetName: String switch tag { case ButtonTag.dog: assetName = "Dog" case ButtonTag.cat: assetName = "Cat" case ButtonTag.rabbit: assetName = "Rabbit" case ButtonTag.hedgehog: assetName = "Hedgehog" } return self.decodeAnimalInfo(from: assetName) } private func decodeAnimalInfo(from assetName: String) -> AnimalInfo? { guard let asset: NSDataAsset = NSDataAsset(name: assetName) else { print("에셋 로드 실패") return nil } do { let decoder: PropertyListDecoder = PropertyListDecoder() return try decoder.decode(AnimalInfo.self, from: asset.data) } catch { print("데이터 디코딩 실패") print(error.localizedDescription) return nil } }}
- 미해결야곰의 iOS 프로그래밍
섹션1 웹브라우저
강의에서는 오른쪽 맨 하단 key commands에 아이템들이 뜨는데요 제 x-code에서는 key commands 아래가 빈칸이고 아무것도 안떠서요 아이템들은 어떻게 띄우나요?
- 미해결야곰의 iOS 프로그래밍
1번 프로젝트: 웹 브라우저 관련 질문 드립니다!
먼저 야곰님 수업 정말 잘 듣고 있습니다 :) 야곰님 iOS 프로그래밍 강좌를 들으면서 따라하는 식으로 진행하다가 뒤로 갈수록 따라가는 것이 버거워져, 정리할 겸 1장으로 돌아와 복습을 하고 있었습니다. 한 2주 정도 전에 1장을 따라할 때에는 오류 없이 잘 실행되던 코드가 AppDelegate.swift 파일에서 오류가 납니다. 오류의 내용으로는 아래와 같이 발생합니다. Thread 1: Exception: "Could not instantiate class named WKWebView because no class named WKWebView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)" 그런데 WKWebView는 ViewController에서 extension을 통해 상속받아주었는데 왜 AppDelegate 파일에서 저런 오류가 나는 지 모르겠습니다..
- 미해결야곰의 iOS 프로그래밍
Xcode 11을 사용중이면, 해당 강의와 다른 부분이 많네요ㅠㅠ
예를들어 프로젝트 생성시 SwiftUI를 선택하면, ViewController.swift 파일이 생성되지 않더라구요. 또한 다른 부분도 많이 다르구요.. 이런 경우 xcode를 다운그레이드하면 되나요? 구버전의 ViewController이, 11버전에서는 어떤 것으로 바뀌었는지에 대한 정보가 있으면 좋겠네요..
- 미해결야곰의 iOS 프로그래밍
"NSURLErrorDomain error -999." 오류 문의
예제 실행 후 뒤로가기, 새로고침, 앞으로 버튼 클릭 시 "NSURLErrorDomain error -999." 오류 팝업이 출력됩니다. 페이지 로드가 완료되지 않은 상태에서 작업 요청 시 발생하는 오류라고 하는 것 같은데요. 이 오류가 발생하지 않도록 하려면 어떻게 해야 하나요? xcode 11.3 사용 중입니다 --- 추가로, 예제 실행 시 마지막 URL 정보가 유지되지 않는 것 같습니다. applicationWillResignActive 가 호출되지 않고 있는 건 아닌가 의심되는데요. 혹시 applicationWillResignActive 호출을 위해 따로 설정해야 하는 것이 있나요?
- 미해결야곰의 iOS 프로그래밍
Thread 1: signal SIGABRT 가 자꾸 뜨네요 천천히 차근차근 했는데...
뷰 컨트롤에서 import UIKit import WebKit class ViewController: UIViewController { // MARK: - Preperties // MARK: IBOutlets @IBOutlet var webView: WKWebView! @IBOutlet var activityIndicator: UIActivityIndicatorView! // MRAK: - Methods // MARK: Life Cycle override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.webView.navigationDelegate = self } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let firstPageURL: URL? if let lastURL: URL = UserDefaults.standard.url(forKey: lastPageURLDefualtkey) { firstPageURL = lastURL } else { firstPageURL = URL(string: "https://www.google.com") } guard let pageURL: URL = firstPageURL else { return } let urlRequest: URLRequest = URLRequest(url: pageURL) self.webView.load(urlRequest) } // MARK: IBAction @IBAction func goBeck(_ sender: UIBarButtonItem) { self.webView.goBack() } @IBAction func goForward(_ sender: UIBarButtonItem) { self.webView.goForward() } @IBAction func refresh(_ sender: UIBarButtonItem) { self.webView.reload() } //MARK: Custom Methods func showNetworkingIndicators() { self.activityIndicator.isHidden = false self.activityIndicator.startAnimating() UIApplication.shared.isNetworkActivityIndicatorVisible = true } func hideNetworkingIndicators() { self.activityIndicator.isHidden = true self.activityIndicator.stopAnimating() UIApplication.shared.isNetworkActivityIndicatorVisible = false } } extension ViewController: WKNavigationDelegate { //MARK: WKNavigationDelegate func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { print("did finish navigation") if let appDelegate: AppDelegate = UIApplication.shared.delegate as? AppDelegate { appDelegate.lastPageURL = webView.url } webView.evaluateJavaScript("document.title") { (value: Any?, error: Error?) in if let error: Error = error { print(error.localizedDescription) return } guard let title: String = value as? String else { return } self.navigationItem.title = title } self.hideNetworkingIndicators() } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { print("did fail navigation") print("\(error.localizedDescription)") self.hideNetworkingIndicators() let message: String = "오류발생!\n" + error.localizedDescription let alert: UIAlertController alert = UIAlertController(title: "알림", message: message, preferredStyle: UIAlertController.Style.alert) let okayAction: UIAlertAction okayAction = UIAlertAction(title: "확인", style: UIAlertAction.Style.cancel, handler: nil) alert.addAction(okayAction) self.present(alert, animated: true, completion: nil) } func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { print("did start navigation") self.showNetworkingIndicators() } } 앱딜리게이트에서 import UIKit /// 마지막 페이지 주소를 UserDefaults에서 관리하기 귀한 키 값 let lastPageURLDefualtkey: String = "lastURL" @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { // MARK: - Properties var window: UIWindow? var lastPageURL: URL? // MRAK: - Methods func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. self.lastPageURL = UserDefaults.standard.url(forKey: lastPageURLDefualtkey) return true } func applicationWillResignActive(_ application: UIApplication) { // 응용 프로그램이 활성 상태에서 비활성 상태로 이동하려고 할 때 전송됩니다. 이는 특정 유형의 일시적인 중단 (예 : 전화 또는 SMS 메시지 수신) 또는 사용자가 응용 프로그램을 종료하고 백그라운드 상태로 전환하기 시작할 때 발생할 수 있습니다. //이 방법을 사용하여 진행중인 작업을 일시 중지하고 타이머를 비활성화하고 그래픽 렌더링 콜백을 무효화합니다. 게임은이 방법을 사용하여 게임을 일시 중지해야합니다. let userDefaults: UserDefaults userDefaults = UserDefaults.standard userDefaults.set(self.lastPageURL, forKey: lastPageURLDefualtkey) userDefaults.synchronize() } 코드를 적었는데요 빌드를 실행하게 되면 앱딜리게이트 첫부분 class AppDelegate: UIResponder, UIApplicationDelegate {Thread 1: signal SIGABRT A가 걸리네요 레이아웃 연결 제대로 연결했는데 스레드 걸리니깐 무엇이 문제인지 모르겠습니다...
- 미해결야곰의 iOS 프로그래밍
UI WebView deprecated
UI WebView는 IOS 12.0부터 deprecated 되었답니다. 화면도 검정색만 뜨네요 어떡하죠?
- 미해결야곰의 iOS 프로그래밍
강의 코드
Yagom님 깃헙 레포에 가보아도 강의때 작성하신 코드를 찾을 수 없는데 혹시 강의코드는 공유하지 않으시는 건가요?
- 미해결야곰의 iOS 프로그래밍
혹시 강의하실때 사용하셨던 Xcode 버전을 알 수 있을까요?
모두 똑같이 적었는데 오류가 많이 납니다 ㅠㅠ 저는 10.2.1 사용합니다.
- 미해결야곰의 iOS 프로그래밍
질문 드립니다( keychain)관련
안녕하세요 강사님. 좋은 강좌 감사합니다. 강좌와는 별개로 첫 개인 프로젝트 진행 중인데, 사용자의 각종 개인 정보를 보관하기 위해서는 어떤 api나 framework가 적절할 지 조언해 주시면 감사 드리겠습니다. 찾아보기로는 user default와 keychain을 보통 사용하더라고요. 감사합니다!
- 미해결야곰의 iOS 프로그래밍
Thread 1: signal SIGABRT 오류발생 입니다.
꼼꼼하게 코드를 전부 확인했으나 이상이 없어서 혹시나 해서 야곰님이 올려두신 코드를 복사해서 컴파일 해보았으나 다음과 같은 오류가 발생했습니다. 웹킷 객체를 구성하지 못한것 같은데 이유를 모르겠네요.. 2019-04-30 01:14:12.255645+0900 MyWebBrowser[14759:376648] *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named WKWebView because no class named WKWebView was found; the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target)'*** First throw call stack:( 0 CoreFoundation 0x000000010d9d06fb __exceptionPreprocess + 331 1 libobjc.A.dylib 0x000000010cf74ac5 objc_exception_throw + 48 2 CoreFoundation 0x000000010d9d0555 +[NSException raise:format:] + 197 3 UIFoundation 0x0000000116dfb6c9 UINibDecoderDecodeObjectForValue + 360 4 UIFoundation 0x0000000116dfbaf9 UINibDecoderDecodeObjectForValue + 1432 5 UIFoundation 0x0000000116dfb554 -[UINibDecoder decodeObjectForKey:] + 251 6 UIKitCore 0x00000001116ed705 -[UIView initWithCoder:] + 802 7 UIFoundation 0x0000000116dfb852 UINibDecoderDecodeObjectForValue + 753 8 UIFoundation 0x0000000116dfb554 -[UINibDecoder decodeObjectForKey:] + 251 9 UIKitCore 0x0000000110ed2b41 -[UIRuntimeConnection initWithCoder:] + 178 10 UIFoundation 0x0000000116dfb852 UINibDecoderDecodeObjectForValue + 753 11 UIFoundation 0x0000000116dfbaf9 UINibDecoderDecodeObjectForValue + 1432 12 UIFoundation 0x0000000116dfb554 -[UINibDecoder decodeObjectForKey:] + 251 13 UIKitCore 0x0000000110ed03f1 -[UINib instantiateWithOwner:options:] + 1216 14 UIKitCore 0x0000000110c4d3af -[UIViewController _loadViewFromNibNamed:bundle:] + 382 15 UIKitCore 0x0000000110c4dd39 -[UIViewController loadView] + 177 16 UIKitCore 0x0000000110c4e048 -[UIViewController loadViewIfRequired] + 172 17 UIKitCore 0x0000000110bb2004 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 68 18 UIKitCore 0x0000000110bb22f7 -[UINavigationController _startTransition:fromViewController:toViewController:] + 146 19 UIKitCore 0x0000000110bb33b5 -[UINavigationController _startDeferredTransitionIfNeeded:] + 896 20 UIKitCore 0x0000000110bb46a7 -[UINavigationController __viewWillLayoutSubviews] + 150 21 UIKitCore 0x0000000110b9538d -[UILayoutContainerView layoutSubviews] + 217 22 UIKitCore 0x000000011171e9c1 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1417 23 QuartzCore 0x0000000112c8feae -[CALayer layoutSublayers] + 173 24 QuartzCore 0x0000000112c94b88 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 396 25 QuartzCore 0x0000000112ca0ee4 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 72 26 QuartzCore 0x0000000112c103aa _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 328 27 QuartzCore 0x0000000112c47584 _ZN2CA11Transaction6commitEv + 608 28 UIKitCore 0x0000000111269ccb __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 128 29 CoreFoundation 0x000000010d937aec __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 30 CoreFoundation 0x000000010d9372b0 __CFRunLoopDoBlocks + 336 31 CoreFoundation 0x000000010d931b34 __CFRunLoopRun + 1252 32 CoreFoundation 0x000000010d931302 CFRunLoopRunSpecific + 626 33 GraphicsServices 0x0000000116a9f2fe GSEventRunModal + 65 34 UIKitCore 0x0000000111250ba2 UIApplicationMain + 140 35 MyWebBrowser 0x000000010c68eebb main + 75 36 libdyld.dylib 0x000000010fdc1541 start + 1 37 ??? 0x0000000000000001 0x0 + 1)libc++abi.dylib: terminating with uncaught exception of type NSException(lldb)
- 미해결야곰의 iOS 프로그래밍
4분 12초 부근에서 뭔가 스킵하셨는데
ㅁ 모양에 프레젠트 모달리 하는 부분이 없습니다. 제가 하면 겹쳐서 나오네요. 그리고 프로젝트 돌리면 아이덴티티 없다고 에러 나요.The file “todos.json” couldn’t be opened because there is no such file.허용여부 true, 오류 : 없음2019-03-05 09:26:32.086463+0900 Todos[69953:4622760] Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Todos.TodoViewController 0x7fc4802023c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key memoTextField.' First throw call stack:(0 CoreFoundation 0x000000010e3ef1bb exceptionPreprocess + 3311 libobjc.A.dylib 0x000000010c95f735 objc_exception_throw + 482 CoreFoundation 0x000000010e3eed29 -[NSException raise] + 93 Foundation 0x000000010c38ade4 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 2924 UIKitCore 0x0000000110753292 -[UIViewController setValue:forKey:] + 875 UIKitCore 0x00000001109ea573 -[UIRuntimeOutletConnection connect] + 1096 CoreFoundation 0x000000010e3dacfd -[NSArray makeObjectsPerformSelector:] + 3177 UIKitCore 0x00000001109e72b9 -[UINib instantiateWithOwner:options:] + 18148 UIKitCore 0x000000011075a452 -[UIViewController _loadViewFromNibNamed:bundle:] + 3839 UIKitCore 0x000000011075addc -[UIViewController loadView] + 17710 UIKitCore 0x000000011075b0ee -[UIViewController loadViewIfRequired] + 17511 UIKitCore 0x000000011075b940 -[UIViewController view] + 2712 UIKitCore 0x00000001106c9177 -[UINavigationController preferredContentSize] + 19713 UIKitCore 0x000000011067a0ec -[UIPresentationController preferredContentSizeDidChangeForChildContentContainer:] + 6414 UIKitCore 0x0000000110675d0b __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 11615 UIKitCore 0x0000000110d860d2 _runAfterCACommitDeferredBlocks + 31816 UIKitCore 0x0000000110d74b2c _cleanUpAfterCAFlushAndRunDeferredBlocks + 38417 UIKitCore 0x0000000110da3efc _afterCACommitHandler + 13518 CoreFoundation 0x000000010e353c27 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 2319 CoreFoundation 0x000000010e34e0be CFRunLoopDoObservers + 43020 CoreFoundation 0x000000010e34e751 __CFRunLoopRun + 153721 CoreFoundation 0x000000010e34de11 CFRunLoopRunSpecific + 62522 GraphicsServices 0x000000011650b1dd GSEventRunModal + 6223 UIKitCore 0x0000000110d7a81d UIApplicationMain + 14024 Todos 0x000000010c00f607 main + 7125 libdyld.dylib 0x000000010f888575 start + 1)libc++abi.dylib: terminating with uncaught exception of type NSException
- 미해결야곰의 iOS 프로그래밍
학습자료
링크 눌렀는데https://www.inflearn.com/course/ios-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%b0%8d/wp-content/uploads/%EC%95%BC%EA%B3%B0_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B89_%EB%AC%B8%EC%84%9C%EC%9D%BD%EA%B8%B0.pdf권한이 없는 접근을 요청하셨거나, 잘못된 경로로 들어오셨습니다.문제가 계속된다면 관리자에게 요청해 주세요!불편을 드려서 죄송합니다.라고 뜹니다.
- 미해결야곰의 iOS 프로그래밍
[질문] collectionview에 사진이 중간중간 안나와서요.
안녕하세요 :-)실행해보았는데 카메라롤 앨범을 선택하면 PhotoCollectionCollectionview에 사진이 중간중간 안나오는데 왜 그럴까요?
- 미해결야곰의 iOS 프로그래밍
Command+Shift+O를 눌렀을때 클래스 관련 개발문서로 이동이 안됩니다.
Command+Shift+O를 눌렀을때 클래스 관련 개발문서로 이동이 안됩니다.검색창이 나오긴 하는데 UIKit을 치면 헤더파일만 나오는데요. 제가 잘못하는 부분이 있는지 알고 싶습니다.XCode버전은 10.1입니다. 감사합니다!
- 미해결야곰의 iOS 프로그래밍
모달로 올린 화면을 네비게이션컨트롤러의 dismiss를 사용하나요?
ResultViewController.swift 내에 touchUpDismissButton 을 구현할 때 모달로 구현한 화면인데도 presentingViewController?.dismiss를 사용하지 않고 그 앞에 navigationController?를 덧 붙여서 navigation?.presentingViewController?.dismiss 로 사용하는 이유가 무엇인가요. 애초에 토대가 네비게이션 컨트롤러라 그런건가요