분류 전체보기
-
[iPadOS] iPadOS에서 multiple scene을 구성하기프로그래밍/iOS 2021. 9. 22. 03:32
새로운 scene을 생성하는 방법을 이해하기 scene과 그 구체적인 코드를 알아보기 전에, project settings에서 Supports Multiple Windows 체크박스를 활성화 했을 때 scene들을 생성할 수 있는 여러 방법들을 알아봅시다. 우리는 기본으로 제공되는 기능을 살펴보는 것뿐만 아니라, 실제 유저들이 app이 multiple window를 지원할 때 어떤 동작들을 기대하는지 보여드리고자 합니다. 그 뒤에 우리의 app에 어떻게 multiple window를 구현하는지 살펴보겠습니다. 새로운 scene을 여는 기본적인 방법 iPadOS에서는 새로운 scene을 여는 2가지 방법이 있습니다. 첫번째로 앱이 이미 실행중인 상태에서 dock에 있는 앱 아이콘을 위로 끌어올려서 새로운 ..
-
NSCoding, Codable 사용 방법 정리(코드)프로그래밍/iOS 2021. 9. 20. 19:50
이렇게 사용하는게 맞는진 모르겠지만, 일단 해결했던 방법을 정리해본다 1. func encode(with:)에서 key값과 함께 encode할때 방법들 클래스 안에 구조체 프로퍼티가 있어서 NSCoding + Codable을 섞는 상황임. 이때 최종 목적은 우선 객체를 Data 로 만들고, 그 Data를 func encode(_ object: Any?, forKey key: String) 함수를 사용하여 키 값과 함께 encode 하는 것이다. 방법1: JSONEncoder, JSONDecoder를 사용 func encode(with aCoder: NSCoder) { print(#function, #line) aCoder.encode(name, forKey: "name") aCoder.encode(age..
-
NSCoding 쓸 때 does not implement methodSignatureForSelector: 에러가 나는 경우프로그래밍/iOS 2021. 9. 17. 01:15
해결방법 1. 인코딩할 클래스가 NSObject를 상속했는지 확인. 이때 CustomStringConvertible 프로토콜을 사용할 수 없게 됨 2. 클래스의 프로퍼티로 enum을 가지고 있으면 안된다. (enum 타입을 가지고 있다면 원시형 값으로 치환해서 하던가 해야함) // // Player.swift // MultiSceneWithUserDefaultTest // // Created by turu on 2021/09/17. // import Foundation class Player: NSObject, NSCoding { enum Gender: String { case man case woman case other } func descriptionToPrint() -> String { retur..
-
UserInterfaceState.xcuserstate 변경사항이 계속 뜰 때프로그래밍/git 2021. 9. 7. 21:24
문제 상황 Xcode에서 파일만 훑어보기만해도 UserInterfaceState.xcuserstate 파일의 변경사항이 계속 뜨는 문제 아마 변경사항이 있고 커밋하지 않는 상태인 feature브랜치에서 main브랜치로 rebase를, 그러니까 git rebase main git checkout main git rebase feature 이런순으로 하다가 발생한 것 같았는데 정확히 상황은 모르겠음 gitignore에 추가해도 계속 변경사항이 뜨고 있었음 해결 방법 git rm --cached [Project Name].xcworkspace/xcuserdata/[User Name].xcuserdatad/UserInterfaceState.xcuserstate git commit -m 'Removed file ..
-
git 기본 사용법프로그래밍/git 2021. 8. 29. 05:26
1. rebase 기본적으로 커밋들을 모아서 복사한 뒤, 다른 곳에 떨궈 놓는 것. 리베이스를 하면 커밋들의 흐름을 보기 좋게 한 줄로 만들 수 있다. 리베이스를 쓰면 저장소의 커밋 로그와 이력이 깨끗해짐 현재 HEAD가 있는 위치를 원하는 커밋(브랜치)로 복사해서 넣는다. 2. HEAD와 브랜치 분리하기 git checkout [커밋해시] 를 하면 분리가 된다고함. 나는 처음에 git checkout [브랜치이름] 으로 했을 때 브랜치가 가리키는 마지막 커밋이랑 뭐가 다른건지 헷갈렸다. [브랜치이름]으로 한 경우랑 브랜치가 가리키는 커밋으로 했을 때랑 달랐다. 브랜치이름 = 어떤 커밋을 가리키는 포인터 라고 이해하면 될 것 같다. git init git touch test1.txt git add . g..
-
[iOS] navigation bar의 large title를 쓸 때 반투명으로 바꾸는 방법프로그래밍/iOS 2021. 8. 25. 20:12
원인 iOS13에서 navigation bar에서 large title의 기본 모양이 반투명에서 투명으로 변경되었기 때문임. 해결방법 방법1. application(_:didFinishLaunchingWithOptions:)에 아래의 코드를 작성 let appearance = UINavigationBarAppearance() appearance.configureWithDefaultBackground() UINavigationBar.appearance().scrollEdgeAppearance = appearance https://sarunw.com/posts/uinavigationbar-changes-in-ios13/ UINavigationBar changes in iOS13 | Sarunw Apple b..
-
[부스트캠프 웹모바일 6기] 멤버십 합격 후기프로그래밍/부스트캠프 2021. 8. 22. 01:53
1. 저번주 금요일에 4주간의 챌린지 기간이 끝났고 이어서 수료식이 있었다. 수료식 이후에 마침 구글에서 앱을 올리지 않으면 개발자 계정을 폐쇄하겠다는 메일이 와서 flutter 연습겸 안드로이드 앱을 올리고 있던 중에 멤버십 발표 메일이 왔다. 챌린지 수료식때 멤버십 관련 공지에서 발표가 목요일로 예정되어 있었고, 예정대로 목요일에 발표가 나왔다. 2. 4주간의 챌린지 과정이 끝난 뒤에 있는 멤버십 과정은 스프린트(8주) + 그룹 프로젝트(6주)해서 총 14주(8/23 ~ 12/3)동안 진행된다. CS위주의 챌린지 과정과 다르게 실제 파트 분야의 학습과 그룹 프로젝트를 여러번 진행한다. 매주 현업분들의 코드 리뷰도 있다고하는데 이런 경험은 처음이라 앞으로 어떻게 진행될지 궁금하다. 3. 전반적으로 챌린..
-
[부스트캠프 웹모바일 6기] 챌린지 수료 후기프로그래밍/부스트캠프 2021. 8. 22. 01:38
4주차후기는 지난 3주차 후기에서 덧붙여서 작성하려한다. 1. 매일 밤새워가며 과제를 해서 잠을 별로 못잤다. 점심먹고 졸렸던 것만 빼면 좋은 경험을 했다고 생각한다. 평생 이렇게 모든일에 대해서 밤새워가면서 할 수 있는게 아니기 때문에 시간관리를 더 제대로 했어야 했다고 생각이 들었다. + 그동안 시간 관리 방법을 잘못하고 있던 것 같았다. 내가 남은 시간에 무엇을 할 수 있고 할 수 없는지 선택을 해야한다. 이것은 당연한 말이지만, 나는 이 선택하는 것을 잘 못하는 것 같다. 시간이 많다고 여겨지는 미션 공개 초반에는 이 과정이 잘 이루어지지 않았다. 자신이 얼마나 더 할 수 있는지 정확한 판단을 내리는 것은 쉽지 않은 것 같다. 2. 모두가 정말 최선을 다하려는 분위기였다. 열정적인 분위기 속에서 ..
-
[부스트캠프 웹모바일 6기] 챌린지 3주차 후기프로그래밍/부스트캠프 2021. 8. 8. 00:58
1. 매일 밤새워가며 과제를 해서 잠을 별로 못잤다. 점심먹고 졸렸던 것만 빼면 좋은 경험을 했다고 생각한다. 평생 이렇게 모든일에 대해서 밤새워가면서 할 수 있는게 아니기 때문에 시간관리를 더 제대로 했어야 했다고 생각이 들었다. 2. 모두가 정말 최선을 다하려는 분위기였다. 열정적인 분위기 속에서 같이 공부할 수 있어서 좋았다. 멋진 사람들 속에서 같은 주제로 공부하는 것을 반복하는데, 어떤분은 어떻게 했고 다른분은 어떻게 했는지 부담없이 결과물을 보거나 물어볼 수 있는것이 좋았다. 이건 더 부연설명할게 없는 것 같다. 3. cs학습 외적으로 느낀점도 많다. 매일 아침에 있는 피어세션 때 서로 발표를 한다. 이때 서로가 문제를 어떻게 해결했는지 이야기를 한다. 어떻게 해결했는지 보거나 설명을 하면서 ..
-
Xcode would like to access files in your desktop folder..가 계속 뜰 때프로그래밍/Xcode 2021. 7. 29. 19:11
상황: 프로젝트 파일은 Desktop 경로에 있음. 프로젝트는 Command Line을 사용하고 있음. 프로젝트에서 FileManager를 이용해서 파일 입출력을 하고 있음. 증상: 프로젝트 돌려볼때마다 "프로젝트이름" would like to access files in your desktop folder 라는 팝업이 뜨는데, 확인 누르면 그대로 실행은 되는데, 디버깅 종료후 다시 실행할때, 파일 입출력 부분 파일을 또다시 수정하게 될 때마다 또 팝업창이 뜸 이게 설정>보안 및 개인 정보 보호>전체 디스크 접근 권한>Xcode에서 체크해줘도 계속 뜸 해결: Desktop에 있는 프로젝트 파일을 User/계정명/ 이쪽에 폴더를 새로 만들고 거기서 실행하면 됨