본문 바로가기
728x90
테이블뷰에 이미지와 라벨 넣기 그리고 오류,,,nable to dequeue a cell with identifier peopleCell 240229 희망과 절망을 넘나드는 오늘,, 희망편 헤헤 내가 만듦 메인페이지와 상세페이지는 안했지만,,, 핵심 코딩은 이건 인거 같아서 tableView 파일과 cell 파일을 왜 따로 생성하는지는 아직 잘 모르겠지만 일단 코드가 작동을 한다! (매우기쁨) 아래 두개의 블로그 참고함 (텍스트에 링크 다는것좀 알아와야겠따) https://jiwift.tistory.com/entry/iOSSwift-TableView-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%B7%B0%EC%97%90-%ED%91%9C%EC%8B%9C%ED%95%98%EA%B8%B0-TableV.. 2024. 2. 29.
UITableViewDataSource, UITableViewDelegate 240228 import UIKit class MyTableController: UIViewController { @IBOutlet weak var myTableView: UITableView! let friendsName: [String] = ["Jenny", "Lisa", "Roze", "Jisoo"] override func viewDidLoad() { super.viewDidLoad() myTableView.backgroundColor = .blue myTableView.delegate = self myTableView.dataSource = self } } extension MyTableController: UITableViewDelegate, UITableViewDataSource { func.. 2024. 2. 28.
240227 TIL 240227 1) 오토 레이아웃을 정확하게는 모르지만 오류 안나게 정도는 그릴? 수 있게 되었다 2) Xcode 에서 new file을 생성할 때 cocoa Touch class 는 무엇인가 Swift File 은 깡통 같은 느낌 코드를 다 작성해야함 cocoa 는 클래스와 기본 함수가 적혀져 있다 위에 이미지를 보면 새로 만든 컨트롤러로 클래스가 명명 되어 있음 viewDidLoad() : 뷰 컨트롤러의 기본 뷰가 생성되어 메모리에 로드되었을 때 호출됩니다. 보통 이 부분에서 컨트롤러나 뷰의 기본적인 초기세팅을 설정해줍니다. 이 메소드가 호출되는 시점은 아직 뷰가 화면에 표시되기 전입니다. 3) 새로운 파일을 생성할 때 storyBoard 와 연결 하기 인스펙터 탭에서 [Custom Class] - C.. 2024. 2. 27.
[Swift] Array 240222 240315 배열타입 선언하기 정식 문법 Array 단축문법 [String] //타입선언 - 아래 코드 다 같음 let emptyArray: [Int] = [] let emptyArray2 = Array() let emptyArray3 = [Int]() //============== let emptyArray = [] //타입을 유추할 수 없어서 에러남 배열이 비어있는지 확인하는 법 isEmpty let nums = [1, 2, 3] nums.count //3 //================= //배열이 비어있는지 확인 nums.count == 0 //이렇게도 확인할 수 있는데 //false nums.isEmpty //isEmpty 를 사용하면 더 편리 함 //false 배열 요소에 접근하.. 2024. 2. 22.
[Swift] String Comparison & Searching 240221_3 240315 String Comparison 연산자로 비교 하는 방법 let bigA = "Apple" let smallA = "apple" let b = "Banana" bigA == smallA // false bigA != smallA // true bigA < smallA //true //아스키코드 ("A" as Character).asciiValue //65 ("a" as Character).asciiValue //97 bigA < b //false Method 로 비교 하는 방법 //순서가 같은지 비교 bigA.compare(smallA) == .orderedSame //false (대소문자 구분함) bigA.caseInsensitiveCompare(smallA) == .ord.. 2024. 2. 21.
[Swift] String Editing #2 240221_2 240315 Replacing Substrings 문자열 교체 var str = " Hello, Objective-C" if let range = str.range(of: "Objective-C") { str.replaceSubrange(range, with: "Swift") } str if let range = str.range(of: "Hello") { let s = str.replacingCharacters(in: range, with: "hi") s } Q: if let 은 옵셔널 바인딩 하는건데 왜 언랩핑을 하는거지? 더 간단한 방법 replacingOccurrences(of: , with: ) 대상 문자열에서 첫번째 파라미터로 전달한 문자열을 검색하고 두번째 파라미터로 전달한 .. 2024. 2. 21.
[Swift] Optionals 240221 240314 강의 Optional Type : 값을 저장하지 않아도 되는 타입 중요 : 변수와 상수는 값을 읽기전에 반드시 초기화 되어야 한다 Non-optional Type 넌옵셔널 타입 : 변수와 상수는 반드시 타입에 맞는 값을 가지고 있어야한다. 우리가 지금까지 선언한 변수 상수 값들,, 값이 없다는 걸 설명해야함 let stock: Int = 0 -> 상수를 잘못 이해하게 되고 논리적인 에러가 될 수 있다 let stock: String = "out of stock" -> 문자열은 오타가 날 수 있으니 좋은 방법이 아님 let stock: Int? = nil //nil : 값이 없다는 뜻. 타입이 없음. 타입을 명시적으로 선언해야한다. let str: String = "Swift" /.. 2024. 2. 21.
[Swift] String Editing #1 240220_4 240315 Appending String and Characters 문자열 연결 append 메소드 파라미터로 전달한 문자열[", ]을 대상 문자열["Hello"]에 바로 연결한다 var str = "Hello" str.append(", ") //append : return 값이 없음. 값을 리턴하지 않음 str // 결과 [Hello,] argument로 전달한 문자열이 뒤에 연결 됨 appending 메소드 대상 문자열을 직접 연결하는게 아니라 새로운 복사본을 만들어서 연결한 다음에 이 복사본을 리턴해 줌. let s = str.appending("Swift") //appending : String 값을 리턴함 str //[Hello,] s //[hello,Swift] //appen.. 2024. 2. 21.
[Swift] String Basics 240220_3 String Initialization var str = "Hello, Swift String" var emptyStr = " " emptyStr = String() //()-> 생성자: 함수처럼 호출 가능. 괄호 앞에 함수 이름 대신의 타입의 이름이 있다 let a = String(true) let b = String(12) let c = String(12.34) let d = String(str) // 다른 문자열로 새로운 문자열을 만들 때 //숫자를 특정 진법으로 바꾸기. 숫자 123을 16진수로 바꾸는 코드 let hex = String(123, radix: 16) //특정 문자 반복 let repeatStr = String(repeating: "A", count: 7) //유니코.. 2024. 2. 21.
[Swift] String Index 240220_2 startIndex endIndex import Foundation //[String index] //0부터 시작하는 정수. 특정 데이터의 위치를 나타냄. 문자열에서는 문자의 위치를 나타낼 때 사용 /* 문자 순서 Swift 01234 54321 */ let str = "Swift" str.startIndex //첫번째 문자의 인덱스. //첫번째 문자 출력 let firstch = str[str.startIndex] print(firstch) //마지막 문자 출력 /* let lastCh = str[str.endIndex] print(lastCh) --> 출력 안됨 endIndex 는 마지막의 다음이라는 뜻 -> Past the end 마지막 문자를 출력하고 싶으면 endIndex 바로 .. 2024. 2. 20.
[Swift] 개념공부 3 Singleline String Literal Multiline String Literal import Foundation //Singleine String Literal let s = "Hello, World" //[/n] 줄바꿈 let longS = "I wanna apple. U wanna banana.\n And he" // multiline String Loteral //반드시 새로운 라인에서 시작. 문자열은 따옴표 보다 오른쪽에 있어야한다. // \백슬래시는 줄바꿈 취소. 결과상에선 줄바꿈이 적용되지 않음 let multiline = """ I wanna apple. U wanna banana. And he """ 문자열 타입 String Types //Swift String (Swift 문자.. 2024. 2. 20.
[Swift] if, guard,switch Statement 240219 240314 if문 강의 예제1) let num = -123 if num >= 0 { print("Positive number or zero") } else if num % 2 == 0 && num >= 0 { print("positive even number") } else if num % 2 == 1 && num >= 0 { print("positive odd number") } else { print("negative number") } 문제점 : 조건이 중복 됨. && num >= 0 이 부분 조건이 겹치고 있음 let num = 123 if num >= 0 { print("Positive number or zero") if num % 2 == 0 { print("positive ev.. 2024. 2. 19.
[Swift] 자료형과 연산자 개념 240216 자료형 Integer Types(Int) 정수 //저장 할 수 있는 범위를 모를 때 Int8.min // -128 저장할 수 있는 최소값 Int8.max // 127 저장할 수 있는 최대값 Sined Type : 양수 음수 모두 저장 --> 보통 이거 사용! Unsined Type : 양수만 저장 Floating Types(Double) 실수 Boolean Types(Bool) 참과 거짓 Character Types 문자 문자가 하나 일 때만 빈문자를 저장할 때는 큰따옴표 안에 공백을 입력해야한다 String Types 문자열 큰따옴표 안에 있는건 글자의 갯수가 몇개던 문자열이다 두개 이상의 문자는 문자로 저장할 수 없다. *옵션키 누르고 클릭하면 타입 나오긴 해 연산자 산술 연산자 Arit.. 2024. 2. 16.
[Swift] 개념공부 240215_2 https://www.kxcoding.com/learning/essential-swift/token-expression-statement Token 가장 작은 단위의 요소 ex) 2 + 3 ; —> 4개의 토큰 키워드 (독점해서 사용하는 단어) 공백으로 쪼갤수 없어서 토큰으로 분류함 ex) I_f -> 띄어쓰기 하면 올바른 토큰이 아님 화이트스페이스 (공백,빈칸) 코드의 가독성을 높힘, 토큰을 구분하는 역할 표현식 expressions 하나이상의 토큰이 모여서 하나의 값으로 표현 되는 식 Evaluate 표현식을 평가한다(결과를 얻는것) Ex) let x = 7 x --(evaluate)--> 7 x +1 --(evaluate)--> 8 Statements (문장. 문) 하나이상의 표현식.. 2024. 2. 15.
[Xcode] 프로젝트 생성 방법 240214_4 kxcoding - Essential Swift - Hello, Swift- Hello, Swift Project https://www.kxcoding.com/learning/essential-swift/hello-swift-project-xcode14 나는 꼭 프로젝트 생성 같은게 어렵더라고,, 만약 이 창이 안뜬다면 [Window - Welcome to Xcode] 클릭 클릭 해서 띄우세요! 프로젝트 생성 [iOS - App - Next] Prodcut Name : 프로젝트 이름. 기본앱과 동일한 이름으로 설정하면 스토어에 올렸을 때 동일해서 등록이 안된다. 고유한 이름으로 설정할 것. Team : 기본설정에서 계정을 입력했다면 선택시 뜰 것이다. 지금은 연습이니까 패스 가능. Org.. 2024. 2. 15.
[Swift] Scope가 먼데 230215_1 https://www.kxcoding.com/learning/essential-swift/scope 아직도 문법을 들어가지도 못했지만 기죽지 말어,, 너 기초도 모르잖아 현실을 받아들여 Scope 범위를 뜻 함 크게 두가지로 나뉘는데 전역범위 Global Scope 지구촌 느낌 그냥 지구라고 하자 지역범위 Local Scope 음 요건 나라 이 구분은 {} 브레이스 braces 로 나뉘게 된다 브레이스 하나 하나가 나라라고 보면 됨 로컬스코프 안에 스코프가 또 생길 수 있는데 쉽게 말하자면 나라 안에 지역이라고 보면 된다 한국 안에 서울 경기도 충북 경남 등등 이렇게 가정하고 오늘 공부한거 정리해 봄 - 코리아는 하나야 둘이 될 수 없어 규칙1 : 동일한 스코프에선 같은 이름을 쓸 수 없.. 2024. 2. 15.
[Swift] 기초 중의 기초 240214_3 주석 주석 comment 한마디로 메모 슬래시 두개로 라인 맨앞에 입력한다. 단축키 [ cmd + / ] 여러줄 주석 Multi-line comment /* */ 반드시 여는 주석과 닫는 주석 수를 일치 시켜야 한다 /* /* var greeting = "Hello, playground" print(greeting) */ */ 여러줄로 주석을 달 때에 단축키가 어떻게 작용할까 싶어서 해봤는데 커서를 놓은 주석이 삭제 되고 다시 생성 되지는 않았다. 그래서 반드시 * 요걸 입력해야하는게 넘 귀찮아 인라인 주석 Iline Comment var greeting = /* */ "Hello, playground" Importing Frameworks 템플릿 같은 존재. 모든 코드를 짜지 않아도 된.. 2024. 2. 14.
Xcode 에서 Playgound 파일 생성 및 Swift 코드 실행 방법 240214_2 오랜만에 공부하려니까 공부가 어떤건지 조차 까먹음 그래도 해볼게 파일 생성부터 난관이라 이것조차 기록해야하는 나,, 정말 응애?스럽다 [File - New - Playground] 클릭클릭클릭 [iOS or macOS - Blank] 좌측 상단에 "iOS" 와 "macOS" 가 있는데 iOS 를 선택하면 된다. 근데 이전 포스팅의 이슈로 나는 일단 공부는 macOS 로 하기로 함. [파일명 입력 - 원하는 폴더 선택 - Create] 파일명은 대소문자와 숫자로만 입력할 수 있다. 공백 안돼 한글 안돼~ 그럼 이런 창이 뜬다. 글자 크기 조절 : [Cmd +] 혹은 [Cmd - ] 거터 Gutter : 라인과 실행버튼 디버그 영역 Debug Area: 결과가 표시되는 부분 콘솔 Consol.. 2024. 2. 14.
iOS Swift Xcode 개발환경 셋팅 240214 공부 첫날인데 Xcode 사용법을 전혀 모름. 당연함. 내배캠 매니저님이 추천해주신 인프런 강의에도 자세히는 안나와 있어서 유튜브를 보고 따라했다. 내가 설명하는 것보다 영상 보는게 낫기 때문에 아래에 첨부 한다. https://www.youtube.com/watch?v=UwHB4sM5tJA 계정을 추가 해야하는데 내 개인 애플 계정을 일단 추가해 두었다. 필요시 애플 개발자 계정 만들지 모,, 빌드 실패시 들리는 사운드 설정,,, 앞으로 내가 싫어하게 될 사운드가 되시겠다. 그렇게 순조롭게 진행 되는가 했더니 문제 발생,, iOS 시뮬레이터가 작동을 안하길래 다운을 받았는데 인스톨이 너무 오래 걸린다 겨우 7기가 툴 다운 받는데 한세월 걸릴 일이냐고 ,, 뭐지 뭐가 문제지 ㅠㅠ 이랬는데 개.. 2024. 2. 14.
앱개발 용어 정리 IDE 통합 개발 환경( integrated development environment, IDE)은 또는 대화형 개발 환경은 소프트웨어 개발을 위해 컴퓨터 프로그래머에게 포괄적인 기능을 제공하는 소프트웨어 응용 프로그램. IDE는 일반적으로 소스코드 편집기, 빌드 자동화 도구 및 디버거로 구성됨. 컨벤션 - 코드를 관리하고 읽기 쉽게 만들기 위한 규칙 자료형 - 특정 목적에 맞는 자료를 저장하기 위해 만든 형식(format, layout) 변수와 상수 변수는 프로그램에서 데이터를 저장하고 변경이 가능한 값 상수는 프로그램에서 변경되지 않고 유지되며 수정되지 않는 값 메서드(Method) 특정 기능을 정의한 코드들의 집합 클래스(claasfication) 필요한 기능을 조합해서 '하나'로 묶고 이름을 붙여.. 2024. 2. 14.
[Blender] 미피 만들기 이틀에 걸쳐서 만들었다 https://youtu.be/f1YFQR9TttA 2023. 2. 16.
[Blender] 심슨 조명, 전화기, 협탁 만들기 색깔 고르는게 어렵다 https://youtu.be/-Xrv3AMEe2A 2023. 2. 16.
[Blender] 머그컵 만들기 https://youtu.be/VQwPgIdCONs 2023. 2. 16.
초점거리와 화각 2022. 2. 9.
[3D 기본용어] 정점(vertex) 폴리곤(polygon) 변(edge) 면(face) 메시(mesh) 2022. 2. 7.
3D 확장자 | stl, obj, ply, vrml, x3d, 3dm, 3ds, CAT part, igs, MODEL, prt, SLDPRT, stp, x_t, IPT, max, ma JT, CGR (아스키, 바이너리 차 확장자 설명 STL (StereoLithography) ① 3D 프린팅,모델링 대표 확장자 (내부가 비어있는 형태) ② STL (StereoLithography)은 3D Systems에서 제작한 조형 CAD 소프트웨어의 기본 파일 형식 ③ STL 파일은 단위법선과 삼각형의 정점에 의해 하기와 같은 사진의 형식으로 표현이 됩니다. 정밀도를 위하여, 삼각형의 개수가 많아지게 되면 원과 유사한 형태로까지 곡면 형상을 만들 수 있습니다. 대다수의 3D 모델링 프로그램에서 지원되며, Export 기능으로 파일 추출하시면 됩니다. ④ 주로 FDM, SLA 3D프린터에서 사용되는 확장자 PLY ① 3D 스캐너의 3차원 데이터 저장하는 포맷 ② 색상, 및 투명도, 표면 법선, 좌표 등 다양한 속성을 저장 ③ 주로 색깔.. 2022. 2. 7.
사진 노출의 3요소 - 조리개, 셔터스피드, ISO 2022. 2. 7.
[SONY] ILCE-7C α7C | 촬영 화면 상의 아이콘 https://helpguide.sony.net/ilc/2020/v1/ko/contents/TP1000156897.html ILCE-7C | 도움말 안내 | 모니터 상의 아이콘 목록 helpguide.sony.net 2022. 1. 27.
[Geomagic Design X] How to merge multiple 3D scan data into a single mesh | 여러개의 스캔데이터 하나의 메쉬로 합치기 Merge 란? 여러개의 포인트클라우드나 메쉬 등을 하나의 메시로 만들어 준다. The Merge command merges multiple point clouds or meshes and creates a single mesh. During the merging process, overlapped areas will be removed efficiently and neighboring boundaries are stitched together. (출처 Geomagic Design X User Guide) 1. Tools > Scan Tools > Merge 2. Mesh / Point Cloud 버튼 클릭 Surface Merge 선택 후 OK 버튼 클릭 완성 2022. 1. 27.
[Geomagic Design X] How to align multiple 3D scan data manually(align between scan data) | 여러개의 스캔 데이터 합치기 상단 메뉴바 > ALGNMENT > Align Between Scan Data 클릭 Method > Local Based On Picked Point 선택 Reference 클릭 > 하단의 Entity Thumbnails 에서 합체할 스캔데이터 부분을 모두 선택 Moving 클릭 > 하단의 Entity Thumbnails 에서 합체할 나머지 스캔데이터 선택 Reference 창과 Moving 창에 수동으로 같은 위치에 포인트를 찍습니다. 공통된 부분의 3점 이상 쌍을 만들어 주어 대략적으로 정렬을 합니다. 포인트를 찍은 후에는 이동이 어렵고, 포인트의 색깔은 찍은 순서대로 나옴 뒤로 가기 단축키 ctrl + z Apply 버튼을 누릅니다. 최적정렬 Global And Fine > Moving > 모든 스.. 2022. 1. 26.
728x90