1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [세미나] [iOS를 : 보스처럼 애플리케이션을 작성] 2 00:00:02,000 --> 00:00:04,000 [토미 MacWilliam] [하버드 대학] 3 00:00:04,000 --> 00:00:08,000 [이 CS50 수 있습니다.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> 좋아, 모두 iOS를에 오신 것을 환영합니다 보스 같은 애플리케이션 작성. 5 00:00:12,000 --> 00:00:16,000 이 세미나는 아이폰 앱을 쓰기에 초점을 것입니다 6 00:00:16,000 --> 00:00:19,000 그리고 차례로 iPad 용 응용 프로그램을 작성하고, 그래서 우리는 기본적으로 통과 할거야 7 00:00:19,000 --> 00:00:23,000 응용 프로그램을 만드는 방법에 대한 몇 가지 예제, 콩알 만 발가락과 같은 간단한 게임, 8 00:00:23,000 --> 00:00:26,000 또는 뉴스 리더 어떤 종류의 같은 응용 프로그램을 만드는 데 더 많은 관심이 있으신 분이라면 9 00:00:26,000 --> 00:00:30,000 또는 내가뿐만 아니라 그런 말을 할 것이다 인터넷과 상호 작용 무언가. 10 00:00:30,000 --> 00:00:32,000 다음은 간단한 의제입니다. 11 00:00:32,000 --> 00:00:36,000 >> IOS 응용 프로그램은 Objective-C를라는 언어로 기록 12 00:00:36,000 --> 00:00:39,000 등이, C와 비슷하지만 정말로이라도 비트 13 00:00:39,000 --> 00:00:41,000 그래서 우리는 언어 자체에 대해 좀 더 얘기 할 것 14 00:00:41,000 --> 00:00:45,000 다음 방법 엑스라는이 애플리케이션 프로그램을 사용하여 아이폰 애플리케이션을 구축하는 방법, 15 00:00:45,000 --> 00:00:48,000 당신이 아직 다운로드하지 않은 경우 어떤 지금 다운로드를 시작하시기 바랍니다. 16 00:00:48,000 --> 00:00:50,000 이 몇 기가 바이트입니다. 17 00:00:50,000 --> 00:00:54,000 이 앱 스토어에서 무료로해야합니다, 그래서 당신은 Mac을 가지고해야합니다 18 00:00:54,000 --> 00:00:57,000 이상적으로 OS X의 최신 버전을 실행하고 19 00:00:57,000 --> 00:00:59,000 당신이하지 않으면 아무 문제 없습니다. 20 00:00:59,000 --> 00:01:02,000 우리는 사용을 위해 사용할 수있는 과학 센터의 맥이 21 00:01:02,000 --> 00:01:05,000 엑스 코드가 설치 등 개발에 사람들을 사용하시기 바랍니다.로 22 00:01:05,000 --> 00:01:07,000 당신이 응용 프로그램을 만들고 싶어하지만 맥이없는 경우 걱정하지 마십시오. 23 00:01:07,000 --> 00:01:09,000 거기에 캠퍼스 자원은 충분합니다. 24 00:01:09,000 --> 00:01:15,000 그리고 다음에 우리가 만들 수 다른 애플리케이션의 2 큰 예를 충당하기 위해거야. 25 00:01:15,000 --> 00:01:19,000 오브젝티브-C는 C의 슈퍼 세트라는 것을 기술적합니다 26 00:01:19,000 --> 00:01:24,000 그 어떤 C 코드도 유효한 목표-C 코드입니다 것을 의미합니다. 27 00:01:24,000 --> 00:01:29,000 우리가 덕트의 종류 C.에 몇 가지 추가 기능에 녹화 있다는 것을 의미 28 00:01:29,000 --> 00:01:33,000 이러한 기능 중 일부는 다시 malloc을 작성하는가없는 등, 하느님 감사합니다 29 00:01:33,000 --> 00:01:36,000 더 그 바보 같은 포인터에 대해 걱정할 필요없고, 그들을 자유롭게하고 모든 걸 다 30 00:01:36,000 --> 00:01:40,000 당신은 C에 대한 미움, 그리고 나지 오브젝티브-C에 사라졌어. 31 00:01:40,000 --> 00:01:43,000 >> 이제 목표-C는 또한 훨씬 더 큰 표준 라이브러리가 있습니다 32 00:01:43,000 --> 00:01:47,000 그래서 당신은 Objective-C를 무료로 내부에 얻을 더 많은 기능이 있어요. 33 00:01:47,000 --> 00:01:50,000 우리가 PHP를 작성할 때 기억 우리의 간 것으로 나타났습니다 34 00:01:50,000 --> 00:01:54,000 당신이 할 수있는 이런 미친 짓의 거대한 도서관이 작은 언어입니다. 35 00:01:54,000 --> 00:01:56,000 같은 일이 iOS를에 발생합니다. 36 00:01:56,000 --> 00:01:59,000 이 불교 달력 등을위한 개체, 그리고 아무것도 37 00:01:59,000 --> 00:02:05,000 당신은 가능성이 아마도 오브젝티브-C의 구현에 이미 존재 생각할 수 있습니다. 38 00:02:05,000 --> 00:02:08,000 오브젝티브-C의 목적 부분은 뭔가를 참조합니다 39 00:02:08,000 --> 00:02:11,000 객체 지향 프로그래밍했다. 40 00:02:11,000 --> 00:02:14,000 이 새로운 개념의 종류이지만, 우리는 실제로 대부분 배운 41 00:02:14,000 --> 00:02:17,000 이미이 개념이 많습니다. 42 00:02:17,000 --> 00:02:19,000 객체 지향 프로그래밍에 대한 아이디어는 구성 할거야 있다는 것입니다 43 00:02:19,000 --> 00:02:23,000 이러한 것들이 주변에 코드의 많은 수업이라고 44 00:02:23,000 --> 00:02:26,000 이러한 수업은 정말 structs를 영화 롭게하고 있습니다. 45 00:02:26,000 --> 00:02:30,000 구조체의 내부 우리 기본적으로 여기 말은 일이 46 00:02:30,000 --> 00:02:32,000 이 점은 회원을 가질 수 있습니다. 47 00:02:32,000 --> 00:02:35,000 예를 들어, 연결된 목록에서 노드는 다른 일이 있어서요 수 48 00:02:35,000 --> 00:02:38,000 값 같은 목록에있는 다음 노드에 대한 포인터, 49 00:02:38,000 --> 00:02:44,000 함께 포인터를 그 값은 구조체의 한 인스턴스를 구성하는. 50 00:02:44,000 --> 00:02:47,000 제외하고는 수업은 매우 유사합니다 51 00:02:47,000 --> 00:02:50,000 수업은 그들 내부에 기능을 할 수 있습니다. 52 00:02:50,000 --> 00:02:54,000 우리가 구조체를 선언했을 때, 우리는 정수 n 또는 다음 노드 * 말을 수 있습니다. 53 00:02:54,000 --> 00:02:57,000 >> 지금 오브젝티브-C와 함께 우리는 실제로 기능을 넣을 수 있습니다 54 00:02:57,000 --> 00:02:59,000 그 일 안에. 55 00:02:59,000 --> 00:03:03,000 수업이 할 수있는 또 다른 점은, 그들은 다른 클래스에서 데이터를 상속 할 수 있습니다. 56 00:03:03,000 --> 00:03:07,000 예를 들어, 오브젝티브-C 클래스에 내장 된의 무리를보고됩니다. 57 00:03:07,000 --> 00:03:11,000 그 중 하나는 화면에 관점을 나타냅니다 클래스가 될 수 있습니다 58 00:03:11,000 --> 00:03:14,000 그래서 이런 말을 내가 직접보기를 구현하려면 59 00:03:14,000 --> 00:03:18,000 우리는 기본적으로 애플 중 누군가가, 아마도 정말 멋진 사람, 말 60 00:03:18,000 --> 00:03:21,000 날 위해이 클래스를 작성하고,이 버튼을 표시처럼 일을 처리 61 00:03:21,000 --> 00:03:25,000 또는 화면을 렌더링, 우리는 정말 아파하는 것 62 00:03:25,000 --> 00:03:28,000 모든 기능 우리 자신을 구현하는, 그래서 간단하게하여 63 00:03:28,000 --> 00:03:31,000 데이터를 상속 우리는 당신이 그 클래스에서 한 모든 것을 말할 수 64 00:03:31,000 --> 00:03:34,000 나는 또한 내 클래스의 내부로 누른 다음 나는 다른 일을 할거야 65 00:03:34,000 --> 00:03:37,000 즉 응용 프로그램을 구현합니다. 66 00:03:37,000 --> 00:03:40,000 증거가 그 단어 상속을 의미합니다. 우리는 더 구체적인 예를 볼 수 있습니다. 67 00:03:40,000 --> 00:03:42,000 >> 그리고 마지막으로, 객체 지향 프로그래밍과 키입니다 68 00:03:42,000 --> 00:03:45,000 이 데이터 캡슐화로 연결됩니다. 69 00:03:45,000 --> 00:03:48,000 우리 문제의 일부 설정에서는이 크고, 전역 변수를 가질 수 70 00:03:48,000 --> 00:03:51,000 사방에 전역, 우리가 주를 추적 할 방법입니다. 71 00:03:51,000 --> 00:03:55,000 수업을 통해 우리는 객체의 내부 정보를 캡슐화 시작할 수 있습니다. 72 00:03:55,000 --> 00:03:58,000 우리는 응용 프로그램에서 한 화면이 있으면, 우리는 정말로부터 데이터가 할 필요가 없습니다 73 00:03:58,000 --> 00:04:01,000 그 우리의 응용 프로그램 내부에서 다른 화면 74 00:04:01,000 --> 00:04:04,000 그래서 수업에서 물건을 캡슐화하여이 실제로 연결 75 00:04:04,000 --> 00:04:08,000 더 나은 코드 설계하고,이 추가 기능의 일부 수 있습니다 76 00:04:08,000 --> 00:04:11,000 오브젝티브-C의. 77 00:04:11,000 --> 00:04:15,000 Forewarning는 오브젝티브-C에 대한 구문은 바나나입니다. 78 00:04:15,000 --> 00:04:19,000 그것은 우리가 전에 이런 걸 본 적이 없네 있습니다 79 00:04:19,000 --> 00:04:22,000 그래서 학습 곡선이 익숙해지기의 작은 비트 80 00:04:22,000 --> 00:04:24,000 이 도대체 무엇을 의미합니까? 81 00:04:24,000 --> 00:04:27,000 하지만 일단은 정말, 정말 부드러워 초기 학습 곡선 것이 들어갈 82 00:04:27,000 --> 00:04:29,000 응용 프로그램을 작성할 수 있습니다. 83 00:04:29,000 --> 00:04:33,000 >> 여기 말을, 클래스를 선언하려면,이 존재, 내 수업입니다 84 00:04:33,000 --> 00:04:35,000 그리고 어쩌면 여기에 나중에 정의 할테니까 몇 가지입니다 85 00:04:35,000 --> 00:04:38,000 나는 @ 인터페이스를 말할거야. 86 00:04:38,000 --> 00:04:41,000 나는 @ 인터페이스를 말할거야. 내 클래스 이름을 주겠어. 87 00:04:41,000 --> 00:04:43,000 그리고 나중에 다른 곳에서 나는 @ 끝을 말할거야 88 00:04:43,000 --> 00:04:46,000 @ 인터페이스와 @ 끝 사이의 모든 89 00:04:46,000 --> 00:04:48,000 우리 반 될 것입니다. 90 00:04:48,000 --> 00:04:51,000 그게 우리. h 파일의 안에 뭐가 될 것입니다. 91 00:04:51,000 --> 00:04:55,000 그냥 C에서처럼 우리. h 파일은 기본적으로 존재하는 것 몇 가지가 여기에있다. 92 00:04:55,000 --> 00:04:57,000 나는 반드시, 그들은 아직 무엇을 말 안 할거야 93 00:04:57,000 --> 00:04:59,000 하지만 컴파일러는 그 존재를 알아야합니다. 94 00:04:59,000 --> 00:05:04,000 나중에 안에 우리. m의 파일 - 때문에 오브젝티브-C에 대한 m 95 00:05:04,000 --> 00:05:08,000 어디 우리가 실제로 이러한 클래스가 정의 할거야 있습니다. 96 00:05:08,000 --> 00:05:11,000 대부분의. C 파일처럼, 우리는 기능에 대한 구현을 제공했습니다. 97 00:05:11,000 --> 00:05:15,000 내부의. m 파일에 우리가 여기서 무슨 말을하는 것은 무엇인지 기능의 모든 98 00:05:15,000 --> 00:05:18,000 다들 어떻게 내 수업 - 일의 내부. 99 00:05:18,000 --> 00:05:22,000 그리고 마지막으로, 내부 구조체의 우리가 그 중괄호 안에 말할 수 100 00:05:22,000 --> 00:05:25,000 INT n 또는 노드 * 다음, 101 00:05:25,000 --> 00:05:28,000 및 목표-C에서 우리는, 키워드에게 @ 속성을 사용 할거야 102 00:05:28,000 --> 00:05:31,000 이 방법은 속성을 정의 할 수있어 103 00:05:31,000 --> 00:05:36,000 또는 내 수업의 한 부분이 아닌 기능. 104 00:05:36,000 --> 00:05:40,000 >> 오브젝티브-C 함수를 호출하면 또한 바나나입니다. 105 00:05:40,000 --> 00:05:43,000 우리가 C에서 함수를 선언했을 때 우리는 INT foo는 같은 말을 106 00:05:43,000 --> 00:05:46,000 다음 괄호 개방하고 그것을 인수의 목록을했다. 107 00:05:46,000 --> 00:05:51,000 이 메서드 나 함수를 선언하는 오브젝티브-C의 모습입니다. 108 00:05:51,000 --> 00:05:54,000 나는 함수 나 메서드를 선언하려면 109 00:05:54,000 --> 00:05:58,000 제가 방법을 말하는 곳은 정말 클래스의 멤버 단지 기능입니다 110 00:05:58,000 --> 00:06:01,000 교환 종류의,하지만 정말, 그래서 111 00:06:01,000 --> 00:06:03,000 내부 내 방식을 그래서 나는 새로운 방법을 만들려면. 112 00:06:03,000 --> 00:06:06,000 그것은 아무것도 돌아 오지거야, 그래서 유형 무효 될거야. 113 00:06:06,000 --> 00:06:08,000 이건 내 함수의 반환 유형입니다. 114 00:06:08,000 --> 00:06:11,000 - 난 있기 때문에 모르는 지금 우리가 여기 parens 있습니다. 115 00:06:11,000 --> 00:06:14,000 다음 내 함수의 이름 것​​입니다 116 00:06:14,000 --> 00:06:17,000 그리고 마지막으로 우리는 우리가 C.에 있던 같은 세미콜론이 117 00:06:17,000 --> 00:06:19,000 여기서 새로운 것은 여기에 사람입니다. 118 00:06:19,000 --> 00:06:22,000 이 하이픈 실제로 필요하고, 무슨 말하는 것은입니다 119 00:06:22,000 --> 00:06:26,000 여기에서이 방법은 클래스의 인스턴스에서 호출해야합니다. 120 00:06:26,000 --> 00:06:29,000 >> 우리 structs을 선언 한 후 우리는 아마 말하기를 121 00:06:29,000 --> 00:06:32,000 구조체 노드 N, 실제로 만든 122 00:06:32,000 --> 00:06:35,000 제가 실제로 작업을 시작 할 수 있도록 또는 그 structs 중 하나를 인스턴스화 123 00:06:35,000 --> 00:06:38,000 그것의 안에 뭐가와 함께,이 대시 우리가해야 것을 의미합니다 124 00:06:38,000 --> 00:06:41,000 우리가 인스턴스화 좋아 클래스를 인스턴스화 그 구조체 125 00:06:41,000 --> 00:06:43,000 우리는에이 메소드를 호출하기 전에. 126 00:06:43,000 --> 00:06:46,000 내 방법에 인자를 추가하려면 127 00:06:46,000 --> 00:06:48,000 훨씬 더 바나나를 얻을 수 있습니다. 128 00:06:48,000 --> 00:06:50,000 여기 내 방법 이름입니다. 129 00:06:50,000 --> 00:06:53,000 그럼 결장거야,이 콜론 후 여기에 말하는 것은 어떤 인수를 제공합니다. 130 00:06:53,000 --> 00:06:56,000 이 방법은 하나의 인수 걸립니다. 131 00:06:56,000 --> 00:06:59,000 그 인수의 유형은 정수, 그 인수의 이름입니다 132 00:06:59,000 --> 00:07:03,000 또는 나는 방법의 내부를 사용 거라는 변수는 전이라고합니다. 133 00:07:03,000 --> 00:07:05,000 다시 말하지만,이 방법입니다. 그것은 하나의 인수 걸립니다. 134 00:07:05,000 --> 00:07:10,000 >> 더 많은 인수를 추가하려는 경우가 더 많은 바나나를 얻을 수 135 00:07:10,000 --> 00:07:13,000 그 안에 우리가 여기 있다고이 결장은 인자 내 목록을 제공하고 있습니다. 136 00:07:13,000 --> 00:07:15,000 첫 번째 인수는 정수입니다. 137 00:07:15,000 --> 00:07:17,000 자,이 두 번째 인수는 흥미 롭습니다. 138 00:07:17,000 --> 00:07:20,000 내 함수의 내부 사용 할테니까 변수 139 00:07:20,000 --> 00:07:23,000 안으로 내 기능의 내가 말할 수있는, F라고 140 00:07:23,000 --> 00:07:25,000 F + = 1이나 뭐. 141 00:07:25,000 --> 00:07:30,000 여기이 것은 기본적으로 그 인수 또는 매개 변수에 대한 키입니다. 142 00:07:30,000 --> 00:07:34,000 우리는 키 값 쌍을했고 JSON 또는 연관 배열 같은 것처럼 143 00:07:34,000 --> 00:07:37,000 목표-C는 정말 분명 그냥, 알 겠지라고하기로 결정했습니다 144 00:07:37,000 --> 00:07:39,000 당신은 이러한 모든 매개 변수가 어떤 메서드를 호출 할 때 145 00:07:39,000 --> 00:07:41,000 사실은 그들 모두의 이름을거야. 146 00:07:41,000 --> 00:07:45,000 당신이 메서드를 호출 할 때, 사실 andFloat 말을합니다 147 00:07:45,000 --> 00:07:47,000 그리고 당신은 그것을 들어 전달됩니다 148 00:07:47,000 --> 00:07:50,000 >> 흥미롭게도,이 사람은 이름이 있지만 다른 매개 변수의 모든은하지 않습니다 149 00:07:50,000 --> 00:07:53,000 우리는 제 3 인자가 있다면 그래서 내가 andFloat을 말할 수 150 00:07:53,000 --> 00:07:56,000 다른 부동 등. 151 00:07:56,000 --> 00:08:01,000 난이 메서드를 호출 할 때 물론 바나나입니다 152 00:08:01,000 --> 00:08:04,000 나는 객체를 가지고 있고, 나는 foo를 호출하는 방법을 정의하므로 경우 153 00:08:04,000 --> 00:08:09,000 나는 foo를 열고 / 닫기 parens 말을 전화 대신 할 154 00:08:09,000 --> 00:08:11,000 나는 브래킷을 열거야. 155 00:08:11,000 --> 00:08:13,000 여기 내 메서드의 이름입니다. 156 00:08:13,000 --> 00:08:17,000 나는 브래킷을 닫거야,이 내가 거기에에 전화를 해 개체입니다. 157 00:08:17,000 --> 00:08:20,000 단, 이러한 방법의 모든 수업 내에 존재 158 00:08:20,000 --> 00:08:23,000 수업은 그들 내부에 정의 된 메소드를 가질 수 있습니다 때문입니다. 159 00:08:23,000 --> 00:08:26,000 >> 난 여기 임의로 어떤 클래스의 객체를 생성 한 160 00:08:26,000 --> 00:08:28,000 이은 그것을 수행하는 구문입니다. 161 00:08:28,000 --> 00:08:31,000 개체를 만들 2 단계가 있습니다. 162 00:08:31,000 --> 00:08:34,000 첫 번째 단계는 내가 공간을 할당하고 싶을 것입니다. 163 00:08:34,000 --> 00:08:37,000 이 malloc의 동일합니다. 우리는 더 이상 malloc 말을 할 필요가 없습니다. 164 00:08:37,000 --> 00:08:42,000 우리는 m을 놓고 all​​oc을했고,. m로. C를 대체했습니다. 165 00:08:42,000 --> 00:08:47,000 우리 alloc 뭔가 후 우리는 다음을 초기화해야합니다. 166 00:08:47,000 --> 00:08:49,000 기본적으로 객체를 생성 할 때 일부 논리를 할 수도 있습니다 167 00:08:49,000 --> 00:08:53,000 그들이 생성 할 때 실행 즉, 그래서 당신은 몇 가지 기본 값을 전달할 수 있습니다 168 00:08:53,000 --> 00:08:57,000 정도 그런 식으로,이 초기화 방법은 실제로 객체를 생성 일입니다. 169 00:08:57,000 --> 00:08:59,000 우리는 먼저 우리가 C에서했던 것처럼 공간을 할당 170 00:08:59,000 --> 00:09:04,000 그리고 우리는 나 많은 작업을 수행 할 수 없습니다 수있는, 그것을 초기화합니다. 171 00:09:04,000 --> 00:09:07,000 그런 다음 우리는 객체 O에이 일을 반환하고 있습니다. 172 00:09:07,000 --> 00:09:09,000 이 기술적으로 포인터이기 때문에 스타가 여기있다 173 00:09:09,000 --> 00:09:12,000 하지만 포인터가 해당 오브젝티브-C의 큰 거래 더 이상 없으며, 걱정하지 마십시오. 174 00:09:12,000 --> 00:09:15,000 >> 이제 우리는, NSObject이라는 클래스를 인스턴스화 한 175 00:09:15,000 --> 00:09:19,000 이은 애플이 가지고 임의의 클래스입니다. 176 00:09:19,000 --> 00:09:22,000 우리는이 인스턴스화 한 결과, 지금은이 클래스의 인스턴스를 177 00:09:22,000 --> 00:09:25,000 이 객체 O에, 그래서 내가 정의하는 경우 의미 178 00:09:25,000 --> 00:09:29,000 이러한 방법이처럼 전화를 수 있습니다. 179 00:09:29,000 --> 00:09:31,000 마찬가지로, 내가 한 인수와 메소드를 호출하고자 할 경우, 180 00:09:31,000 --> 00:09:34,000 이 막대 방법입니다 그래서 그건 하나의 인수 걸립니다 181 00:09:34,000 --> 00:09:38,000 qux 방법,이 2 인수를 : 여기 Baz도 있습니다. 182 00:09:38,000 --> 00:09:44,000 여기에는이 객체 O에 하나 함수를 호출합니다. 183 00:09:44,000 --> 00:09:46,000 이해가가? 184 00:09:46,000 --> 00:09:50,000 문법은 이해한다,하지만 당신은 가지에 익숙해 져야. 185 00:09:50,000 --> 00:09:54,000 >> 좋아, 오브젝티브-C에 내장되는 몇 가지에 대해 얘기해 보자고 186 00:09:54,000 --> 00:09:56,000 그는 반드시 C.에 내장되지 않았습니다 187 00:09:56,000 --> 00:09:59,000 C에서 우리는 가지,이 바보 같은 문자 배열로 문자열을 처리했다 188 00:09:59,000 --> 00:10:01,000 그리고 신경에 거슬려있어. 189 00:10:01,000 --> 00:10:04,000 오브젝티브-C는 우리에 지어진 사람들을 가지고 있으며, 그것은 년에 지어있어 190 00:10:04,000 --> 00:10:06,000 NSString이라는 클래스를 사용합니다. 191 00:10:06,000 --> 00:10:10,000 난 우리가 더 많은 마법 구문을 NSString을 생성 할 때. 192 00:10:10,000 --> 00:10:15,000 오히려 우리가 @ "cs50"라고 "cs50"을 말하는 것보다 193 00:10:15,000 --> 00:10:17,000 이는 오브젝티브-C에서 문자열을 선언에 대한 구문입니다. 194 00:10:17,000 --> 00:10:21,000 이 잊지 그래서 .. 할 매우 쉽습니다. 195 00:10:21,000 --> 00:10:24,000 이제 한 번 이거 내가이 문자열이지만, 발견 196 00:10:24,000 --> 00:10:26,000 그것은 정말로 단지 객체입니다. 197 00:10:26,000 --> 00:10:30,000 내가 말했듯이 난 클래스를 인스턴스화 의미 NSString, 198 00:10:30,000 --> 00:10:32,000 다른 사람이 나를 위해 쓴 NSString,라고 199 00:10:32,000 --> 00:10:35,000 그리고 그 자식들이 그것에 대해 아주 좋은했고, 200 00:10:35,000 --> 00:10:37,000 내가 그 위에 메서드를 호출 시작할 수 있습니다. 201 00:10:37,000 --> 00:10:40,000 이 객체들에 메소드 길이를 호출하는 경우 202 00:10:40,000 --> 00:10:43,000 나에게 문자열의 길이를 반환하는거야. 203 00:10:43,000 --> 00:10:45,000 이 C.에 불과 나 strlen 같다 204 00:10:45,000 --> 00:10:47,000 이 4를 반환합니다. 205 00:10:47,000 --> 00:10:51,000 >> 마찬가지로, 내 관심 할 수도 있습니다 다른 방법이 characterAtIndex입니다. 206 00:10:51,000 --> 00:10:54,000 이이 문자열 s의라는 방법입니다 207 00:10:54,000 --> 00:10:57,000 당신이 0번째 문자 받기를 원하는 208 00:10:57,000 --> 00:10:59,000 그리고 이건 내가 문자 C에 돌아 가기 209 00:10:59,000 --> 00:11:02,000 그리고 당신이 정말로 쉽게 Google 수있는 이러한 방법 훨씬 더 무리가 있습니다. 210 00:11:02,000 --> 00:11:07,000 애플의 설명서가 멋지네요, 우리는 조금에 해당 살펴됩니다. 211 00:11:07,000 --> 00:11:09,000 이러한 문자열입니다. 212 00:11:09,000 --> 00:11:11,000 우리는 또한 가변 크기 배열은 내장했습니다 213 00:11:11,000 --> 00:11:13,000 우리가 배열을 선언 할 때 C에 기억 214 00:11:13,000 --> 00:11:16,000 우리는 당신이 다섯 요소, 이야기의 끝이 말을했다. 215 00:11:16,000 --> 00:11:18,000 우리가 자바 스크립트와 PHP에 도착했을 때 우리는 시작할 수 216 00:11:18,000 --> 00:11:20,000 요소를 추가하거나 요소를 이동 같은 일을. 217 00:11:20,000 --> 00:11:22,000 우리는 목표-C에서 동일한 작업을 수행 할 수 있습니다. 218 00:11:22,000 --> 00:11:26,000 일반 C의 방법으로 배열을 만드는 것보다 219 00:11:26,000 --> 00:11:30,000 다시 NSMutableArray라는 다른 클래스가 있습니다. 220 00:11:30,000 --> 00:11:33,000 , NSArray도 있어요 221 00:11:33,000 --> 00:11:35,000 이 기본적으로 몇 가지 배열을 캡슐화 예정이다. 222 00:11:35,000 --> 00:11:38,000 이게 내가하고 싶은 가장 먼저 내가 할당 싶은 말 223 00:11:38,000 --> 00:11:41,000 새로운 배열을위한 공간, 그리고 제가 할당 한 후 224 00:11:41,000 --> 00:11:43,000 나는 그것을 초기화해야합니다. 225 00:11:43,000 --> 00:11:45,000 다시, 다음이 메서드를 호출. 226 00:11:45,000 --> 00:11:48,000 이것 만이이 객체의 내부를 의미 227 00:11:48,000 --> 00:11:50,000 난 거기에 빈 배열 앉아있다. 228 00:11:50,000 --> 00:11:54,000 내가이 배열에 뭔가를 추가하려면, 내가 addObject 메소드를 호출 할 수 있습니다. 229 00:11:54,000 --> 00:11:59,000 나는 배열에 객체를 추가하려면, 그리고 문자열 CS50을 추가하고 싶습니다. 230 00:11:59,000 --> 00:12:02,000 나는 반대로 내가 무슨 말을 할 수있는 제거하려고하면 제가 직접 231 00:12:02,000 --> 00:12:09,000 배열에서 첫 번째 장소에서 개체를 제거하거나를 반대합니다. 232 00:12:09,000 --> 00:12:11,000 >> 이해가가? 233 00:12:11,000 --> 00:12:14,000 좋아요, 가지이 평방 브래킷 것에 익숙해 질. 234 00:12:14,000 --> 00:12:18,000 그건 그렇고, 애플의 도서관의 많은의 안쪽이 NS를 볼 수 있습니다. 235 00:12:18,000 --> 00:12:21,000 NS는 실제로 스티브 잡스 첫번째 회사 중 하나 다음 단계, 약자 236 00:12:21,000 --> 00:12:24,000 이 사람이 정말 코드를 많이 쓰기 시작한 어디 그게 237 00:12:24,000 --> 00:12:27,000 맥 OS X 및 기타 물건에 대한 기준의 종류로, 238 00:12:27,000 --> 00:12:32,000 그래서이 NS이 좋은 유산의 종류는 이전 회사 중 하나 알아 두길 바란다 is 239 00:12:32,000 --> 00:12:34,000 다시 애플이 먼저 알아 시작되었을 때. 240 00:12:34,000 --> 00:12:36,000 사방에있어. 241 00:12:36,000 --> 00:12:41,000 의는보다 전체적인 오브젝티브-C의 예를 살펴 보자. 242 00:12:41,000 --> 00:12:44,000 난 여기 엑스의 내부입니다. 243 00:12:44,000 --> 00:12:47,000 여기 얻으려면, 내가 먼저 앱 스토어에서 엑스 코드를 다운로드 244 00:12:47,000 --> 00:12:50,000 내가 파일에 여기에 가서 그것을 열어, 그리고 245 00:12:50,000 --> 00:12:54,000 여기에 새로운 한 다음 프로젝트에. 246 00:12:54,000 --> 00:12:57,000 나는 내가 작성하고자하는 모든이 옵션을 가지고 수행 한 후, 247 00:12:57,000 --> 00:12:59,000 그래서 우리는 나중에이 옵션을 살펴볼 것이다 248 00:12:59,000 --> 00:13:03,000 하지만 이번 예를 들어, 왜냐면 우린 사실, 아직 앱이 할 수 없어 249 00:13:03,000 --> 00:13:06,000 난 여기 와서, 나는 명령 줄 도구 말했다 250 00:13:06,000 --> 00:13:09,000 그리고 이건 나 명령 줄에서 실행할 수있는 응용 프로그램입니다 251 00:13:09,000 --> 00:13:12,000 우리는 C.에서 실행 된 것처럼 252 00:13:12,000 --> 00:13:16,000 , 그게 내가이 프로젝트를 생성하는 방법이고, 그래서 지금 여기 253 00:13:16,000 --> 00:13:20,000 그래서이 파일의 최초의 모습을 보자,이 아주 낯이 익은해야합니다. 254 00:13:20,000 --> 00:13:24,000 나는 정수 이름이있다. 제 친구 argc, 내 다른 친구 argv가 있어요. 255 00:13:24,000 --> 00:13:30,000 그래서 우리는이 처음 오브젝티브-C 응용 프로그램에 대한 진입 점입니다 볼 수 있습니다. 256 00:13:30,000 --> 00:13:32,000 여기 지금이 무시할 수 있습니다. 257 00:13:32,000 --> 00:13:35,000 이것은 기본적으로 몇 가지 메모리 관리 콘텐츠입니다 안 그렇게된다 258 00:13:35,000 --> 00:13:37,000 그런 일들에 대해 걱정해야합니다. 259 00:13:37,000 --> 00:13:39,000 >> 여기에 첫 번째 블록을 살펴 보자. 260 00:13:39,000 --> 00:13:46,000 이 첫 번째 줄, 나는 학생 말한다면 * 앨리스 = [[학생 alloc] 초기화] 어떤 일을하는거야? 261 00:13:46,000 --> 00:13:50,000 여기에 첫 번째 학생이 아마 클래스입니다. 262 00:13:50,000 --> 00:13:54,000 이 애플가 쓴 클래스는 아니지만 내가 쓴 클래스입니다. 263 00:13:54,000 --> 00:13:57,000 내가 원하는 첫 번째 문제는, 나는 새로운 학생을위한 공간을 할당 할 수 있습니다 264 00:13:57,000 --> 00:14:00,000 그럼 내가 그것을 초기화하려면,이 저를 다시 제공 265 00:14:00,000 --> 00:14:05,000 이 새로운 학생 객체, 나는 앨리스라는 변수에이 저장거야. 266 00:14:05,000 --> 00:14:07,000 그 클래스는 어디에서 왔는가? 267 00:14:07,000 --> 00:14:12,000 자, 여기 왼쪽에이 사람은 내 프로젝트의 내부에 서로 다른 파일에 있습니다. 268 00:14:12,000 --> 00:14:16,000 우리는 내가 Student.h과 Student.m을 여기에서 볼 수 있습니다. 269 00:14:16,000 --> 00:14:20,000 나는 모든 일을 선언 곳. H 파일은 기억입니다 270 00:14:20,000 --> 00:14:22,000 그 클래스 내에 존재합니다. 271 00:14:22,000 --> 00:14:25,000 >> 씨가를 살펴 보자. 272 00:14:25,000 --> 00:14:29,000 자, 여기 우리는이 @ 인터페이스를 가지고 있고,이 온다라고 273 00:14:29,000 --> 00:14:33,000 우리 반 내에 존재합니다 모든 선언. 274 00:14:33,000 --> 00:14:36,000 그럼 내가 콜론가 있습니다. 그런 다음이 NSObject 가지가 있습니다. 275 00:14:36,000 --> 00:14:40,000 이 결장은 우리가 조금 일찍 대해 얘기하고 있었어요 그 상속 비트를 의미합니다. 276 00:14:40,000 --> 00:14:43,000 이 말 NSObject가 할 수있는 건 다 277 00:14:43,000 --> 00:14:46,000 NSObject 다른 사람에 의해 쓰여진이 ​​클래스, 어디에 278 00:14:46,000 --> 00:14:50,000 그 일을 할 수 있도록하려면이 NSObject가 할 수있는 건 다. 279 00:14:50,000 --> 00:14:54,000 말을하면 : NSObject를 그 내가 기본적으로 의미 280 00:14:54,000 --> 00:14:58,000 다른 클래스의 기능을 모두 상속. 281 00:14:58,000 --> 00:15:02,000 그건 정말 내게 내가 사용할 수있는 다양한 메서드와 속성을 아주 많이했다. 282 00:15:02,000 --> 00:15:05,000 여기로 I 2 속성을 만들려고합니다. 283 00:15:05,000 --> 00:15:08,000 이 구조체라면 내 학생을 의미, 이것들은 2 가지 것 284 00:15:08,000 --> 00:15:11,000 내부 내 구조체의, 그래서 모든 학생은 이름이 285 00:15:11,000 --> 00:15:14,000 , 그 문자열이며, 학생은 성적이 286 00:15:14,000 --> 00:15:17,000 이는 정수입니다. 287 00:15:17,000 --> 00:15:23,000 >> 마지막으로, 여기 내 학생을위한 방법을 만들거야. 288 00:15:23,000 --> 00:15:26,000 , 나는 initWithName, 내 방법이라고하며, 하나의 인수를 289 00:15:26,000 --> 00:15:31,000 그 인자는 문자열이고, 나는 이름을했다. 290 00:15:31,000 --> 00:15:35,000 지금의 우리가 실제로 클래스를 구현하는 방법 살펴 보도록하겠습니다. 291 00:15:35,000 --> 00:15:38,000 여기, 지금, 내. m 파일 안에있는거야 292 00:15:38,000 --> 00:15:40,000 구현을위한 m는 것 같아요. 293 00:15:40,000 --> 00:15:44,000 난 내 마지막 내 구현을 이용하고, 실제로 정의 곳 여기에 294 00:15:44,000 --> 00:15:47,000 어떤 initWithName는 않습니다. 295 00:15:47,000 --> 00:15:50,000 그때 나는 initWithName, 내 매개 변수의 이름, 그리고이 있습니다 296 00:15:50,000 --> 00:15:53,000 나는 실제로 학생을 만드는 곳입니다 297 00:15:53,000 --> 00:15:56,000 그래서이 조금 이상한이지만,이 틀에 박힌 어떤 종류의 298 00:15:56,000 --> 00:15:58,000 귀하의 생성자에 포함 할. 299 00:15:58,000 --> 00:16:02,000 여기이 초기화 기능, initWithName는 생성자의 한 유형입니다. 300 00:16:02,000 --> 00:16:05,000 당신은 기본적으로 새로운 학생 객체를 구축하고 301 00:16:05,000 --> 00:16:07,000 그리고 아마도 내부에 일부 데이터를 보내는 중입니다. 302 00:16:07,000 --> 00:16:11,000 내가 원하는 가장 먼저 내가이 슈퍼 건에 INIT 전화 해입니다. 303 00:16:11,000 --> 00:16:15,000 >> 기억이 나는. H​​ 파일에 다시 이곳에 말했을 때 304 00:16:15,000 --> 00:16:21,000 그 모든 NSObject는 학생도 있습니다 있습니다. 305 00:16:21,000 --> 00:16:24,000 그게 내가 내가 또한 그럴 거라 할 것은 학생을 만들 때 의미 306 00:16:24,000 --> 00:16:28,000 확인 그게 내가에서 해당 데이터를 모두 상속하는 건 NSObject 307 00:16:28,000 --> 00:16:32,000 또한 제대로 초기화됩니다. 308 00:16:32,000 --> 00:16:36,000 내가 무슨 말을 할 필요하시면이 대단해 실제로 부모 클래스를 참조 것입니다 309 00:16:36,000 --> 00:16:39,000 난에서 상속하는 건, 그래서 내가 초기화되었는지 확인하려면 310 00:16:39,000 --> 00:16:43,000 제가 사용하려는 시작하기 전에 제가에 따라 건 다. 311 00:16:43,000 --> 00:16:46,000 그 초기화하는 경우 다음 올바르게을 말하는 것입니다 경우 malloc 312 00:16:46,000 --> 00:16:50,000 null을 반환하지 않은 것은 그럼 내가 일부 속성을 설정 시작할 수 있습니다. 313 00:16:50,000 --> 00:16:54,000 >> 자바 스크립트와 PHP에서 우리는이 키워드는이라고했다 314 00:16:54,000 --> 00:16:58,000 그리고이 클래스의 현재 인스턴스에 언급했다. 315 00:16:58,000 --> 00:17:00,000 오브젝티브-C에서는이 자기를 호출합니다. 316 00:17:00,000 --> 00:17:04,000 나는 self.name 말을 할 때, 그 의미는 개체 317 00:17:04,000 --> 00:17:07,000 제가 학생 alloc는 INIT 말했을 때 난 그냥 생성 318 00:17:07,000 --> 00:17:09,000 그 객체를 돌려 받기 위해거야. 319 00:17:09,000 --> 00:17:12,000 즉, 나는 개체의 이름을 설정하려면 320 00:17:12,000 --> 00:17:15,000 난 그냥 인치 전달 무엇이든에 321 00:17:15,000 --> 00:17:18,000 C에서 맘에 들어요, 우리는이 점으로 회원에 액세스 322 00:17:18,000 --> 00:17:21,000 그래서 self.name는 학생 개체의 이름을 말 323 00:17:21,000 --> 00:17:24,000 이제 방금 들어 전달 무엇이든 될거야 324 00:17:24,000 --> 00:17:28,000 나는 실제로 무언가를 되 찾을 수 있도록 그리고 마지막으로, 내가 돌아갈 수 있습니다. 325 00:17:28,000 --> 00:17:30,000 >> 질문이 있으십니까? 326 00:17:30,000 --> 00:17:34,000 좋아,이 자체가 = 슈퍼는 INIT 327 00:17:34,000 --> 00:17:37,000 당신은 완전히 상속 물건을 이해하지 않으면 걱정하지 마십시오. 328 00:17:37,000 --> 00:17:40,000 그냥 알아 본 적 자신의 초기화 방법을하려는 경우 만 329 00:17:40,000 --> 00:17:42,000 그렇게, 당신은 갈 좋은 수 있습니다. 330 00:17:42,000 --> 00:17:44,000 그래. >> [학생] 만약 자기 무슨 뜻인가요? 331 00:17:44,000 --> 00:17:49,000 이는 때 우리는 malloc은 널 (null)와 동일하다고한다면 우리는 항상 확인 무언가를, 332 00:17:49,000 --> 00:17:51,000 가 널 (null)이었다되면, 우리는 종료. 333 00:17:51,000 --> 00:17:55,000 이 반환 null이 경우, 우리는 아마도 감금 잘못에 갈거야 때문 같은 일이 334 00:17:55,000 --> 00:17:57,000 우리가 그것을 조작하는 시작하는 경우. 335 00:17:57,000 --> 00:18:01,000 그게 우리 학생들의 수업입니다. 336 00:18:01,000 --> 00:18:03,000 우리는 두 가지 방법 중 하나를 사용하여 학생들을 초기화 할 수 있다는 것을 뜻한다. 337 00:18:03,000 --> 00:18:08,000 제가 학생 alloc가 INIT 말을하면 난 그냥 쓴 그 방법을 사용하지 않을거야 338 00:18:08,000 --> 00:18:11,000 대신 나는 단순히 alice.name 말을 할 수 339 00:18:11,000 --> 00:18:14,000 지금은 그 속성 이름을 설정하는거야. 340 00:18:14,000 --> 00:18:17,000 >> 마찬가지로, 그 initWithName 방법을 사용하려면 341 00:18:17,000 --> 00:18:20,000 난 단지 alloc 말을하고보다는 초기화라고 할 수 342 00:18:20,000 --> 00:18:24,000 제가 방금 만든 그 메소드를 호출하려고, 나는 밥에 통과거야. 343 00:18:24,000 --> 00:18:30,000 이 시점에서,이 개체 밥은 밥와 같은 이름이 있습니다. 344 00:18:30,000 --> 00:18:35,000 자, 여기 나는 우리가 이전 바라 보았다 있다는 NSMutableArray를 사용하고 있습니다. 345 00:18:35,000 --> 00:18:38,000 나는 새로운 배열을 초기화 중이 space.Then을 할당거야. 346 00:18:38,000 --> 00:18:40,000 나는 거기에 2 가지를 추가 할거야. 347 00:18:40,000 --> 00:18:43,000 이 배열은 지금 학생 개체를 보유하고 있습니다. 348 00:18:43,000 --> 00:18:46,000 아무데도 내가이 학생들의 배열이라고 할 필요가 없습니다 않은 것을 확인할 수 있습니다. 349 00:18:46,000 --> 00:18:48,000 나는 배열, 기간 있다고 말했다. 350 00:18:48,000 --> 00:18:50,000 그래서 내가 원하는 그 무엇이든 안에 넣을 수 있습니다. 351 00:18:50,000 --> 00:18:52,000 나 여기 2 개체가 있습니다. 352 00:18:52,000 --> 00:18:56,000 >> 마지막으로, 나는, 여기있는이 TF를 다른 개체가 있습니다. 353 00:18:56,000 --> 00:18:59,000 여기 TF.h에 이상 기본적으로 같은 일. 354 00:18:59,000 --> 00:19:01,000 나는 NSObject에서, 그리고 방법에 의해 상속 있어요 355 00:19:01,000 --> 00:19:03,000 당신이 수업을 만들 때이 모든 당신을 위해 수행됩니다, 356 00:19:03,000 --> 00:19:06,000 인터페이스 틀에 박힌 이런 종류의. 357 00:19:06,000 --> 00:19:08,000 그것은 학생들의 속성이 있습니다. 358 00:19:08,000 --> 00:19:15,000 나는 몇 방법은 여기 정말 많은을하지 않는이 359 00:19:15,000 --> 00:19:18,000 그래서 내가이 TF 객체를 생성 한 후 의미 360 00:19:18,000 --> 00:19:23,000 이렇게 생각에서이 메소드 등급을 호출 할 수 있습니다. 361 00:19:23,000 --> 00:19:26,000 오브젝티브-C 구문에 대한 질문 우리가 좀 더로 이동을 시작하기 전에 362 00:19:26,000 --> 00:19:30,000 흥미로운 애플리케이션을 개발 일? 363 00:19:30,000 --> 00:19:34,000 >> 좋아, 그럼의 실제로 아이폰 앱을 보자. 364 00:19:34,000 --> 00:19:39,000 아이폰 앱의 당신은 내부 사용한다고 핵심 클래스는 뷰 컨트롤러라고합니다 365 00:19:39,000 --> 00:19:42,000 그리고 뷰 컨트롤러는 기본적으로 한 화면을 나타냅니다 366 00:19:42,000 --> 00:19:46,000 앱의 내부, 그래서 예를 들어, 음악 응용 프로그램에면 367 00:19:46,000 --> 00:19:50,000 하나의보기 컨트롤러 내 아이폰에있는 모든 노래를 볼 수있는보기를 나타냅니다 수 있습니다. 368 00:19:50,000 --> 00:19:53,000 제가 노래를 클릭하고 재생을 시작할 때 또 다른 뷰 컨트롤러가 될 수 369 00:19:53,000 --> 00:19:55,000 아니면 아티스트로 내려 드릴 뿐이야. 370 00:19:55,000 --> 00:19:59,000 이러한 서로 다른 화면의 각은 다른 뷰 컨트롤러로 표현 될 수 371 00:19:59,000 --> 00:20:04,000 그리고 뷰 컨트롤러 정말이 화면 작동 방법이있다, 단지 클래스입니다. 372 00:20:04,000 --> 00:20:07,000 뷰 컨트롤러의 내부 상황은, 우리는 속성을 할거야 373 00:20:07,000 --> 00:20:10,000 그래서 버튼 등은 우리의 뷰 컨트롤러의 속성 될 것입니다. 374 00:20:10,000 --> 00:20:13,000 >> 우리는 또한 방법을받을거야,이 기본적으로 이벤트 핸들러입니다. 375 00:20:13,000 --> 00:20:16,000 이 방법은 당신이 버튼을 누르면 말한다 376 00:20:16,000 --> 00:20:19,000 나는 결국 다시 일을하려는 377 00:20:19,000 --> 00:20:24,000 우리는 현재의 인스턴스에 액세스하려면이 자기 ​​키워드를 사용하려고하고 있습니다. 378 00:20:24,000 --> 00:20:29,000 iOS를에 인터페이스를 구축하기 위해서는 실제로 정말, 정말 간단합니다. 379 00:20:29,000 --> 00:20:32,000 그들은이 좋은 드래그 앤 드롭 인터페이스 빌더라는 인터페이스를 가지고 380 00:20:32,000 --> 00:20:37,000 그리고 2 핵심 개념 귀하의 목표-C까지 인터페이스 빌더로 와이어 381 00:20:37,000 --> 00:20:40,000 IBOutlet과 IBAction 있습니다. 382 00:20:40,000 --> 00:20:44,000 IBOutlet는 단순히, 당신은 버튼이 속성을 선언하는 경우 있다고 383 00:20:44,000 --> 00:20:47,000 그리고 당신은 실제 UI에서 뭔가에 연결하려면 384 00:20:47,000 --> 00:20:49,000 그게 콘센트 이래요거야. 385 00:20:49,000 --> 00:20:51,000 마찬가지로, 당신은 이벤트 핸들러를 대표하려는 경우 386 00:20:51,000 --> 00:20:54,000 다음은 행동은 말거야. 387 00:20:54,000 --> 00:20:57,000 >> 실제로 그래픽 표현을 송금하려면 388 00:20:57,000 --> 00:21:00,000 귀하의 코드는 정말, 정말 간단합니다. 389 00:21:00,000 --> 00:21:03,000 당신이 IBOutlet를 연결하려는 경우, 당신이해야 할 모든 당신이 클릭 컨트롤입니다 390 00:21:03,000 --> 00:21:05,000 우리는이 정말 빠른의 예를 볼 수 있습니다. 391 00:21:05,000 --> 00:21:07,000 보기 컨트롤러가 있다고 어디를 클릭을 관리 할 수​​ 있습니다. 392 00:21:07,000 --> 00:21:09,000 당신은 반대로 인터페이스로 끌어 갈거나하는 393 00:21:09,000 --> 00:21:13,000 당신이 이벤트 핸들러를 연결하려는 경우 인터페이스에서 드래그 할거야 394 00:21:13,000 --> 00:21:15,000 다른 방향으로. 395 00:21:15,000 --> 00:21:20,000 의는 아주 간단 iOS를 예를 살펴 보자. 396 00:21:20,000 --> 00:21:23,000 >> 의는 새 프로젝트를 만들 수 있습니다. 397 00:21:23,000 --> 00:21:25,000 나는 응용 프로그램에 여기에 온거야 398 00:21:25,000 --> 00:21:28,000 나는 싱글보기 응용 프로그램을 누릅니다거야. 399 00:21:28,000 --> 00:21:31,000 저는 다음을 클릭합니다 겠어. 내 프로젝트 이름을 드리겠습니다. 400 00:21:31,000 --> 00:21:33,000 나는 그것을 안녕하세요 전화 할께. 401 00:21:33,000 --> 00:21:36,000 흥미롭게도, 애플은 제품을 만드는 가정 402 00:21:36,000 --> 00:21:38,000 수 있도록 당신은 그것을 판매 할 수 있으며 돈을 만들 수 있습니다. 403 00:21:38,000 --> 00:21:41,000 아래에서 이런 일이 아이폰 앱라고 할거야. 404 00:21:41,000 --> 00:21:44,000 당신은 아이 패드 응용 프로그램을 만들 수 있고, 그 애플리케이션 중 하나를 만들려면 405 00:21:44,000 --> 00:21:47,000 그 말은 당신도 그렇게 할 수 두 장치를 지원합니다. 406 00:21:47,000 --> 00:21:49,000 다음은 귀하의 확인 표시는 다음과 같은 형식 싶은 있습니다. 407 00:21:49,000 --> 00:21:51,000 >> 당신은 우리가 나중에 볼 수 스토리 보드를 사용하려면 408 00:21:51,000 --> 00:21:54,000 그리고 당신은 확실히, 자동 참조 카운트를 사용하려면 409 00:21:54,000 --> 00:21:58,000 이는 malloc과 무료라고하는 수고를하지 못하게하는 좋은 기능입니다. 410 00:21:58,000 --> 00:22:03,000 당신이 malloc과 무료 전화하고 싶지 않다면,이 체크를 떠나 것이다. 411 00:22:03,000 --> 00:22:07,000 저는 다음을 클릭거야, 그리고 내가 저장하려는 마지막으로,이 나 한테 물어 것입니다. 412 00:22:07,000 --> 00:22:14,000 I 생성에 맞는다, 여기 우리는 간다. 413 00:22:14,000 --> 00:22:16,000 나는 새로운 프로젝트를 만들었습니다. 414 00:22:16,000 --> 00:22:19,000 여기 왼쪽에있는 동안 내 프로젝트의 내부에있는 모든 파일입니다 415 00:22:19,000 --> 00:22:22,000 내가 아주 많이도 있다는 것을, 나는 아무 짓도하지 않았어요. 416 00:22:22,000 --> 00:22:24,000 IOS는 정말 멋진 여자에요. 417 00:22:24,000 --> 00:22:27,000 >> 예를 들어, 여기에 ViewController.h, 418 00:22:27,000 --> 00:22:30,000 이, 첫 뷰 컨트롤러를 나타내는 것입니다 419 00:22:30,000 --> 00:22:32,000 내 응용 프로그램의 내부의 첫 번째 화면 때문에. 420 00:22:32,000 --> 00:22:34,000 이제 우리는이 무슨 말을. 421 00:22:34,000 --> 00:22:36,000 우리는,이 클래스 ViewController에 전화를 말하는 422 00:22:36,000 --> 00:22:40,000 와 ViewController는 UIViewController는 않는 모든 것을 423 00:22:40,000 --> 00:22:43,000 이 방법은 다시 애플은 우리에게 편리한 물건을 많이 않는 쓴 몇 가지 클래스입니다 424 00:22:43,000 --> 00:22:46,000 화면을 표시 좋아해요. 425 00:22:46,000 --> 00:22:50,000 나는 실제로 내보기 컨트롤러는 무엇을 정의 시작할 수 있습니다 곳에서, 426 00:22:50,000 --> 00:22:52,000 그리고 정말 이것들 중 어떤 것도 필요하지 않는 것이 밝혀졌다. 427 00:22:52,000 --> 00:22:55,000 이 애플이 무료로 저를주는 상용구 코드입니다. 428 00:22:55,000 --> 00:22:59,000 , 그 첫 번째 줄 필요 한건가요?, 아니면 내가 수업이 없습니다 429 00:22:59,000 --> 00:23:02,000 그래서 우리는 그 제거하고 제거 할 수 있습니다. 430 00:23:02,000 --> 00:23:05,000 좋아, 이쪽은 내 빈 화면입니다. 431 00:23:05,000 --> 00:23:08,000 >> 자,이 MainStoryboard.storyboard를 클릭하게 432 00:23:08,000 --> 00:23:11,000 이 흥미로운 시작 곳입니다. 433 00:23:11,000 --> 00:23:14,000 이건 내 응용 프로그램에 대한 첫 번째 화면을 나타냅니다. 434 00:23:14,000 --> 00:23:17,000 내가 단추를 추가하려면, HTML에서 나는 버튼 태그를 만들어야했습니다. 435 00:23:17,000 --> 00:23:20,000 안드로이드에서는, 버튼 태그를 만들어야합니다 436 00:23:20,000 --> 00:23:23,000 하지만 iOS를에 그냥 맨 아래 오른쪽에 이쪽으로 내려 오면 437 00:23:23,000 --> 00:23:27,000 내가 여기이 세번째 하나를 클릭하면 있으며, 객체를 말합니다 곳 438 00:23:27,000 --> 00:23:31,000 나는 아래로 스크롤 할 수 있습니다, 또는 버튼에 대한 검색을 시작할 수 있습니다. 439 00:23:31,000 --> 00:23:35,000 실은,이 권리를 드래그 앤 드롭 있도록한다면,,, 버튼을 찾아 440 00:23:35,000 --> 00:23:38,000 난 그냥 내 응용 프로그램에서이 화면에 버튼을 추가했습니다. 441 00:23:38,000 --> 00:23:41,000 나는 텍스트를 변경하려면, 내가 더블을 클릭하면 442 00:23:41,000 --> 00:23:47,000 일이 같은 유혹 말 "저를 누르십시오." 443 00:23:47,000 --> 00:23:51,000 내가이 앱을 실행하면 좋아요, 이제, 우리는 그것을 컴파일 444 00:23:51,000 --> 00:23:54,000 그래서를 실행하는 나는 왼쪽 상단에있는 재생 버튼을 클릭하고 내 응용 프로그램이 있어요. 445 00:23:54,000 --> 00:23:58,000 난 아무 짓도 안 했어요, 그리고 달콤한 찾고 아이폰 앱을 가지고. 446 00:23:58,000 --> 00:24:01,000 내가 중지하려면, 당신은 정지 버튼을 클릭 할 수 있습니다 447 00:24:01,000 --> 00:24:03,000 더 재미 때문입니다. 448 00:24:03,000 --> 00:24:07,000 >> 자, 내가 사실이 버튼을 누르면 무슨 일이 원하는 것을 말한다. 449 00:24:07,000 --> 00:24:09,000 내가해야 할 것은 그렇게 나는 만들 필요가 450 00:24:09,000 --> 00:24:13,000 새로운 이벤트 핸들러 또는 액션. 451 00:24:13,000 --> 00:24:16,000 그래서 내가 호출 할 몇 가지 방법을 만들 필요가 있다는 것을 의미 452 00:24:16,000 --> 00:24:18,000 내가 버튼을 누르면 있으니,이 새로운 방법을 만들 수 있습니다. 453 00:24:18,000 --> 00:24:20,000 나는 ViewController.h의 내부입니다. 454 00:24:20,000 --> 00:24:22,000 나는 방법이 존재 말을해야합니다. 455 00:24:22,000 --> 00:24:26,000 나는 뷰 컨트롤러에이 전화 할 거예요 때문에 먼저 하이픈이 필요합니다. 456 00:24:26,000 --> 00:24:28,000 이에게 유형을 제공해야합니다. 457 00:24:28,000 --> 00:24:31,000 이 유형은 우리가 이전에 본 그 IBAction의 일이 될 것입니다. 458 00:24:31,000 --> 00:24:35,000 이 이벤트 처리기입니다,이 IBAction을 반환하는거야 그래서 459 00:24:35,000 --> 00:24:38,000 이 그 말을하기 엑스에 들까 460 00:24:38,000 --> 00:24:40,000 이게 내가에게 뭔가를 연결할 할 일입니다. 461 00:24:40,000 --> 00:24:45,000 나는 buttonPressed, 세미콜론 마찬가지로 이름을 줄 수 있습니다. 462 00:24:45,000 --> 00:24:48,000 >> 지금은 내 클래스의 내부에 새로운 방법을 선언했습니다. 463 00:24:48,000 --> 00:24:50,000 이 방법은 존재하는 말했습니다. 464 00:24:50,000 --> 00:24:53,000 지금의이 ViewController.m에 오게하면, 465 00:24:53,000 --> 00:24:56,000 과의이 방법은 할 수있는 일을한다고 가정 해 봅시다. 466 00:24:56,000 --> 00:25:03,000 제가 입력을 시작하면 예를 들어, (무효) buttonPressed 467 00:25:03,000 --> 00:25:06,000 통지 엑스 정말 좋은 날에 autocompletes. 468 00:25:06,000 --> 00:25:09,000 그건 정말 멋진 일이야. 469 00:25:09,000 --> 00:25:12,000 . m 파일의 내부는 생각도 무효라고 할 수있는 이곳주의, 470 00:25:12,000 --> 00:25:15,000 그 IBAction 실제로는 형식이 아니기 때문에이입니다. 471 00:25:15,000 --> 00:25:19,000 이 사실은, 무효로 어딘가에 정의 된 해시 태그있어 472 00:25:19,000 --> 00:25:22,000 다시,이는 말합니다 엑스에 들까 473 00:25:22,000 --> 00:25:25,000 이런 일이 이벤트 핸들러되고 싶어하며, 그 이유는 단지 두 번째에 우리는 볼 수 있습니다. 474 00:25:25,000 --> 00:25:28,000 이 버튼을 누를 때 짜증나는 일을 할거야 475 00:25:28,000 --> 00:25:30,000 팝업을 표시 좋아해요. 476 00:25:30,000 --> 00:25:35,000 >> 난 UIAlertView이라는 클래스의 새 인스턴스를 만들 수 있습니다 그 일을 할, 477 00:25:35,000 --> 00:25:39,000 이 애플은 성가신 팝업을 표시 할 거라는 게 쓴 클래스입니다. 478 00:25:39,000 --> 00:25:43,000 이 팝업 알림을 전화 해요 2 단계가이 개체를 만드는 기억. 479 00:25:43,000 --> 00:25:46,000 제가해야 할 첫 번째 일은 공간을 할당합니다. 480 00:25:46,000 --> 00:25:48,000 나는 UIAlertView를 싶습니다. 481 00:25:48,000 --> 00:25:51,000 나는 공간을 할당하고 싶습니다. 그게 내 첫 번째 방법입니다. 482 00:25:51,000 --> 00:25:53,000 내 옆에있는 방법은, 내가를 초기화하고 싶어요 483 00:25:53,000 --> 00:25:58,000 그래서 나는 initWithTitle이라는 큰, 긴 방법을 수 있습니다. 484 00:25:58,000 --> 00:26:01,000 그래서 기본적으로 팝업 말한대로 제어 할거야. 485 00:26:01,000 --> 00:26:04,000 내 팝업의 제목은 인사 할 수 있습니다. 486 00:26:04,000 --> 00:26:08,000 팝업 메시지가 될 수 있습니다 "이 iOS를입니다." 487 00:26:08,000 --> 00:26:10,000 위임 문제는, 난 그게 뭔지 몰라. 488 00:26:10,000 --> 00:26:13,000 하자의 아무 말도하지 않습니다. 489 00:26:13,000 --> 00:26:18,000 지금 표시 할거야 버튼 ", 물론이다"같은 말을 할 수 490 00:26:18,000 --> 00:26:24,000 내가 정말 다른 버튼을 원하지 않기 때문에 씨가를 삭제하고 브래킷을 닫습니다 보자. 491 00:26:24,000 --> 00:26:27,000 >> 좋아, 내가 하나 더를 만들었습니다. 우리는 간다. 492 00:26:27,000 --> 00:26:30,000 이건 내가 새로운 팝업을 생성 할 수 있습니다 방법입니다. 493 00:26:30,000 --> 00:26:35,000 난 사실 팝업을 표시하려는 경우이 공연 메서드를 호출하고 싶습니다. 494 00:26:35,000 --> 00:26:38,000 제가 경고하고 쇼를 말할 수있는 그런 짓을하는 것은, 495 00:26:38,000 --> 00:26:40,000 다시, 자동 완성은 슈퍼 멋진했습니다. 496 00:26:40,000 --> 00:26:42,000 난 그냥 S를 입력하면 그이 뭔지 잊었다면 497 00:26:42,000 --> 00:26:45,000 나는 그게 뭔지 알아 내려고 여기를 스크롤 할 수 있습니다 498 00:26:45,000 --> 00:26:48,000 그리고 잘 걸러냅니다. 499 00:26:48,000 --> 00:26:52,000 지금은이 새로운 팝업을 만들었습니다. 500 00:26:52,000 --> 00:26:55,000 우리는 나중에 대리인이 무슨 뜻인지에 돌아 오면 501 00:26:55,000 --> 00:26:58,000 지금은 내가이 방법을 해고하려는 싶은 말 502 00:26:58,000 --> 00:27:01,000 내가 버튼을 누르면, 내 스토리 보드로 돌아와야로 갈 거에요 503 00:27:01,000 --> 00:27:04,000 또 지금이 IBAction을 첨부하고 싶습니다. 504 00:27:04,000 --> 00:27:06,000 당신이 원하는 가장 먼저하는 일이 버튼을 클릭합니다. 505 00:27:06,000 --> 00:27:08,000 내가이 버튼을 누르면 언제 무슨 일이 일어날 필요. 506 00:27:08,000 --> 00:27:10,000 내가 컨트롤 누르고 않을거야. 507 00:27:10,000 --> 00:27:13,000 나는 클릭하고 버튼에서 드래그거야 508 00:27:13,000 --> 00:27:15,000 여기에 위치로는보기 컨트롤러를 말합니다. 509 00:27:15,000 --> 00:27:17,000 우리는 잘 환해 것을 볼 수 있습니다. 510 00:27:17,000 --> 00:27:22,000 >> 내 마우스를 놓으면 몇 가지 옵션을 가지고있는 지금 여기에 팝업 수 있습니다. 511 00:27:22,000 --> 00:27:24,000 이 중 하나는 내가 등록 할 수있는 이벤트입니다. 512 00:27:24,000 --> 00:27:28,000 이 내 H 파일 IBActions로 선언 이러한 방법의 모든 수 있습니다. 513 00:27:28,000 --> 00:27:31,000 이것은 엑스가 무슨이 작은 목록에 나타납니다 알고 방법입니다 514 00:27:31,000 --> 00:27:33,000 그래서 그냥 힌트입니다. 515 00:27:33,000 --> 00:27:37,000 제가 누른 버튼을 클릭하면, 지금은 이벤트 핸들러를 등록했습니다. 516 00:27:37,000 --> 00:27:41,000 자바 스크립트에서는 내가 이벤트 핸들러를 등록 몇 가지 코드가 말을했다. 517 00:27:41,000 --> 00:27:43,000 오브젝티브-C에서는 그렇게 쉽게했다. 518 00:27:43,000 --> 00:27:46,000 나는 다시를 실행하는 경우 519 00:27:46,000 --> 00:27:49,000 지금은 버튼을 누르면 내 이벤트 핸들러는, 발사 것이다 520 00:27:49,000 --> 00:27:51,000 나는이 팝업 가져다 드리죠. 521 00:27:51,000 --> 00:27:54,000 이 슈퍼, 슈퍼 간단합니다. 522 00:27:54,000 --> 00:27:57,000 >> 지금까지 등록 할 일 모든 일정을보고 싶다면 523 00:27:57,000 --> 00:28:00,000 구성 요소에서이 버튼을 클릭하면 524 00:28:00,000 --> 00:28:02,000 그리고 오른쪽으로 이리와 525 00:28:02,000 --> 00:28:05,000 먼저 내가 버튼의 종류 같은 일을 할 수있다 여기에 볼 수 있습니다 526 00:28:05,000 --> 00:28:08,000 당신이 저 I의 또는 추가 문의 버튼 중 하나를 싶다면 527 00:28:08,000 --> 00:28:10,000 뭐든간에. 528 00:28:10,000 --> 00:28:13,000 이 버튼을에있는 모든 이벤트를 확인하려는 경우 529 00:28:13,000 --> 00:28:16,000 나는 오른쪽으로 여기까지 올 경우 530 00:28:16,000 --> 00:28:19,000 우리는 난이 다른 모든 이벤트를 이벤트 '에서 볼 수 있습니다. 531 00:28:19,000 --> 00:28:23,000 내가 탭을 두 번이든 그 때, 버튼을 놓아 때, 버튼을 누르면 532 00:28:23,000 --> 00:28:26,000 그냥 난 등록 된 사람은,이 이벤트가 내부 터치 업이라고합니다 533 00:28:26,000 --> 00:28:29,000 이는 곧 내 손가락 버튼을 듭니다 있다고 534 00:28:29,000 --> 00:28:32,000 해당 이벤트 화재로 이동하고 있으며, 그게 정확히 무슨 일이 있었는지입니다. 535 00:28:32,000 --> 00:28:36,000 이것이 기본 버튼을 누르면 이벤트의 종류입니다. 536 00:28:36,000 --> 00:28:39,000 >> 질문까지? 537 00:28:39,000 --> 00:28:43,000 자, 우리가 우리의 코드에서 일을 송금 시작할 수있는 방법 538 00:28:43,000 --> 00:28:46,000 우리 인터페이스의 내부 일에. 539 00:28:46,000 --> 00:28:49,000 우리가해야 할 일을했을 첫 번째 문제는, 코드를 찾는 것이 었습니다 기억 540 00:28:49,000 --> 00:28:54,000 그리고 우리는 코드에 인터페이스를 유선 541 00:28:54,000 --> 00:28:57,000 그리고 첫 번째 응용 프로그램이 있어요. 542 00:28:57,000 --> 00:29:00,000 좋아, 정말 끝내 줬어요, 우리는이 버튼을 만들었습니다. 543 00:29:00,000 --> 00:29:03,000 우리가 할 경우 속성의 무리를 생성하고 싶지 무엇입니까 544 00:29:03,000 --> 00:29:05,000 이 버튼을 대표? 545 00:29:05,000 --> 00:29:08,000 예를 들어, 틱 전술 발가락 부분에 나는, 9 버튼을 546 00:29:08,000 --> 00:29:11,000 그리고 9 번 드래그 앤 드롭하는 게 슈퍼, 슈퍼 성가신있을 547 00:29:11,000 --> 00:29:14,000 아니면 81로 콩알 만 발가락을 대신 9 있다면 548 00:29:14,000 --> 00:29:17,000 그리고 드래그 앤 81 시간을 떨어했고, 그건별로에요. 549 00:29:17,000 --> 00:29:20,000 우리가 대신 할 수있는 것이 훨씬 HTML 같다 550 00:29:20,000 --> 00:29:23,000 우리는 ID 및 이름과 같은 것을 가지고 우리는 물건을 검색 할 수 있습니다 때 551 00:29:23,000 --> 00:29:27,000 자신의 ID가, 태그라는 iOS를에 비슷한 생각이 있어요. 552 00:29:27,000 --> 00:29:31,000 >> 태그는 단순히 구성 요소에 대한 고유 숫자 식별자입니다. 553 00:29:31,000 --> 00:29:34,000 나는이 0의 태그를 가지고 말한다면, 예를 들어, 554 00:29:34,000 --> 00:29:38,000 제가 버튼을 만들고 그것에게 0의 태그를 제공하고, 우리가 두 번째에서 해당 작업을 수행하는 방법에 표시됩니다한다면, 555 00:29:38,000 --> 00:29:41,000 그 버튼을 얻으려면 나는 단순히 내가 전화 할 말을 할 수 556 00:29:41,000 --> 00:29:45,000 여기에 개체에 대한 방법을 viewWithTag, 557 00:29:45,000 --> 00:29:48,000 예를 들어, 현재 화면을 나타냅니다 self.view,. 558 00:29:48,000 --> 00:29:53,000 그 viewWithTag 메서드를 호출하면, 나는 태그 0 버튼을 다시 끌어거야. 559 00:29:53,000 --> 00:29:58,000 가 건물 콩알 만 발가락으로이를 살펴 보자. 560 00:29:58,000 --> 00:30:01,000 먼저, 이쪽은 내 스토리 보드입니다. 561 00:30:01,000 --> 00:30:05,000 내가이 열 UI 버튼을 만들었습니다. 562 00:30:05,000 --> 00:30:07,000 그들은 모두 같은 크기도 엄청납니다. 563 00:30:07,000 --> 00:30:11,000 나는이 중 하나를 클릭하여이 오른쪽에 여기에 돌아 오시면 564 00:30:11,000 --> 00:30:15,000 당신은 내가 여기에 글꼴을 조정, 그래서 제가 조금 더 글꼴을 만들어 볼 수 있습니다 565 00:30:15,000 --> 00:30:19,000 하지만, 나 또한 무슨 짓을했는지는 내가이 태그를 설정했습니다. 566 00:30:19,000 --> 00:30:23,000 이 1의 태그를 가지고 있다고하고, 그 왼쪽 상단입니다. 567 00:30:23,000 --> 00:30:26,000 >> 자, 내가 다른 버튼을 클릭하면, 여기있는이 두 번째 같은, 568 00:30:26,000 --> 00:30:29,000 지금은 우리 태그는 2 것을 확인할 수 있습니다. 569 00:30:29,000 --> 00:30:32,000 이 버튼의 각 단지 고유 태그가 570 00:30:32,000 --> 00:30:35,000 그래서이 나중에 어떻게 상호 작용을 시작 할거야합니다 571 00:30:35,000 --> 00:30:38,000 내 앱. 572 00:30:38,000 --> 00:30:40,000 이것은 하나의보기 컨트롤러의 모든 내부입니다 573 00:30:40,000 --> 00:30:42,000 그러나 여기서 우리가 뭘 것입니다. 574 00:30:42,000 --> 00:30:44,000 우리는 여기서 세 속성을 수 있습니다. 575 00:30:44,000 --> 00:30:49,000 첫 번째와 마지막 하나는 내 보드의 상태를 나타내는 것입니다. 576 00:30:49,000 --> 00:30:53,000 기본적으로 첫 번째 하나는 XS과 OS가있는 곳을 나타내는 배열입니다. 577 00:30:53,000 --> 00:30:57,000 이 다른 하나는 여기 누구의 차례가 우리에게 알려줍니다. 578 00:30:57,000 --> 00:31:01,000 당신은 내가 또한 여기에서 이런 일이 있다는 것을 알 수 있습니다. 579 00:31:01,000 --> 00:31:05,000 전에 우리가 속성을 선언 할 때 우리는 그들에게 이름과 유형을 주었다. 580 00:31:05,000 --> 00:31:08,000 우리는 또한 여기 몇 가지 추가 정보를 제공 할 수 있습니다. 581 00:31:08,000 --> 00:31:11,000 첫 번째는 nonatomic 말합니다,이가 말한 582 00:31:11,000 --> 00:31:16,000 기본적으로 한 것은 절대 한 번에이 변수를 액세스하려는 될 것입니다 수 있습니다. 583 00:31:16,000 --> 00:31:19,000 당신은 다중 스레드 아르 더 복잡한 응용 프로그램을 할 수 584 00:31:19,000 --> 00:31:22,000 그래서 다시 스크래치에서 우리는 다른 스레드를 가지고 585 00:31:22,000 --> 00:31:25,000 서로 다른 스프라이트가 같은 시간에 다른 일을 할 수있다. 586 00:31:25,000 --> 00:31:29,000 >> 그게 우리가보고됩니다 것을 아무것도 아닌 경우가 아닌 경우 587 00:31:29,000 --> 00:31:33,000 우리가 nonatomic 말하면 사실은 일이 조금 더 빠르게 할거야. 588 00:31:33,000 --> 00:31:37,000 또한, 할당 강한, 또는 약한라는 일이 있습니다. 589 00:31:37,000 --> 00:31:40,000 이 지정은이 표준 형식입니다 있다고 말한다. 590 00:31:40,000 --> 00:31:43,000 이 단지 BOOL이기 때문, 개체 또는 포인터가 아닙니다 591 00:31:43,000 --> 00:31:46,000 그래서 BOOL는 오브젝티브-C에 내장되어 있습니다. 592 00:31:46,000 --> 00:31:49,000 여긴 포인터와 멋진 아무것도하려고하지 않습니다 말합니다. 593 00:31:49,000 --> 00:31:51,000 그것은 평범한 스케일러입니다. 594 00:31:51,000 --> 00:31:54,000 강하고 약한이 약한는 실제로 말한다 595 00:31:54,000 --> 00:31:57,000 지금은 뷰 컨트롤러에 뭔가를 가리키고 싶어. 596 00:31:57,000 --> 00:32:00,000 사실은 할당하려고하거나 자신을 INIT 않을거야. 597 00:32:00,000 --> 00:32:04,000 인터페이스 빌더, 나는 응용 프로그램을 실행할 때, 모든 초기화를 처리하는 것이다. 598 00:32:04,000 --> 00:32:07,000 제가 약한 말한다면, 그 다른 사람이을 만들 것입니다 말합니다. 599 00:32:07,000 --> 00:32:09,000 나는 강한 말한다면,이 내가 될 걸요 있다고 600 00:32:09,000 --> 00:32:12,000 즉,이 보드 객체를 만드는 경우 601 00:32:12,000 --> 00:32:14,000 그래서 제가 여기 여기 좀 더 방법이 602 00:32:14,000 --> 00:32:18,000 예를 들어, 새로운 게임 버튼을 누를 때에 대한 작업, 603 00:32:18,000 --> 00:32:20,000 다른 버튼의 누를 때에 대한 작업, 604 00:32:20,000 --> 00:32:23,000 와 ET 기타 등등. 605 00:32:23,000 --> 00:32:26,000 >> 우리는 콩알 만 발가락의 논리를 너무 많이 들어갈 수 없습니다 606 00:32:26,000 --> 00:32:30,000 매우 흥미로운,하지만 그건 살펴 있지만, 607 00:32:30,000 --> 00:32:33,000 우리는 iOS를 내부 할 수있는 몇 가지. 608 00:32:33,000 --> 00:32:35,000 이 새로운 게임 방식은 해고 될 것입니다 609 00:32:35,000 --> 00:32:37,000 나는 새 게임 버튼을 누를 때마다. 610 00:32:37,000 --> 00:32:41,000 최대 난 그저 스토리 보드에 올 것을 연결합니다. 611 00:32:41,000 --> 00:32:43,000 나는 새로운 게임에 클릭했습니다. 612 00:32:43,000 --> 00:32:47,000 나는 오른쪽으로 여기에 오면 저를 볼 수 있습니다 613 00:32:47,000 --> 00:32:50,000 newGame 방법으로이 설치된 속에 터치합니다. 614 00:32:50,000 --> 00:32:53,000 이 해고당한 것입니다 이유입니다. 615 00:32:53,000 --> 00:32:56,000 newGame 방법은 몇 가지 설정을 할 예정이다. 616 00:32:56,000 --> 00:32:59,000 그것은 당신이 보드의 상태를 삭제하려면 말거야. 617 00:32:59,000 --> 00:33:01,000 이 변경 가능한 배열에 좋은 방법입니다. 618 00:33:01,000 --> 00:33:03,000 이것은 지금 X의 차례라고 것입니다 619 00:33:03,000 --> 00:33:07,000 지금이 viewWithTag 물건을 활용하는거야. 620 00:33:07,000 --> 00:33:11,000 >> 난 내 버튼이 태그를 1-9를 가지고 있다는 것을 알고 621 00:33:11,000 --> 00:33:13,000 그리고 내가 임의로 선택한 것이지. 622 00:33:13,000 --> 00:33:15,000 나는 비어 각 버튼의 텍스트를 설정하려면 623 00:33:15,000 --> 00:33:17,000 난 그냥 새로운 게임을 시작하고 어떤을 원하지 않기 때문에 624 00:33:17,000 --> 00:33:20,000 난 할 수있어 이상 XS 또는 OS가 남아있을 수 있습니다. 625 00:33:20,000 --> 00:33:24,000 나는 태그보기, 1, 2, 3, 4 동부 표준시의 기타 등등 원하는 말을 할 수 있습니다. 626 00:33:24,000 --> 00:33:27,000 이 다른 버튼을 때마다 가져옵니다. 627 00:33:27,000 --> 00:33:30,000 난 여기 UIButton 할을 행사할거야. 628 00:33:30,000 --> 00:33:33,000 우리는 수레와 반대로 ints을 행사할 수있는 것처럼 629 00:33:33,000 --> 00:33:37,000 이게 내가 UIButton이를 캐스팅하려는 말합니다. 630 00:33:37,000 --> 00:33:40,000 즉,이 유형은 UIButton의 * 수 631 00:33:40,000 --> 00:33:43,000 때문에 포인터,하지만, 걱정하지 마세요, 그들은 더 이상 무섭지 않아요. 632 00:33:43,000 --> 00:33:47,000 >> 일단 내가 거기에 메서드를 호출하는거야이 버튼을 갖추고 있습니다. 633 00:33:47,000 --> 00:33:50,000 이 방법은 setTitle forState라고, 그래서이 있다고합니다 634 00:33:50,000 --> 00:33:53,000 난 빈 문자열로 버튼의 텍스트를 설정하려면 635 00:33:53,000 --> 00:33:57,000 그리고 나는이 다림질도 안 빈 문자열되고 싶어요. 636 00:33:57,000 --> 00:34:01,000 나는이 방법을 사용하고 있다면 버튼의 텍스트를 변경할 수 있습니다 637 00:34:01,000 --> 00:34:04,000 누군가에 도달하지만, 우리는 버튼이 저기 앉아 때하고 싶은 말은 자마자 638 00:34:04,000 --> 00:34:07,000 나는 텍스트를 빈가되고 싶어요. 639 00:34:07,000 --> 00:34:10,000 마지막으로, 우리는, 내 보드를 초기화 할거야 640 00:34:10,000 --> 00:34:12,000 그리고 내가 다가 0에 현재 이렇게 말할거야 641 00:34:12,000 --> 00:34:15,000 이 보드 있도록 회원 불변는 변경할 수 배열입니다 642 00:34:15,000 --> 00:34:21,000 어떤 내가 addObject 방법 및 그것의 단지 0 내부를 호출 할 수 있습니다. 643 00:34:21,000 --> 00:34:23,000 그래서 내가 새로운 게임을 만들 때 어떤 일이 벌어지는 지입니다. 644 00:34:23,000 --> 00:34:25,000 >> 가 또 하나를 살펴 보자. 645 00:34:25,000 --> 00:34:28,000 여기이 방법은 누를 수 거에요 IBAction is 646 00:34:28,000 --> 00:34:31,000 때마다 그 사각형 중 하나를 누르면됩니다. 647 00:34:31,000 --> 00:34:33,000 지금 우리는 콩알 만 발가락 로직 자네가 있습니다. 648 00:34:33,000 --> 00:34:36,000 우리는 누구의 차례가 알아 649 00:34:36,000 --> 00:34:39,000 그리고, 우리는 하나 X 또는 O를 설정하는 것이에 따라 650 00:34:39,000 --> 00:34:43,000 그러나 우리는 우리가이 같은 이벤트 핸들러를 재사용하는 것을 알 651 00:34:43,000 --> 00:34:45,000 이 버튼 하나 하나에. 652 00:34:45,000 --> 00:34:49,000 나는 왼쪽 상단 버튼을위한 방법을 가지고 있지 않다는 걸 의미한다, 653 00:34:49,000 --> 00:34:52,000 나는 오른쪽 아래 버튼에 대해 다른 방법을, 그런 짓을 할 수 있습니다 있지만. 654 00:34:52,000 --> 00:34:54,000 정말 좋은 디자인을하지 않을 것입니다. 655 00:34:54,000 --> 00:34:57,000 내가 여기서 뭐하는 건 실제로 결정하는 것거든요 656 00:34:57,000 --> 00:35:00,000 누르고 된 버튼의 태그는 무엇입니다. 657 00:35:00,000 --> 00:35:04,000 이 놀이 방법은 하나의 인수 걸립니다 것을 확인할 수 있습니다. 658 00:35:04,000 --> 00:35:07,000 그것은 보낸라고, 그리고 발신자는 발신자가로 가고 있는지에 659 00:35:07,000 --> 00:35:10,000 정확히에 조치를 취했는지 나타냅니다. 660 00:35:10,000 --> 00:35:15,000 내가 버튼을 누르면,이 발신자는 그 UIButton가 될 것입니다 661 00:35:15,000 --> 00:35:18,000 난 사실 누르면 것을, 그래서 의미 그 UIButton 662 00:35:18,000 --> 00:35:20,000 제가 태그를 생성하기 때문에 태그가 있습니다. 663 00:35:20,000 --> 00:35:23,000 >> 제가 태그에서 얻을하려는 경우 간단히 말해서 나는 당신 말을 할 수 664 00:35:23,000 --> 00:35:26,000 나는 보낸 사람의 태그를 원하는 665 00:35:26,000 --> 00:35:28,000 다시, 난 그냥 UIButton에 주조했습니다. 666 00:35:28,000 --> 00:35:32,000 나는 발신자가 UIButton 될 것이라고 아세요. 667 00:35:32,000 --> 00:35:34,000 항상 UIButton 할 필요가 없습니다. 668 00:35:34,000 --> 00:35:36,000 내 말은, 예를 들어, 동일한 이벤트 핸들러를 등록 할 수 669 00:35:36,000 --> 00:35:38,000  버튼 슬라이더에 대해 하나 하나. 670 00:35:38,000 --> 00:35:40,000 이 경우, 나는 그들이 모든 버튼 있으니 말거야 671 00:35:40,000 --> 00:35:43,000 이건 버튼으로 누른 다음 나는 태그를 얻을 수 있습니다 672 00:35:43,000 --> 00:35:48,000 그리고 태그 내 몸은 보드의 내부 어디에 있는지. 673 00:35:48,000 --> 00:35:51,000 그리고 단순히 X 또는 O, 회전 대칭 수 중 하나를 설정할 수 있습니다 674 00:35:51,000 --> 00:35:54,000 , 기타 등등을 수상했습니다 사람 확인합니다. 675 00:35:54,000 --> 00:35:59,000 >> 이 지금까지의 질문? 676 00:35:59,000 --> 00:36:02,000 자, 우리가 온라인 우리가 너무 많이 들어갈하지 않으 게시 된 모든 코드 677 00:36:02,000 --> 00:36:06,000 콩알 만 발가락 논리,하지만, 지금은 그게 정말 볼 수 있습니다 678 00:36:06,000 --> 00:36:09,000 우리가하는 모든, 우리는이 배열을 통해 반복하고 있습니다 679 00:36:09,000 --> 00:36:13,000 그래서 우리는 여기에 루프에 대한 몇 있고, 우리가 볼 수 비교 680 00:36:13,000 --> 00:36:18,000 우리는 모든 행, 그런 열이 전혀 일치의 일치가 않습니다. 681 00:36:18,000 --> 00:36:21,000 난이 버튼 중 하나를 탭하면, 사실이 응용 프로그램을 실행하려면 682 00:36:21,000 --> 00:36:24,000 그 놀이 방법이 발사 된, 난 그냥 설정 의미하므로 683 00:36:24,000 --> 00:36:31,000 버튼이 X로, 이제이 버튼은 O 수 등합니다 684 00:36:31,000 --> 00:36:35,000 그래서 우리가이 단일 페이지 응용 프로그램과 상호 작용하기 시작 방법은 다음과 같습니다. 685 00:36:35,000 --> 00:36:38,000 >> 우리는 코드를 게시 해 드리겠습니다, 그래서를 정독 해 주시기 바랍니다, 686 00:36:38,000 --> 00:36:43,000 하지만 지금의 단지 한 페이지 이상 일부 애플리케이션에 대해 얘기 해봐요. 687 00:36:43,000 --> 00:36:47,000 콩알 만 발가락만큼 흥미로운는 iOS를 내부 앱을 많이했습니다 688 00:36:47,000 --> 00:36:50,000 이러한 훈련의 종류는 여러 화면과 것들 다운입니다. 689 00:36:50,000 --> 00:36:54,000 우리가 얘기해야하는 첫 번째 개념은, 프로토콜 아르 690 00:36:54,000 --> 00:36:57,000 과 프로토콜은 단순히 방법의 집합입니다 691 00:36:57,000 --> 00:36:59,000 당신은 정의하기 위해 약속 할 수 있는지 확인하십시오. 692 00:36:59,000 --> 00:37:02,000 나는 2 가지 방법으로이 새로운 프로토콜이 첫 번째를 만드는 경우 693 00:37:02,000 --> 00:37:05,000 반환 유형이 무효 인 경우, 내가 foo를했다. 694 00:37:05,000 --> 00:37:07,000 이 인수도도지지 않습니다. 또 다른 방법이 있습니다. 695 00:37:07,000 --> 00:37:11,000 그것은 정수를 반환합니다. 나는 금지라고하고, 하나의 인수를 걸립니다. 696 00:37:11,000 --> 00:37:14,000 이 모든 프로토콜은 여기 SomeProtocol을라고 것입니다 697 00:37:14,000 --> 00:37:19,000 이 사람이 구현할 수있는 건의 집합입니다. 698 00:37:19,000 --> 00:37:22,000 내 마음은이 프로토콜의는 foo는 무엇을하건 말하지 않았습니다. 699 00:37:22,000 --> 00:37:26,000 대신에, 난 그냥 당신이 원하는 경우 foo는 정의 할 수 없다는거야. 700 00:37:26,000 --> 00:37:30,000 나는 뷰 컨트롤러를 만들거나 클래스를 만들려고하는 경우 701 00:37:30,000 --> 00:37:33,000 내 마음은 그 클래스의 약속을 구현 할 수 있습니다 702 00:37:33,000 --> 00:37:40,000 이러한 방법의 일부, 그래서 예를 들어,이 말 703 00:37:40,000 --> 00:37:43,000 이 지금 당신 께 약속을 만드는 중이라는 안에 704 00:37:43,000 --> 00:37:50,000 이 뷰 컨트롤러 클래스의 나는 foo는, 바 모두 정의해야합니다. 705 00:37:50,000 --> 00:37:52,000 >> 왜 유용합니다? 706 00:37:52,000 --> 00:37:55,000 iOS를 내부 구성 요소의 많은이 활용 707 00:37:55,000 --> 00:37:58,000 디자인 패턴은 위임했는데, 대표단이 무슨 말을 708 00:37:58,000 --> 00:38:01,000 즉, 예를 들어, 나는 텍스트 상자가있는 경우 709 00:38:01,000 --> 00:38:04,000 내 텍스트 상자의 안쪽 등록 할 수있는 몇 가지 이벤트가 있습니다 710 00:38:04,000 --> 00:38:07,000 오히려 내가 할 수있는 일을 별도의 일정을 만들보다 내가 말할 수있는 것입니다 711 00:38:07,000 --> 00:38:10,000 이 텍스트 상자의 대의원은 어떤 객체 될 것입니다. 712 00:38:10,000 --> 00:38:13,000 난이 지금은 대리인이 그 말을 할 때 그 말은 713 00:38:13,000 --> 00:38:16,000 일부 이벤트는 텍스트 상자에 해고 됐을 때 714 00:38:16,000 --> 00:38:18,000 보다는 같은 것도 등록 할 필요 715 00:38:18,000 --> 00:38:21,000 단지 대리인에 메서드를 호출하는거야. 716 00:38:21,000 --> 00:38:24,000 예를 들어, 내부 내 텍스트 상자의 나는 눌렀을 때하는 방법이 717 00:38:24,000 --> 00:38:27,000 즉, 오른쪽 하단에 버튼을 수행 718 00:38:27,000 --> 00:38:30,000 그래서 대신 내가 무슨 말을 할 수있는 이벤트 핸들러를하고 있습니다 등록 719 00:38:30,000 --> 00:38:34,000 텍스트 상자, 여기서 당신이에 메서드를 호출 할 객체입니다 720 00:38:34,000 --> 00:38:37,000 때마다 누군가 프레스 완료 버튼을, 721 00:38:37,000 --> 00:38:40,000 그리고 그 객체가 어떤 프로토콜을 구현하는 것을 의미 722 00:38:40,000 --> 00:38:45,000 그건 내가 그 완료 버튼 동작을 정의하는 약속 말한다 723 00:38:45,000 --> 00:38:47,000 왜냐하면 그 방법을 정의하지 않으며 작업을 완료 누르면, 724 00:38:47,000 --> 00:38:49,000 그때가 혼란거야. 725 00:38:49,000 --> 00:38:55,000 >> 가 예를 살펴 보자. 726 00:38:55,000 --> 00:38:58,000 난 여기 단순히 하나의 텍스트 상자가 727 00:38:58,000 --> 00:39:04,000 이 오른쪽에 여기에이 텍스트 상자의 속성 중 하나는 위임이다. 728 00:39:04,000 --> 00:39:06,000 이 클래스의 속성입니다. 729 00:39:06,000 --> 00:39:09,000 내가 여기했던 건 내가 클릭 제어 있으며, 내가 여기서이 장소에서 드래그 730 00:39:09,000 --> 00:39:13,000 에 뷰 컨트롤러, 그 지금이 텍스트 상자의 대의원을 말한다 731 00:39:13,000 --> 00:39:18,000 뷰 컨트롤러가 될 것입니다. 732 00:39:18,000 --> 00:39:20,000 어떤 행동이 일어날 아니라 등록보다 때 것을 의미한다 733 00:39:20,000 --> 00:39:25,000 당신이 대리인에게 보낼 별도의 이벤트 핸들러. 734 00:39:25,000 --> 00:39:28,000 지금의 내 뷰 컨트롤러를 살펴 보자. 735 00:39:28,000 --> 00:39:32,000 . H 파일의 내부 나는 약속을했습니다. 736 00:39:32,000 --> 00:39:36,000 이 프로토콜의 내부에 몇 가지 방법을 구현하는 약속이 있어서요 737 00:39:36,000 --> 00:39:38,000 UITextFieldDelegate, 다시라는 738 00:39:38,000 --> 00:39:42,000 이 내가 구현하도록 선택할 수있는 몇 가지의 일부 목록입니다. 739 00:39:42,000 --> 00:39:46,000 >> 내. m 파일에 여기 오면, 난 하나의 방법을 구현했습니다. 740 00:39:46,000 --> 00:39:49,000 나는 textFieldShouldReturn 전화했는데 741 00:39:49,000 --> 00:39:52,000 그게 다이 프로토콜의 내부 호출 한거야 때문입니다. 742 00:39:52,000 --> 00:39:57,000 그리고 지금은 그 텍스트 필드의 완료 버튼 내부를 누를 때마다 743 00:39:57,000 --> 00:40:00,000 이 호출이 일어날 지이며, 그래서 이벤트 핸들러를 등록하지 않았습니다. 744 00:40:00,000 --> 00:40:03,000 나는 대의원을 연결,이 이벤트가 시작됩니다 때마다 745 00:40:03,000 --> 00:40:08,000 이 내 스토리 보드에 여기 와서 실행하면, 호출된다 방법입니다 그것을 - 746 00:40:08,000 --> 00:40:11,000 그로드되는 동안 우리는이 현상이 무엇을 볼 수 있습니다. 747 00:40:11,000 --> 00:40:13,000 내 화면에 내가 2 가지가 있습니다. 748 00:40:13,000 --> 00:40:16,000 이 텍스트 필드를 가지고 있고,이 라벨이 있습니다. 749 00:40:16,000 --> 00:40:19,000 난 단지 내가이 라벨의 텍스트를 말 750 00:40:19,000 --> 00:40:23,000 사용자가 텍스트 필드의 내부에 입력 한 어떤 같아야합니다. 751 00:40:23,000 --> 00:40:26,000 여기에 다음 행은 단순히 내가 전화하는 방법입니다 752 00:40:26,000 --> 00:40:29,000 당신이 키보드를 숨기려면라는 텍스트 필드에. 753 00:40:29,000 --> 00:40:33,000 이건 그냥 애플이 선택한 임의의 방법입니다. 754 00:40:33,000 --> 00:40:38,000 >> 내가 모든 걸 송금했습니다 짓을하기 전에 다시 한번,, 그래서 제가 여기 처음 와서. 755 00:40:38,000 --> 00:40:42,000 뷰 컨트롤러에서 나는 텍스트 상자로 드래그합니다. 756 00:40:42,000 --> 00:40:46,000 내가이 텍스트 필드 속성을 만들 수 있다는 것을 놓아, 나는 여기에서 볼 수 있습니다 757 00:40:46,000 --> 00:40:49,000 이상 여기에 뷰 컨트롤러에서부터 속성을 정의 758 00:40:49,000 --> 00:40:52,000 그 텍스트 필드의 IBOutlet입니다. 759 00:40:52,000 --> 00:40:55,000 이것이 내가이 속성을 연결할 수 있다고 760 00:40:55,000 --> 00:40:59,000 내 UI에서 텍스트 필드. 761 00:40:59,000 --> 00:41:03,000 지금은이 링크를 눌러 때 입력을 시작할 수 있습니다. 762 00:41:03,000 --> 00:41:06,000 나는 완료 버튼을 클릭하면 지금이 발사 것입니다 763 00:41:06,000 --> 00:41:08,000 지금에 응답 할 수있는 이벤트입니다. 764 00:41:08,000 --> 00:41:10,000 어떤 이벤트 핸들러 없습니다. 765 00:41:10,000 --> 00:41:13,000 그래서 내가 그 한 버튼에 응답 방법은 다음과 같습니다. 766 00:41:13,000 --> 00:41:15,000 이해가가? 767 00:41:15,000 --> 00:41:20,000 >> 이 - 당신이 그렇게 적 자신을 찾을하지 않을 수 있습니다 디자인 패턴입니다 768 00:41:20,000 --> 00:41:23,000 자신의 프로토콜을 만드는,하지만 단지 알아 몇 가지 769 00:41:23,000 --> 00:41:27,000 다른 iOS를 구성 요소는 다른 방식으로 이벤트를 등록합니다. 770 00:41:27,000 --> 00:41:29,000 버튼은 예를 들어, 이러한 IBActions을 사용합니다. 771 00:41:29,000 --> 00:41:32,000 텍스트 필드는 반면에 명을 사용하는 것입니다. 772 00:41:32,000 --> 00:41:36,000 우리는 볼 수 있으며 문서의 최대 내부의 모든 찾을 수 있습니다. 773 00:41:36,000 --> 00:41:41,000 그건 그렇고, 당신을 위해 iOS를 내장 UI의 물건 톤, 사실은이 774 00:41:41,000 --> 00:41:46,000 그래서 예를 들어, 방법은 제가 오른쪽 하단에 완료하는 말 한 775 00:41:46,000 --> 00:41:48,000 이 텍스트 필드를 선택합니다. 776 00:41:48,000 --> 00:41:50,000 여기 와서. 777 00:41:50,000 --> 00:41:53,000 나는 키를 반환하는 비트를 스크롤 778 00:41:53,000 --> 00:41:56,000 내가 말하려는 것을하려는 경우처럼 나는 실제로이 물건의 전체 무리 할 수​​ 있습니다 779 00:41:56,000 --> 00:42:00,000 긴급 대신 내가 완전히 무작위입니다, 그렇게 할 수 전화 780 00:42:00,000 --> 00:42:02,000 내장 된 긴급 통화 버튼이 왜 난 몰라 781 00:42:02,000 --> 00:42:06,000 하지만, 정말 작은 글자에서 긴급 전화는 말합니다. 782 00:42:06,000 --> 00:42:08,000 여기 있습니다. 783 00:42:08,000 --> 00:42:12,000 >> 물론 iOS를 이러한 서로 다른 옵션을 모두 탐험 해보세요. 784 00:42:12,000 --> 00:42:14,000 규모에 대한 질문? 785 00:42:14,000 --> 00:42:18,000 다시 말하지만, 당신이 알고 있어야 단지 흥미로운 디자인 패턴. 786 00:42:18,000 --> 00:42:22,000 자, 다음 표 전망을 살펴 보자. 787 00:42:22,000 --> 00:42:26,000 테이블보기는 기본적으로 모든 iOS를의 장소 위에 항목의 목록입니다. 788 00:42:26,000 --> 00:42:29,000 귀하의 모든 연락처를 뒤집어 경우보고 789 00:42:29,000 --> 00:42:34,000 설정 페이지 및 물건 목록의 종류 테이블보기를라고합니다. 790 00:42:34,000 --> 00:42:37,000 iOS를에서 테이블 뷰를 구현하는 것은 매우 간단합니다. 791 00:42:37,000 --> 00:42:41,000 대신 그 UIViewController에서 내려 클래스를 만드는 792 00:42:41,000 --> 00:42:44,000 우리가 단순히 말보다 필요하기 전에 우리가했던 것처럼 793 00:42:44,000 --> 00:42:46,000 UIViewController 내가하고 싶은 않는 모든 794 00:42:46,000 --> 00:42:50,000 나는 UITableViewController 내가하고 싶은 않는 모든 말을 795 00:42:50,000 --> 00:42:54,000 수 있도록하는 것은 단순히 완전히 우리를 위해 이루어집니다 몇 가지 추가를 추가합니다. 796 00:42:54,000 --> 00:42:58,000 우리는 기본적으로 테이블의 내부의 공백을 채워 거의 작업을 수행해야합니다. 797 00:42:58,000 --> 00:43:02,000 >> 제가 몇 가지 질문에 대답해야하는 테이블을 표시하기 위해. 798 00:43:02,000 --> 00:43:06,000 대답 할 필요가 첫 번째 질문은 다음 표에 나와 있습니다 얼마나 많은 부분입니까? 799 00:43:06,000 --> 00:43:08,000 귀하의 연락처 응용 프로그램을 통해 플 리핑 할 때 당신은 어떤 종류의 있다는 것을 알 수 800 00:43:08,000 --> 00:43:12,000 으로 주최 한 다음에 학사 학위를 가지고, 당신은 그 작은 하위 헤더가 있습니다. 801 00:43:12,000 --> 00:43:14,000 사람들의 각 섹션이라고합니다. 802 00:43:14,000 --> 00:43:16,000 당신은 수도하거나 필요하지 않을 수 있습니다. 803 00:43:16,000 --> 00:43:19,000 당신이해야 할 첫 번째 일은 메서드를 구현 is 804 00:43:19,000 --> 00:43:22,000 numberOfSectionsInTableView : tableView했다. 805 00:43:22,000 --> 00:43:25,000 그건 단순히 당신이 얼마나 많은 섹션 반환 806 00:43:25,000 --> 00:43:29,000 그래서이 집이 당신이 하나의 큰 테이블보기가있는 경우 하나를 반환 말을 수 있습니다. 807 00:43:29,000 --> 00:43:33,000 iOS를 알고 필요로하는 다음 질문은 당신이 얼마나 많은 행이있어서인가요? 808 00:43:33,000 --> 00:43:36,000 예를 들어, 테이블보기를 통해 뒤집어. 809 00:43:36,000 --> 00:43:39,000 당신이보고있는 노래의 고정 번호 나 연락처 고정 수 있습니다. 810 00:43:39,000 --> 00:43:41,000 경우, 물론, 많은 아니고 야 811 00:43:41,000 --> 00:43:44,000 그래서 그 iOS를 표시 할 얼마나 많은 세포가 알고있는 방법은 다음과 같습니다. 812 00:43:44,000 --> 00:43:46,000 >> 다시 말하지만,이 반환 3과 같은 말을 수 있습니다. 813 00:43:46,000 --> 00:43:49,000 내 테이블보기는 3 행이 있습니다. 814 00:43:49,000 --> 00:43:52,000 마지막으로, iOS를, 각 세포가 어떻게 생겼는지 알 필요가 815 00:43:52,000 --> 00:43:54,000 그래서 그런 일이 실제로거야 것은, 거기에이 방법을 부르 816 00:43:54,000 --> 00:43:57,000 이 tableView : cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 당신의 테이블의 내부에 하나 하나 셀에서이 메서드를 호출하는거야. 818 00:44:01,000 --> 00:44:03,000 어떻게 그것을 호출하는 방법을 몇 번 알 수 있습니까? 819 00:44:03,000 --> 00:44:06,000 글쎄, 당신은 섹션의 행의 수의 안쪽을했다. 820 00:44:06,000 --> 00:44:08,000 우리는 우리의 세포의 각각에이 전화를하고 821 00:44:08,000 --> 00:44:11,000 당신은 실제로 같은 일을 할 수있는 안을이 있습니다 822 00:44:11,000 --> 00:44:16,000 텍스트를 설정하거나 오른쪽에있는 저 작은 파란색 버튼이 무엇을 말해. 823 00:44:16,000 --> 00:44:19,000 이러한 세포를 가져 오기위한 패턴, 우리는이 방법을 사용하는 것 824 00:44:19,000 --> 00:44:22,000 dequeueReusableCellWithIdentifier했다. 825 00:44:22,000 --> 00:44:29,000 >> 오브젝티브-C는 자신의 방법 이름의 터무니없는 길이 매우 잘 알려진 사실입니다 826 00:44:29,000 --> 00:44:32,000 이 정말 포인트 예에서 좋은 경우가 있습니다. 827 00:44:32,000 --> 00:44:37,000 이건 뭐야이 방법은 수행 단 내가 나에게 셀을주고 싶다 말한다. 828 00:44:37,000 --> 00:44:39,000 그냥 iOS를 할까. 829 00:44:39,000 --> 00:44:41,000 당신의 iPod에 100,000 곡 같은가있는 경우 830 00:44:41,000 --> 00:44:45,000 무엇 iOS를하고 싶어하지 않는 것은, 100,000 셀을 할당 is 831 00:44:45,000 --> 00:44:48,000 귀하의 목록의 맨 위에 있다면, 당신은 정말 메모리를 할당 할 필요가 없기 때문에 832 00:44:48,000 --> 00:44:51,000 다운 99000 행입니다 셀에 대해? 833 00:44:51,000 --> 00:44:55,000 아니, 당신이 스크롤대로 당신은 진행하는데로 할당 종류가 가능합니다. 834 00:44:55,000 --> 00:44:57,000 이것은 당신을 위해 수행됩니다. 835 00:44:57,000 --> 00:44:59,000 당신은 그 바보 같은 성능 그런거 걱정 할 필요가 없습니다. 836 00:44:59,000 --> 00:45:02,000 당신이 말하는 모든 당신은이 방법 dequeueReusableCellWithIdentifier를 불러 837 00:45:02,000 --> 00:45:06,000 당신이 내가 당신을위한 새로운 셀을 만들거다해야하는 경우이 방법은, 알 말한다. 838 00:45:06,000 --> 00:45:09,000 >> 당신은 테이블의 맨 아래에있는 고한다면 당신은 이미 일부 셀을 할당 한 839 00:45:09,000 --> 00:45:12,000 당신이 정말로 조만간 필요 없어하는 표 상단에있는 840 00:45:12,000 --> 00:45:15,000 난 당신 대신 새로운 하나를 할당 다시 그 중 하나를 주겠다 841 00:45:15,000 --> 00:45:17,000 등이 좋은 성능 관심사입니다. 842 00:45:17,000 --> 00:45:21,000 당신은 세포를 직접 할당 할 필요가 없습니다. 843 00:45:21,000 --> 00:45:23,000 그건 셀을 되돌려 줄거야. 844 00:45:23,000 --> 00:45:25,000 당신에 셀 개체를 반환하는거야. 845 00:45:25,000 --> 00:45:28,000 일단 당신이 그것에 물건을 할 수있는 세포 개체가 있습니다. 846 00:45:28,000 --> 00:45:32,000 당신은 텍스트 레이블이라는 속성과 셀의 텍스트를 설정할 수 있습니다. 847 00:45:32,000 --> 00:45:36,000 당신은 오른쪽 또는 다른 임의의 것들에 그 화살표를 추가 할 수 있습니다 848 00:45:36,000 --> 00:45:41,000 이 다른 속성과 accessoryType라는 등 등. 849 00:45:41,000 --> 00:45:46,000 >> 의 실제로 지금 테이블 뷰를 구현 살펴 보자. 850 00:45:46,000 --> 00:45:49,000 이 프로젝트를 만들 때 851 00:45:49,000 --> 00:45:53,000 오히려 단일보기 응용 프로그램을 말하는 것보다 사실은 제가 여기 온 852 00:45:53,000 --> 00:45:57,000 마스터 세부 응용 프로그램에, 그래서 기본적으로이 메일 응용 프로그램에 해당하는 853 00:45:57,000 --> 00:46:01,000 왼쪽에있는 테이블보기를 누른 다음 오른쪽에있는 내용으로 아이 패드 있습니다. 854 00:46:01,000 --> 00:46:07,000 iPod 또는 아이폰에서이 하나의 테이블보기에 해당하는 것입니다. 855 00:46:07,000 --> 00:46:10,000 내 시작 코드를 가지고있는 곳입니다. 856 00:46:10,000 --> 00:46:13,000 >> 의 처음 스토리 보드를 살펴 보자. 857 00:46:13,000 --> 00:46:15,000 이 모든 것이 기본적으로 만들어 나를 위해 이루어졌다. 858 00:46:15,000 --> 00:46:18,000 이 탐색 바, 예를 들어 셀 모양 수있는 걸 보여 주었다 859 00:46:18,000 --> 00:46:22,000 그리고, 더블,이 링크를 눌러 제목을 변경할 수 있습니다. 860 00:46:22,000 --> 00:46:25,000 기타 UI의 문제가 거기를 처리 할 수​​ 있습니다. 861 00:46:25,000 --> 00:46:27,000 헤더 파일은 아주 간단 보입니다. 862 00:46:27,000 --> 00:46:30,000 오히려이 UIViewController 말은보다 우리는 이제 이런일이 말하는 863 00:46:30,000 --> 00:46:35,000 TableViewController, 그래서 우리는 모든 테이블 메서드를 호출 할 알아요. 864 00:46:35,000 --> 00:46:38,000 나는 표현하는거야 속성을 만들려면 다음 865 00:46:38,000 --> 00:46:40,000 내 테이블의 내부 일. 866 00:46:40,000 --> 00:46:43,000 이 테이블은 임의로 표시 할 것입니다 867 00:46:43,000 --> 00:46:46,000 과일의 목록, 그리고 그래서 난 배열을 만들 필요가 868 00:46:46,000 --> 00:46:49,000 있는 나는 과일을 삽입 할 수 있습니다. 869 00:46:49,000 --> 00:46:52,000 내 구현 파일 먼저 내부 나하고 싶은 870 00:46:52,000 --> 00:46:55,000 내가이 배열을 초기화되도록 할 것입니다. 871 00:46:55,000 --> 00:46:58,000 >> 나는 alloc은 초기화 말하길 내 과일 배열을 생성, 872 00:46:58,000 --> 00:47:03,000 그리고 난 여기에 다른 3보다 훨씬 더 논쟁 중 하나는이 4 가지를 추가하는거야. 873 00:47:03,000 --> 00:47:06,000 그리고 지금은 크기가 4 배열되어 있습니다. 874 00:47:06,000 --> 00:47:08,000 우리는 CS50에를 떨고 있어요. 875 00:47:08,000 --> 00:47:11,000 지금은 크기가 4 배열되어 있습니다. 876 00:47:11,000 --> 00:47:13,000 지금은, 실제로 이러한 질문에 대한 답변을 시작테니까 877 00:47:13,000 --> 00:47:16,000 내가이 응용 프로그램을 만들 때이 모든이 이미 나를 위해 이루어졌다. 878 00:47:16,000 --> 00:47:19,000 나는 테이블보기에서 섹션의 번호를 입력 할 필요가 없습니다. 879 00:47:19,000 --> 00:47:22,000 그것은 이미 거기 있었고, 전 여백을 작성 한 것 뿐이예요. 880 00:47:22,000 --> 00:47:24,000 나는 얼마나 많은 섹션이 있습니까? 881 00:47:24,000 --> 00:47:26,000 하나. 다됐다. 882 00:47:26,000 --> 00:47:28,000 나는 얼마나 많은 행이합니까? 883 00:47:28,000 --> 00:47:31,000 음, 모든 과일에 대해 하나의 행을 가지고,이 카운트 884 00:47:31,000 --> 00:47:34,000 얼마나 큰하다고 모든 배열의 속성인가? 885 00:47:34,000 --> 00:47:36,000 그래서 내가 얼마나 많은 행입니다. 886 00:47:36,000 --> 00:47:42,000 마지막으로, 나는 어떤 각 셀 보이는데 말을해야합니까? 887 00:47:42,000 --> 00:47:46,000 나는 dequeueReusableCellWithIdentifier 말거야. 888 00:47:46,000 --> 00:47:48,000 >> 다시 말하지만, 이것은 이미 나를 위해 작성되었습니다. 889 00:47:48,000 --> 00:47:51,000 이 자신을 필요가 없었다, 나는 돌아가려면 890 00:47:51,000 --> 00:47:54,000 이 위치에서 해당 셀. 891 00:47:54,000 --> 00:47:57,000 우리는 모든 단일 셀에서이 같은 메소드를 호출하는 것을 기억 892 00:47:57,000 --> 00:48:01,000 여기이 인수,이 indexPath 인수, 893 00:48:01,000 --> 00:48:03,000 들어 왔어요 어떤 행 말한다 894 00:48:03,000 --> 00:48:05,000 여기 indexPath.row를 말한다면 895 00:48:05,000 --> 00:48:09,000 이 0이됩니다, 다음 1되고, 다음 2 될 것입니다, 그리고 내가 알 수 있도록이 있습니다 896 00:48:09,000 --> 00:48:11,000 제가 현재 표시하는지 셀. 897 00:48:11,000 --> 00:48:15,000 이 textLabel 속성을 사용하여 셀의 텍스트를 설정하려면 898 00:48:15,000 --> 00:48:19,000 내 과일 배열 안에 가서 받아 899 00:48:19,000 --> 00:48:21,000 각 행에 해당하는 개체입니다. 900 00:48:21,000 --> 00:48:24,000 이 문자열 인 경우, 지금은 설정 해요 901 00:48:24,000 --> 00:48:28,000 문자열에 텍스트 속성입니다. 902 00:48:28,000 --> 00:48:30,000 나는 다른 일을 할 수 있습니다. 903 00:48:30,000 --> 00:48:32,000 나는 또한, 각각의 셀에 이벤트 핸들러를 등록 할 수 있습니다 904 00:48:32,000 --> 00:48:35,000 나는이 세포의 각을 누르면 이렇게하면 905 00:48:35,000 --> 00:48:39,000 이 didSelectRowAtIndexPath,이 날 위해 호출 할 것입니다 906 00:48:39,000 --> 00:48:42,000 그래서 단순히이 정의하여 지금은 어떻게 처리 할 수​​ 있습니다 907 00:48:42,000 --> 00:48:46,000 다시 셀을 탭하고, 때, 우리는 셀이 도청 한을 전달하고 908 00:48:46,000 --> 00:48:50,000 수 있도록 우리는 우리의 모든 셀이 동일한 이벤트 핸들러를 다시 사용할 수 있습니다. 909 00:48:50,000 --> 00:48:53,000 >> 다시 말하지만,이 iOS를 나에게하고있다 일입니다. 910 00:48:53,000 --> 00:48:55,000 또 다른 성가신 팝업을 표시하자 911 00:48:55,000 --> 00:48:59,000 그 단순히 뭔가 일을 선택한 말한다 912 00:48:59,000 --> 00:49:04,000 행 개체가 될 것입니다. 913 00:49:04,000 --> 00:49:10,000 내가 이걸 실행하면,이 멋진 테이블보기를 가졌어요 914 00:49:10,000 --> 00:49:14,000 이러한 과일 각각에 대해 하나의 행으로, 그리고 만약 내가 하나를 누르고 915 00:49:14,000 --> 00:49:16,000 그것은 무슨 일이 있었는지 말해줍니다. 916 00:49:16,000 --> 00:49:21,000 이해가가? 917 00:49:21,000 --> 00:49:24,000 가 앱의 약간 더 복잡한 구축, 918 00:49:24,000 --> 00:49:28,000 당신은 토마토를 따 클릭만큼입니다. 919 00:49:28,000 --> 00:49:31,000 storyboarding에 대한 좋은 부분 920 00:49:31,000 --> 00:49:35,000 그것은 단지, 개별적으로 우리가 디자인 화면을 도움이 안는데 921 00:49:35,000 --> 00:49:38,000 또한, 우리는 우리의 전체 응용 프로그램을 함께 묶어 도와주지 922 00:49:38,000 --> 00:49:42,000 우리가 건물이 될 것 마지막 응용 프로그램이 좋은 스포츠 뉴스 리더입니다 923 00:49:42,000 --> 00:49:45,000 그리고 이제 여러 화면을 가지고거야, 그래서 사실은 나타낼 수 924 00:49:45,000 --> 00:49:48,000 스토리 보드에서 이러한 여러 화면의 각, 925 00:49:48,000 --> 00:49:52,000 그래서 축소하고 높은 수준에서 내 응용 프로그램을 볼 수 있습니다. 926 00:49:52,000 --> 00:49:55,000 >> 내 스토리 보드의 새로운 요소 내부를 만들려면 927 00:49:55,000 --> 00:49:59,000 이 인터페이스 빌더의 내부 정말 간단합니다. 928 00:49:59,000 --> 00:50:01,000 내가이에 다른 화면을 추가하려는 경우, 예를 들어, 929 00:50:01,000 --> 00:50:06,000 제가 처음 애플을 너무나 사랑하는 핀치 줌으로 축소 할 수 있습니다 930 00:50:06,000 --> 00:50:09,000 아래로 여기 당신이 버튼을 검색하기 전에 931 00:50:09,000 --> 00:50:12,000 그리고 버튼을 드래그 앤 드롭 932 00:50:12,000 --> 00:50:15,000 나는 새로운 화면을 만들려면 사실 난 단지 드래그 앤 드롭 할 수 있습니다 933 00:50:15,000 --> 00:50:19,000 전체 뷰 컨트롤러, 내가이를 선택하면,, 여기에 차를 세우고 934 00:50:19,000 --> 00:50:23,000 이봐, 거기 다른 화면이고, 그래서 지금 같은 스토리 보드 파일을 사용 935 00:50:23,000 --> 00:50:26,000 내 응용 프로그램의 내부 화면을 모두 할 수 있습니다, 나는 축소 할 수 있습니다 936 00:50:26,000 --> 00:50:28,000 하고 상호 작용하는 방식을 참조하십시오. 937 00:50:28,000 --> 00:50:32,000 이 아직 상호 작용하지 않습니다. 938 00:50:32,000 --> 00:50:36,000 이 두 화면이 상호 작용하는 방법은 관계를 정의합니다. 939 00:50:36,000 --> 00:50:39,000 당신은 기본적으로, 당신이 버튼을 누르면이 화면을 말할 수 940 00:50:39,000 --> 00:50:42,000 난 당신이 새로운 화면으로 슬라이드하고 싶습니다. 941 00:50:42,000 --> 00:50:44,000 즉, 관계의 종류가 942 00:50:44,000 --> 00:50:46,000  첫 번째 화면과 두 번째 화면. 943 00:50:46,000 --> 00:50:49,000 당신은 기본적으로 저 버튼에서 두 번째 화면에 화살표를해야합니다 944 00:50:49,000 --> 00:50:53,000 내가 가고 싶은 곳이 버튼을 누르면는 걸 말하고. 945 00:50:53,000 --> 00:50:57,000 우리는 클릭하여 해당 콘센트를 정의하기 위해 드래그 제어 것처럼 946 00:50:57,000 --> 00:51:01,000 우리는 이러한 segues을 정의하기 위해 같은 일을 할 겁니다. 947 00:51:01,000 --> 00:51:05,000 >> 우리는 그 일에 대한 예를보고, 우리가 실제로 전환하기 전에합니다 948 00:51:05,000 --> 00:51:08,000 한 화면에서 다른 iOS를이 메소드를 호출 할 수있을만큼 좋다 949 00:51:08,000 --> 00:51:11,000 prepareForSegue라고, 우리는 시작할 수는 곳이에요 950 00:51:11,000 --> 00:51:14,000 한 응용 프로그램에서 다른 데이터를 전송. 951 00:51:14,000 --> 00:51:17,000 예에서 우리가 볼 수있어하는 것은 기본적으로 우리에게 수 952 00:51:17,000 --> 00:51:20,000 리그와 부서에서 야구 팀을 필터링 할 수 있습니다. 953 00:51:20,000 --> 00:51:23,000 제가 리그를 선택하면 예를 들어, 내가 전환 원하는 954 00:51:23,000 --> 00:51:25,000 나는 부서의 모든을 표시 할 수 있습니다 제 다음 화면으로 955 00:51:25,000 --> 00:51:27,000 그 리그 또는 모든 다른 팀 인치 956 00:51:27,000 --> 00:51:31,000 내가 무슨 팀이 표시되어야합니다 해당 화면으로 전송해야합니다. 957 00:51:31,000 --> 00:51:35,000 여기서이 방법을 활용거야 그런 짓을합니다. 958 00:51:35,000 --> 00:51:39,000 >> 마지막으로, iOS를에 그냥 무작위로 가리 킵니다. 959 00:51:39,000 --> 00:51:41,000 당신은 데이터를 저장하려는 경우 코어 데이터라는이 할 일이있어 960 00:51:41,000 --> 00:51:44,000 이는 실제로 작업을 복잡 종류입니다. 961 00:51:44,000 --> 00:51:47,000 당신은 또한 데이터를 저장하는 데 SQL을 사용할 수 있습니다 962 00:51:47,000 --> 00:51:51,000 이는 다시, 작업을 더 복잡 측면에 좋은하지만 kind으로되어 있습니다 963 00:51:51,000 --> 00:51:55,000 하지만 iOS를도, 재산 목록이라고하는 정말 멋진 일을 지원합니다 964 00:51:55,000 --> 00:52:00,000 및 속성 목록은 키 값 쌍을 나타내는 파일입니다. 965 00:52:00,000 --> 00:52:03,000 당신은 키의 목록을 정의하고이 키가 배열 될 것입니다 말한다. 966 00:52:03,000 --> 00:52:06,000 이 키는 기본적으로 당신이 할 수있는 일을 문자열 수있을거야,되고 967 00:52:06,000 --> 00:52:10,000 JSON에 당신은 속성 목록 안에서 할 수있는 968 00:52:10,000 --> 00:52:14,000 그래서이 정말 잘 우리는 일부 데이터와 함께 작업 할 수 있습니다. 969 00:52:14,000 --> 00:52:18,000 예를 들어, 내가 만든 것이이 Teams.plist 있습니다. 970 00:52:18,000 --> 00:52:22,000 나는 새 plist 파일을 만들어, 내가 드릴 다운 할 수 있습니다. 971 00:52:22,000 --> 00:52:26,000 이 사전이며,이 사전이며, 이것들은, 문자열 972 00:52:26,000 --> 00:52:30,000 등이 JSON 문서의 멋진 그래픽으로 표현한 것입니다 973 00:52:30,000 --> 00:52:33,000 또는 키 값 쌍의 단지 세트 974 00:52:33,000 --> 00:52:37,000 그래서이 내 응용 프로그램의 내부 작업을 할 거라고 데이터입니다. 975 00:52:37,000 --> 00:52:40,000 >> 의 처음 여기 와서 보자. 우리는 지금 더 많은 파일을 갖고 있습니다. 976 00:52:40,000 --> 00:52:44,000 그러나의 처음 스토리 보드에 여기에 대해 얘기해 보도록하겠습니다. 977 00:52:44,000 --> 00:52:48,000 스토리 보드 - 여기 경우 확대 할 수 있습니다 아웃 - 978 00:52:48,000 --> 00:52:51,000 우리는 지금이 내 응용 프로그램의 흐름 것을 볼 수 있습니다. 979 00:52:51,000 --> 00:52:53,000 처음이 화면에 시작 겠어. 980 00:52:53,000 --> 00:52:55,000 난이 화면으로 드릴 다운거야 981 00:52:55,000 --> 00:52:58,000 그리고이 화면으로 드릴 다운거야, 우리는 여기서 볼 수 I 가지 경우 982 00:52:58,000 --> 00:53:04,000 우리가이 화살표가 여기에서 여기로 이동 한 주위에 다음 중 하나를, 이동 983 00:53:04,000 --> 00:53:08,000 나는 조금 확대하면 내가 그 화살표를 정의하는 방법은했습니다 984 00:53:08,000 --> 00:53:12,000 그리고이 뷰 컨트롤러에 와서 경우, 985 00:53:12,000 --> 00:53:16,000 여기에는 셀, 그리고 당신이 셀을 터치 할 때 그런 말을 할 986 00:53:16,000 --> 00:53:18,000 당신이 다른 화면으로 슬라이드하고 싶습니다. 987 00:53:18,000 --> 00:53:21,000 나는 단순히 컨트롤을 누른 상태에서 할 수 있습니다 988 00:53:21,000 --> 00:53:26,000 조금 위에 스크롤, 컨트롤을 누른 상태에서이 셀을 통해 끌어 가자. 989 00:53:26,000 --> 00:53:30,000 >> 그리고 여기에 우리는 당신이 사용하려는 전환 건지 말? 990 00:53:30,000 --> 00:53:32,000 당신은 푸시라고 부르지 슬라이드 가지를 사용 하시겠습니까? 991 00:53:32,000 --> 00:53:34,000 당신은 바닥에서 밀어 하시겠습니까? 992 00:53:34,000 --> 00:53:36,000 그는 모달라고. 993 00:53:36,000 --> 00:53:40,000 그리고 내가 한 번이 중 하나를 클릭, 그것은 저를 위해이 화살표를 그릴거야 994 00:53:40,000 --> 00:53:44,000 그리고 내가 사실은 그래픽이 버튼을 누를 때 어떤 일이 벌어지는 지 처리 한 것을 의미합니다. 995 00:53:44,000 --> 00:53:48,000 사실은 한 화면에서 다음 하나에 미끄러 할 코드를 작성 없습니다. 996 00:53:48,000 --> 00:53:51,000 나는 인터페이스 빌더의 시각에서 정의. 997 00:53:51,000 --> 00:53:55,000 내가이 화살표를 클릭하면, 우리는이 일 이름을 준 것을 볼 수 있습니다. 998 00:53:55,000 --> 00:53:59,000 나는 그것을 showDivisions라고,이 내가 아는 수 있다는 것입니다 999 00:53:59,000 --> 00:54:03,000 무엇 전환에 대해 발생하는 것입니다 그리고 왜 잠시만에서 우리는 볼 수 있습니다. 1000 00:54:03,000 --> 00:54:06,000 그래서 내가 내 응용 프로그램에서 다른 화면을 유선 한 방법입니다. 1001 00:54:06,000 --> 00:54:09,000 이 버튼 예를 들어, 대신 테이블보기이라면, 1002 00:54:09,000 --> 00:54:11,000 나는 다음 화면으로 드래그 버튼을 클릭을 통제 할 수 1003 00:54:11,000 --> 00:54:16,000 그리고 내가 탐색 그​​렇게 할 수있는 방법입니다. 1004 00:54:16,000 --> 00:54:19,000 >> 정말 빠르게, 우리는 MasterViewController에 올 경우, 1005 00:54:19,000 --> 00:54:22,000 다시 한 번, 우리는 단순히 물건의 목록을 정의 할거야 1006 00:54:22,000 --> 00:54:26,000 그는 테이블보기에 표시됩니다. 1007 00:54:26,000 --> 00:54:29,000 여기 내가 그 plist 파일을 먹고 싶어 말은 1008 00:54:29,000 --> 00:54:32,000 그리고 당신은, 사전에을로드하려면 1009 00:54:32,000 --> 00:54:35,000 그리고 일단 그 사전을 가지고, 난 다시는 그 같은 질문에 대답 할거야. 1010 00:54:35,000 --> 00:54:37,000 다음 섹션의 수입니다. 1011 00:54:37,000 --> 00:54:41,000 하나는 하나의 모든 리그에 대한 행, 각 셀의 텍스트가 1012 00:54:41,000 --> 00:54:46,000 등등 첫 번째, 첫 번째 리그 두 번째 리그, 그리고 중 하나가 될 것입니다. 1013 00:54:46,000 --> 00:54:51,000 마지막으로, 우리가 방금 prepareForSegue라고 본이 방법을 사용하는거야 1014 00:54:51,000 --> 00:54:54,000 그리고 이건 나 클릭하면 해고 할거야 방법입니다 1015 00:54:54,000 --> 00:54:57,000 이러한 행 중 하나에 따라서 그 전환을 활성화 1016 00:54:57,000 --> 00:54:59,000 나는 화살표를 설정 한. 1017 00:54:59,000 --> 00:55:02,000 이것은 내가 여러 할 수 있습니다 답니다 1018 00:55:02,000 --> 00:55:05,000 한 화면에서 다른 관계. 1019 00:55:05,000 --> 00:55:08,000 I 2 버튼이 있으며 각 버튼을 다른 화면으로 이동하는 경우 1020 00:55:08,000 --> 00:55:10,000 나는 각 버튼에 대해 2 segues, 1을 가지고 간다. 1021 00:55:10,000 --> 00:55:14,000 그러나이 prepareForSegue는 재사용 할 것, 다시입니다 1022 00:55:14,000 --> 00:55:17,000 다른 관계 각각에 대해, 그래서 내가 방법을해야한다는 것을 의미합니다 1023 00:55:17,000 --> 00:55:21,000 당신이 첫 번째 버튼을 누르거나 두 번째 버튼을 누르면 식별. 1024 00:55:21,000 --> 00:55:25,000 >> 그 거랑 이거 랑에게 이름이 showDivisions을 주신 걸 기억하세요 1025 00:55:25,000 --> 00:55:29,000 그건 내가 이제이 활성화 된 걸로 반복하는 거죠 것을 알고 방법은 다음과 같습니다. 1026 00:55:29,000 --> 00:55:32,000 내가 원하는 건 내가 말하고 싶어요 1027 00:55:32,000 --> 00:55:35,000 내가 방금 공격 무엇을 할 수 있는지 알아내는 원 1028 00:55:35,000 --> 00:55:38,000 그리고 그렇게를 얻을, 내가 선택한 행에 대한 indexPath를 원하는 말을 할 수 1029 00:55:38,000 --> 00:55:42,000 방금 클릭 한 위치를 indexPath 기억은 말한다 1030 00:55:42,000 --> 00:55:47,000 그리고 난 내가 어디로 파악하고자하고 싶은 말은. 1031 00:55:47,000 --> 00:55:50,000 이 destinationViewController, 그 거랑 이거 랑 속성입니다. 1032 00:55:50,000 --> 00:55:53,000 즉, 내가 갈거야 화면입니다 1033 00:55:53,000 --> 00:55:56,000 그래서 내가 갈거야 화면이 DivisionsViewController이라고 알고 1034 00:55:56,000 --> 00:55:59,000 나는 그 클래스를 만들어 있기 때문에 1035 00:55:59,000 --> 00:56:02,000 그래서 지금은 d.divisions 말한다면 1036 00:56:02,000 --> 00:56:06,000 이제 나는 떠나 렵니다 뷰 컨트롤러의 속성을 설정거야. 1037 00:56:06,000 --> 00:56:10,000 이건 내가 다른 화면으로 한 화면에서 데이터를 보낼거야 방법입니다. 1038 00:56:10,000 --> 00:56:13,000 >> 그냥이 DivisionsViewController보고 1039 00:56:13,000 --> 00:56:16,000 여기서 볼 수. H 파일에 1040 00:56:16,000 --> 00:56:20,000 , 거기 부동산 부문이 있으며, 그건 내가 기본적으로 채우지 있는거 잖아 1041 00:56:20,000 --> 00:56:25,000 그래서 내가에 해당하는 부서를 표시 것만 알고 방법 1042 00:56:25,000 --> 00:56:28,000 제가 클릭하고, 다시 그 리그 1043 00:56:28,000 --> 00:56:31,000 실제 테이블보기는 사람들을 대답 꽤 많이 동일한 모양 1044 00:56:31,000 --> 00:56:34,000 세 가지 간단한 질문에뿐만 아니라 식별 1045 00:56:34,000 --> 00:56:37,000 당신이 다음 화면으로 이동하면 어떻게됩니까. 1046 00:56:37,000 --> 00:56:40,000 여기에 다른 것들 그냥 몇. 1047 00:56:40,000 --> 00:56:43,000 여기에서 상단에 나타날 것보다는 # 포함 말하고 1048 00:56:43,000 --> 00:56:45,000 지금은 # 가져 말하는거야. 1049 00:56:45,000 --> 00:56:47,000 이건 그냥 오브젝티브-C 것입니다. 1050 00:56:47,000 --> 00:56:52,000 가져 오기, 기본적으로 포함의 보이는데 버전입니다 1051 00:56:52,000 --> 00:56:57,000 그리고 예를 들어, 우리는이 클래스가 무엇인지 알 필요가 1052 00:56:57,000 --> 00:57:00,000 그래서 난 그냥 DivisionsViewController 말을 할 수 없습니다. 1053 00:57:00,000 --> 00:57:05,000 우리는 우리의. C 파일의 standardio.c 내부 해시 태그하지 않은 경우 1054 00:57:05,000 --> 00:57:07,000 컴파일러는 printf 아무 생각 없었어요. 1055 00:57:07,000 --> 00:57:12,000 마찬가지로, 내가 DivisionsViewController을 가져 오지 않는 경우 1056 00:57:12,000 --> 00:57:16,000 컴파일러는 정말 DivisionsViewController이 뭔지는 전혀 감이 없습니다. 1057 00:57:16,000 --> 00:57:19,000 그냥 다른. m 파일의 내부는 가져 오기가 있는지 확인해야합니다 1058 00:57:19,000 --> 00:57:25,000 해당. h 파일 그래서 컴파일러가 무슨 일이 일어나고 있는지 알고. 1059 00:57:25,000 --> 00:57:31,000 >> 마지막으로, 어떻게 애플은 궁극적으로 웹보기를 사용하여 일부 데이터를 표시합니다 않습니다 1060 00:57:31,000 --> 00:57:35,000 그래서 웹보기는 삽입 할 수있는 개체입니다 1061 00:57:35,000 --> 00:57:37,000 앱 내부에 약간의 웹 브라우저. 1062 00:57:37,000 --> 00:57:40,000 당신이해야 할 모든 귀하의 웹 브라우저에 URL을 제공 is 1063 00:57:40,000 --> 00:57:43,000 그래서, mlb.mlb.com에 가고 싶어요 1064 00:57:43,000 --> 00:57:46,000 이, 난 각 팀의 홈 페이지에 액세스 할 수있는 방법입니다 1065 00:57:46,000 --> 00:57:49,000 그리고이 URL에 전달하여 1066 00:57:49,000 --> 00:57:52,000 , 웹보기 날 위해를 표시 할 수 있습니다, 그리고 주변 탐색 할 수 있습니다 1067 00:57:52,000 --> 00:58:01,000 그리고 시뮬레이터는 하나 사용하고 있습니다. 1068 00:58:01,000 --> 00:58:03,000 이제이 내 plist에서 왔어. 1069 00:58:03,000 --> 00:58:07,000 내가이를 클릭하면이 또한 내 plist에서 온,이 미끄러지는 처리했습니다 1070 00:58:07,000 --> 00:58:09,000 그 segues을 정의하여. 1071 00:58:09,000 --> 00:58:12,000 난 이걸 클릭하고 하나 이상의 1072 00:58:12,000 --> 00:58:15,000 지금 여긴 정말 그냥 그렇게 내 UIWebView입니다 1073 00:58:15,000 --> 00:58:19,000 여기 난 그냥 삽입하는 URL의 웹 사이트가 ... 1074 00:58:19,000 --> 00:58:21,000 나는 미친 짓을 처리 할 필요가 없습니다 않았다. 1075 00:58:21,000 --> 00:58:24,000 이 웹 페이지를 표시하는 방법입니다. 1076 00:58:24,000 --> 00:58:27,000 여기에 뒤로 버튼과 같은 상황이 또 나에게 부여됩니다 1077 00:58:27,000 --> 00:58:33,000 완전히 무료로 나는 segues를 사용하여 이러한 관계를 정의 때문입니다. 1078 00:58:33,000 --> 00:58:37,000 >> 질문? 그래. 1079 00:58:37,000 --> 00:58:40,000 [학생] 그래서 당신은 alloc을 사용하는 경우, 당신은 무료로 아무 것도 할 필요가 없어? 1080 00:58:40,000 --> 00:58:43,000 정확히, 당신 alloc 및 초기화 호출 할 때 당신은 그것을 확보 할 필요가 없습니다. 1081 00:58:43,000 --> 00:58:46,000 IOS 당신을 위해 모든 걸 처리 할 것이다. 1082 00:58:46,000 --> 00:58:51,000 멋진 일이야, 당신은 어떤 규칙을 위반하지. 그래. 1083 00:58:51,000 --> 00:58:54,000 당신은 화면에 맞게 수 많은 팀을 포함했다 [학생] 경우 1084 00:58:54,000 --> 00:58:58,000 이 자동으로 추가 할 필요가 뭔가를 스크롤 옵션을, 아니면까요? 1085 00:58:58,000 --> 00:59:01,000 내가 더 팀이 있다면 바로, 예를 들어, 자동으로 처리하는 1086 00:59:01,000 --> 00:59:04,000 저 스크롤, 모든 성능 문제 1087 00:59:04,000 --> 00:59:08,000 큰 테이블과 또한 나에게 완전히 처리됩니다. 1088 00:59:08,000 --> 00:59:11,000 >> 다른 질문? 1089 00:59:11,000 --> 00:59:13,000 이 코드의 모든 게시 할 예정이다. 1090 00:59:13,000 --> 00:59:16,000 우리는 가지, 더 작은 세부 사항 조금 넘는 glossed 1091 00:59:16,000 --> 00:59:19,000 하지만 같은 일이 웹보기에 몇 가지 속성을 설정 1092 00:59:19,000 --> 00:59:22,000 당신이 애플의 문서를 검색하여 얻을 수있는 것들이며, 1093 00:59:22,000 --> 00:59:24,000 정말입니다, 정말 잘 배치. 1094 00:59:24,000 --> 00:59:27,000 그들은 샘플 응용 프로그램이 많이 있고 예를 들어 용도가 1095 00:59:27,000 --> 00:59:34,000 다른 API의, 그래서 확실히 할 수 있다면 사람들을 정독. 1096 00:59:34,000 --> 00:59:36,000 그냥 몇 가지 유용한 링크가 살펴 할 수 있습니다. 1097 00:59:36,000 --> 00:59:38,000 다음은 몇 가지 유용한 문서 가이드입니다. 1098 00:59:38,000 --> 00:59:41,000 URL은 거대한 있으므로, 그들은 단축하고 있습니다. 1099 00:59:41,000 --> 00:59:44,000 첫 번째 하나는 문서의 전체 라이브러리입니다. 1100 00:59:44,000 --> 00:59:46,000 약간의 검색 바는 입력 버튼을 시작하면,이 1101 00:59:46,000 --> 00:59:50,000 당신에게 당신이 버튼을 사용하여 수행 할 수있는 모든 것들에 대한 모든 정보를 제공 시작합니다. 1102 00:59:50,000 --> 00:59:53,000 나는 또한 테이블보기 프로그래밍 가이드를 포함 시켰습니다. 1103 00:59:53,000 --> 00:59:56,000 그것보다 더욱 더 자세히 테이블 전망을 처리 1104 00:59:56,000 --> 01:00:00,000 동적 셀 또는 편집 셀을 추가하거나 제거 같은 일을하는 방법. 1105 01:00:00,000 --> 01:00:02,000 >> 어떻게 그런 일을 수행하는 방법을 보여줍니다 애플의 샘플 응용 프로그램이 많이가 있어요 1106 01:00:02,000 --> 01:00:05,000 마지막으로, 마지막 하나는 휴먼 인터페이스 가이드 라인입니다 1107 01:00:05,000 --> 01:00:09,000 이 방법은 기본적으로 UI 구성 요소의 일부 토론입니다 1108 01:00:09,000 --> 01:00:12,000 등 4 픽셀 4 픽셀입니다 버튼을하지 않습니다. 1109 01:00:12,000 --> 01:00:15,000 그거 괜찮은 생각이고, 애플은 당신이하고자하는 것들 1110 01:00:15,000 --> 01:00:18,000 좋은 디자인을 장려해야합니다. 1111 01:00:18,000 --> 01:00:23,000 >> 마지막으로 질문 우리가 완료되기 전에? 1112 01:00:23,000 --> 01:00:27,000 그래, 확실히 토론에 특별한 라벨을 갖게 돼 - 우린 해 주시기 바랍니다. 1113 01:00:27,000 --> 01:00:30,000 우리는 iOS를 하​​나해야하므로 분명히을 활용 해 주시기 바랍니다. 1114 01:00:30,000 --> 01:00:34,000 당신은 프로젝트에서 친구들과 함께 작업 할 경우 1115 01:00:34,000 --> 01:00:37,000 또는 일부 임의의 iOS를 품을 알아내는 데 도움이 1116 01:00:37,000 --> 01:00:40,000 저를 이메일을 보내 주시기하고, 확실히 모든 코드를 온라인 인해를 정독 1117 01:00:40,000 --> 01:00:43,000 이 시간에 관심을 우리는 가지 더 이상 glossed 1118 01:00:43,000 --> 01:00:45,000 사물의 미세한 결 세부 사항. 1119 01:00:45,000 --> 01:00:47,000 그러나 그렇지 않으면, 그럼 잘하여 iOS를 프로젝트에 행운, 그리고 우리가 희망 1120 01:00:47,000 --> 01:00:53,000 앱 스토어에 앱의 큰 유입. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]