본문 바로가기

아이폰 개발186

objective c 상속과 클래스 objective c 상속과 클래스 상속이란? 다른 클래스 정의의 일부분을 확장 또는 변경해서 새로운 클래스를 정의하는 기능을 상속이라고 한다. 새롭게 작성한 클래스에서 상속의 기본이 되는 클래스를 슈퍼클래스라고 부르고, 반대로 상속받은ㅇ 클래스는 서브클래스라고 부른다. 상속의 특징은 무엇인가? 서브클래스는 슈퍼 클래스의 정의를 모두 이어 받는다. 서브 클래스는 슈퍼 클래스에 있던 인스턴스 변수도 이어받고 슈퍼 클래스와 같은 메서드를 실행할 수도 있다. 1. 새로운 메서드 추가하기 2. 새로운 인스턴스 변수 추가하기 3. 슈퍼 클래스 메서드를 다른 정의로 바꾸기 클래스 계층이란? 유용한 클래스를 상속해서 새로운 클래스를 더 만들거나, 상속으로 정의한 클래스를 다시 상속해서 다른 클래스를 만드는 작업을 반.. 2020. 12. 25.
objective c 프로그램 objective c 프로그램 모든 클래스에서 객체는 id라는 특별한 형태로 표현된다. id obj; 메시지 표현식 어떤 객체 obj에 메세지 msg를 보내려면 아래과 같이 작성한다. [obj msg] 참고로 메시지 표현식은 리시버 객체(obj)가 그 메시지를 처리한 결과값을 리턴한다. 메시지에 인수가 있으면 메시지 키워드 끝에 : 를 붙여서 인수가 있음을 나타낸다. [printInfo setLeftMargin: 60.0]; 인수가 두개 이상 있을때는 콜론을 붙이고 다른 키워드를 추가한다. [printInfo setLeftMargin: 60.0 setRight: 90.0]; 객체에게 일을 시킬려면? id형 변수를 선언하는 것만으로는 변수에 객체가 저장되지 않는다. 객체에게 일을 시킬려면 우선 클래스에서 .. 2020. 12. 25.
objective c 객체 개념 객체 개념 객체의 구성은? 객체는 속성과 메시지로 구성되어 있다. 메시지를 받으면 그에 따른 처리를 한다. -자동차 객체의 속성: 칼러, 속도 -자동차 객체의 메시지: 앞으로 달린다. 후진한다. 드래프트한다. 등 객체의 특성은? 사람이 '물건'으로 다른 것과 구별해서 인식할 수 있음 속성이 있음 다른 객체에 메시지를 보낼 수 있음 메시지를 받아 그에따른 처리를 함 메시지 처리는 객체의 메서드로 이루어짐 객체의 속성? 객체의 속성은 무엇을 나타내는가? 객체는 다른 객체를 참조해서 속성을 나타낸다. 속성을 나타내는 다른 객체의 참조 (포인터)를 저장한 장소가 인스턴스 변수이다. 또는 그냥 변수라고도 하고, 변수에서 참조할 수 있는 객체가 없는 상태를 널로 표현하기도 한다. 객체를 연결하려면 어떤 객체 변수에.. 2020. 12. 25.
autolayout - ScrollView 정리 autolayout - ScrollView 정리 세로로 길게 작업할때는 먼저 ViewController의 세로 길이를 높인다음 작업하는게 좋다. 여러객체를 스크롤 뷰로 작업할때 먼저 아래처럼 뷰로 한번 감싼후, 그 다음 스크롤 뷰로 감싸는게 작업하는데 편하다. 그리고 생성된 뷰를 클릭 후 ScrollView를 클릭해주면 뷰를 감싼 ScrollView가 생성이 된다. 스크롤뷰 제약조건은 위 아래 좌우 0으로 준다. 텍스트필드는 위 아래 좌우 20으로 준다. 뷰의 제약조건은 위아래 모두 0으로 준다. 마지막으로 뷰의 넓이만 supurview와 동일하게 맞춰준다. (왼쪽 네비게이션 메뉴에서 뷰 우클릭 후 슈퍼뷰 드래그 -> 넓이 같게 체크). 아래와 같은 화면이 안나오면 scrollview 클릭해서 인스펙터에.. 2020. 12. 19.
autolayout - priority 정리 autolayout - priority 정리 priority를 번역하면 우선순위라는 뜻이다. priority는 오브젝트가 하나일때는 별로 중요하지 않다. 오브젝트가 두개이거나 하나 이상일때 priority 기능이 사용이 된다. 오브젝트가 두개일때 priority의 우선순위가 높은 오브젝트는 자신의 크기를 먼저 갖고, 고정이 된다. 반대로 priority가 상대 오브젝트 보다 낮은 오브젝트는 크기가 밀리거나, 유동적으로 변할 수 있다. 1.문제상황 라벨 두개를 만들었다. 첫번째 라벨의 제약조건을 위, 좌, 우, 20씩 주었다. 우측 라벨의 제약조건을 우 20으로 주었다. 참고로 라벨은 크기를 지정하지 않아도 오류가 안난다. 텍스트의 크기가 곧 라벨의 크기이기 때문이다. 크기를 확인 할 수 있는 컨텐츠를 갖.. 2020. 12. 19.
autolayout - multiplier 정리 autolayout - multiplier 정리 xcode의 autolayout에는 multiplier 속성이 있다. multiplier를 한글로 하면 승수다. 단순하게 이해한다면 multiplier는 xcode에서 곱하기 라고 생각하면된다. 무엇에 대한 곱하기 일까? 바로 뷰의 y 좌표와 x좌표에 대한 곱하기이다. 그럼 예제로 뷰를 하나 만들어서 뷰의 탑 제약조건에 multiplier를 2로 줘보자. 1.multiplier 개념 결과는? 아무런 반응이 없다. 이유는 탑 제약조건의 multiplier는 뷰의 y좌표에 곱하기를 한다고 했는데 현재 뷰의 y좌표는 0이기 때문이다. safe area가 존재하는 iphone 11 같은 경우는 기본 y좌표가 44로 설정되어 있다. 그래서 탑 제약조건의 multip.. 2020. 12. 19.
autolayout - align 정리 autolayout - align 정리 이번 포스팅에서는 ios autolayout align에 대해서 알아보자. align은 정렬이라는 뜻이다. 여러개의 뷰가 있을때 정렬 기능으로 간단하게 뷰의 위치를 정렬 시킬 수 있다. 아래 그림처럼 정렬기능은 막대기 모양처럼 생긴 아이콘을 클릭하면 된다. 뷰가 하나일때는 부모뷰 기준으로 가운데 정렬하는 기능만 활성화 된다. 뷰가 여러개일때는 아래 그럼처럼 특정 뷰를 기준으로 여러 뷰의 정렬을 설정하는 속성이 활성화가 된다. 보라색 뷰를 녹색 뷰 모서리 부분에 정렬 시키고 싶으면 어떻게 해야 할까? 현재 초록색 뷰는 탑, 리딩(왼쪽) 제약 조건이 각각 20, 20으로 설정되어 있고, 높이, 넓이를 300, 300으로 주었다. 보라색 뷰는 높이 넓이만 100, 100.. 2020. 12. 18.
autolayout - constraints 정리 (2) autolayout - constraints 정리 (2) 1. constraints 가로 길이와, 높이만 지정 뷰의 높이와 넓이만 지정을 했을때 아래와 같이 "뷰의 위치를 알 수 없다" 고 오류가 난다. 즉 뷰의 x 좌표와, y좌표를 지정해 주어야 한다. 아래 처럼 크기만 저징하고 위치를 지정안했을때 아이폰 기종에 따라 뷰가 밖으로 나갈 수 있다. 뷰는 크기를 알 수 없거나, 위치를 알 수 없을때 오류를 출력한다. constraints Top과 constraints Leading 을 각각 50씩 줘보자. 참고로 constraints Top 50과 constraints Leading 50은 뷰의 x좌표를 부모뷰 top에서 50만큼 떨어진 곳에 위치시키고, 뷰의 y좌표를 부모뷰 left에서 50만큼 떨어진 .. 2020. 12. 18.
autolayout - constraints 정리 (1) autolayout - constraints 정리 xcode storyboard에는 constraints라는 개념이 있다. 영어로 번역하면 제약이라는 뜻인데, 번역을 해도 이해가 잘안간다. 쉽게 말하면 storyboard에서 view의 간격을 자동으로 조정해 주는 역할을 한다. 1.문제상황 위 그림처럼 뷰를 제약조건없이 그리면 아이폰 사이즈에 따라서 뷰가 화면 밖으로 나갈 수 있다. 그래서 아이폰 전체 기종의 크기를 지원할려면 autolayout의 constraints 는 필수로 지정해야 한다. 2.주의점 constraints을 지정할 때 주의점이 있다. 뷰의 높이나 넓이 등 크기가 명확해야 한다는 것이다. 가로 높이가 명확해야 하고, 세로 높이가 명확해야 한다. 또는 x 좌표나 y좌표가 명확해야 한다... 2020. 12. 18.