1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU LIU : 이봐, 방법이야 그것은 모두가? 3 00:00:13,590 --> 00:00:20,250 그리고 이것은 아이폰 OS 응용 프로그램입니다 객관적인 C 세미나의 프로그램. 4 00:00:20,250 --> 00:00:21,520 그리고 내 이름은 티안 리우입니다. 5 00:00:21,520 --> 00:00:26,114 나는, 지금 로웰 주니어 해요 컴퓨터 과학에 집중하고있다. 6 00:00:26,114 --> 00:00:28,030 그래서이 세미나에 난 가는 너희들을 가르 칠 7 00:00:28,030 --> 00:00:30,770 응용 프로그램을 만드는 방법에 대해 조금. 8 00:00:30,770 --> 00:00:33,030 야호, 그것에 대한 흥분. 9 00:00:33,030 --> 00:00:36,790 >> 우리는 심지어 다이빙을 시작하기 전에 그래서 실제 프로그래밍 측면에, 10 00:00:36,790 --> 00:00:41,840 에 대해 이야기 신속 정말하자 왜 iOS 앱을 구축 할 수 있습니다? 11 00:00:41,840 --> 00:00:43,940 왜 아이폰 OS는 정말 대단입니까? 12 00:00:43,940 --> 00:00:47,250 첫 번째 문제 그럼, 첫 번째 우리를 위해 꽤 굉장 일, 13 00:00:47,250 --> 00:00:51,190 특히 CS50로 학생이 있다는 것입니다 아이폰 OS 14 00:00:51,190 --> 00:00:55,860 목표 C. 잘 사용, 거기에 스위프트라는 새로운 언어, 15 00:00:55,860 --> 00:00:58,260 그러나 우리는 안 갈거야 이 세미나에서 그를 사용합니다. 16 00:00:58,260 --> 00:01:01,540 당신이, 스위프트에 관심이 있다면 그것에 대해 독립적 인 세미나입니다. 17 00:01:01,540 --> 00:01:05,590 그러나 목표 C는 기본적으로 C. 의미의 수퍼 18 00:01:05,590 --> 00:01:10,230 당신이 C에서 사용하는 모든 것을 할 수 목표 C로 번역 19 00:01:10,230 --> 00:01:11,630 아주 쉽게. 20 00:01:11,630 --> 00:01:15,730 >> 나중에, 그 참으로 볼 수있는 바와 같이 아주 기본 구문은,있다 21 00:01:15,730 --> 00:01:19,790 기본적으로 똑같은, C 및 목적 C. 그래서, 22 00:01:19,790 --> 00:01:22,860 당신은 CS50 촬영 이후 이 최대까지 당신이 이미 23 00:01:22,860 --> 00:01:26,500 적어도 40 %를 목표 C를 알고있다. 24 00:01:26,500 --> 00:01:30,720 또한, 애플은 정말로있다 iOS 용 강력한 API. 25 00:01:30,720 --> 00:01:33,750 정말 미친 많이 있습니다 일 당신은 그것으로 할 수 있습니다. 26 00:01:33,750 --> 00:01:36,760 중 하나는 사람입니다 실제로 iOS 앱을 만들어 27 00:01:36,760 --> 00:01:40,600 제어 자동차에 대한 어떤 꽤 재미있다. 28 00:01:40,600 --> 00:01:42,610 아마 헬기가 더 흥미 롭군요. 29 00:01:42,610 --> 00:01:47,020 하지만 그 방법을 강력 아이폰 OS API가 될 수 있습니다. 30 00:01:47,020 --> 00:01:49,340 >> 그리고로에게 당신은 할 수 있습니다 지금 알아, 31 00:01:49,340 --> 00:01:53,000 스택 오버플로가 아마 중 하나입니다 가장 중요한 온라인 리소스 32 00:01:53,000 --> 00:01:54,250 사용 가능한. 33 00:01:54,250 --> 00:01:58,090 그리고 좋은 소식에 대한 모든 당신이 가능하게 할 수있는 하나의 문제 34 00:01:58,090 --> 00:02:01,840 구축하는 동안 생각하여 목표 C에서 최종 프로젝트, 35 00:02:01,840 --> 00:02:05,910 스택 오버 플로우 대답은 가능성이있다. 36 00:02:05,910 --> 00:02:07,420 그냥 끝내. 37 00:02:07,420 --> 00:02:12,780 이와 더불어, 아이폰 OS 정말 플랫폼 38 00:02:12,780 --> 00:02:16,260 당신은 거대한에 도달 할 수있는 곳 약간의 노력과 관객. 39 00:02:16,260 --> 00:02:20,170 그것은 안드로이드,처럼하지 모두의 예쁜 조각. 40 00:02:20,170 --> 00:02:22,540 >> 모든 아이폰 OS는 통합이다. 41 00:02:22,540 --> 00:02:25,920 그리고만큼 당신이 만들 때 아이폰 앱, 42 00:02:25,920 --> 00:02:31,260 당신이 할 수있는 아주 쉽게 포트 아이 패드에 그, 아이 패드 미니, 또는 다른 아이폰 크기. 43 00:02:31,260 --> 00:02:33,050 이들은 모두 정말 편리합니다. 44 00:02:33,050 --> 00:02:36,430 그리고 그것은 정말 좋은 친구를 감동합니다. 45 00:02:36,430 --> 00:02:38,920 당신은 아이폰을 보유 할 수 있습니다 와, 헤이 당신의 친구에게 46 00:02:38,920 --> 00:02:40,250 이것은 내가 만드는 응용 프로그램입니다. 47 00:02:40,250 --> 00:02:43,860 당신은 어떤을 위해 그렇게 할 수 좋은 데스크톱 응용 프로그램. 48 00:02:43,860 --> 00:02:48,870 >> 자, 이제 실제로하자 언어 목표 C.에 49 00:02:48,870 --> 00:02:52,910 그럼 왜 우리가 시작하지 않는 정말 기본 구문. 50 00:02:52,910 --> 00:02:57,410 나는 목표 전에 언급 한 바와 같이 C는 C의 기본적으로 상위의 51 00:02:57,410 --> 00:03:01,860 그래서 기본 구문 많이 있습니다 실제로 정확히 동일. 52 00:03:01,860 --> 00:03:06,150 변수를 선언하고 두 개의 변수를 더해 53 00:03:06,150 --> 00:03:09,440 우리는 마리오에했던 것처럼 정확하게이다. 54 00:03:09,440 --> 00:03:11,140 여기에 새로운 아무것도 없습니다. 55 00:03:11,140 --> 00:03:17,370 >> 루프 마찬가지로, 숙박 인 및 조건도 동일하다. 56 00:03:17,370 --> 00:03:22,370 당신은 당신과 단지 루프를 수행 할 수 있습니다 마리오 [들림]에서했던있다. 57 00:03:22,370 --> 00:03:26,280 그리고 당신은 조건을 수행 할 수 있습니다 다만 무엇을 58 00:03:26,280 --> 00:03:29,240 이전 페이지 세트에서 일을하고있다. 59 00:03:29,240 --> 00:03:33,400 그러나, 목표 C , C 완전하지 않습니다 60 00:03:33,400 --> 00:03:36,640 뭔가가 그 가지 이상한 그것에 대해입니다. 61 00:03:36,640 --> 00:03:42,340 >> 첫 번째 인 경우는 그 C 프로그래밍을하고, 일반적으로 전화 62 00:03:42,340 --> 00:03:46,310 포함하고 라이브러리 이름. 63 00:03:46,310 --> 00:03:49,860 그러나 목표 C에서 당신은 가져 오기를 호출합니다. 64 00:03:49,860 --> 00:03:53,100 기본적으로 기능을 말하는 그냥 다른 이름. 65 00:03:53,100 --> 00:03:55,940 그리고 문자열은 실제로 조금 이상한. 66 00:03:55,940 --> 00:03:58,250 당신은 첫 번째 볼 수 있습니다 가지 이상한 것은 67 00:03:58,250 --> 00:04:04,190 당신은 꽤 weird--을 가지고있다 sorry-- 당신은 꽤 이상한 NS가 68 00:04:04,190 --> 00:04:04,960 여기에 서명합니다. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 그리고 두 번째 것은 그 가지 이상한 71 00:04:09,160 --> 00:04:14,090 당신은 전에 기호가된다 실제로 문자열을 선언. 72 00:04:14,090 --> 00:04:19,209 그래서 기호의 기본적 의미 문자열이 문자열이 아니라입니다, 73 00:04:19,209 --> 00:04:20,880 실제로 목적이다. 74 00:04:20,880 --> 00:04:22,780 우리는 설명 할거야 나중에 그렇게하지 75 00:04:22,780 --> 00:04:25,800 공포 당신이하지 않으면 그게 무슨 뜻인지 이해합니다. 76 00:04:25,800 --> 00:04:29,980 그리고 콘솔에 인쇄가 조금입니다 다른 때문에 우리의 printf를 호출 C에서, 77 00:04:29,980 --> 00:04:33,350 하지만 목표 C에서 우리는 [들림] 호출합니다. 78 00:04:33,350 --> 00:04:35,640 >> 당신은 그 무엇인지 궁금 할 것이다. 79 00:04:35,640 --> 00:04:38,070 즉, printf와 기본적으로 단지 다른 언어. 80 00:04:38,070 --> 00:04:41,370 정확히 동일한 사용, 동일한 기능. 81 00:04:41,370 --> 00:04:44,060 음이 밝혀 목표 C 실제로 82 00:04:44,060 --> 00:04:50,040 NS 거의 접두사가 모두, 모든 기본 데이터 타입, 83 00:04:50,040 --> 00:04:52,690 는 NSDictionary, NSArray를,있는 NSString. 84 00:04:52,690 --> 00:04:56,340 이유는 NS 인 것을 실제로 다음 단계를 의미합니다, 85 00:04:56,340 --> 00:04:59,980 이는 회사입니다 스티브 잡스가 설립 한 86 00:04:59,980 --> 00:05:03,960 회사는 어떤 곳 언어 목표 C가 탄생한다. 87 00:05:03,960 --> 00:05:06,140 그래서 기본적으로 전통이다. 88 00:05:06,140 --> 00:05:09,010 나는 조금 알고 이상한,하지만 애플입니다. 89 00:05:09,010 --> 00:05:16,840 >> 심지어 괴상하다 그래서 뭔가 보다 함수 선언이다. 90 00:05:16,840 --> 00:05:22,600 이것은 우리 것과 매우 다르다 , C에서 볼 여기에 실제로 때문에 91 00:05:22,600 --> 00:05:25,190 더 이상 C처럼 보이지 않는다. 92 00:05:25,190 --> 00:05:28,810 당신은에 의해 이곳에가 무엇 이 글 머리없는 방법, 93 00:05:28,810 --> 00:05:30,690 이는 음의 부호입니다. 94 00:05:30,690 --> 00:05:36,440 당신은 마이너스 기호 괄호가 무효하고 함수 이름입니다. 95 00:05:36,440 --> 00:05:38,450 그냥 경우 가정 해 봅시다 우리 다음, 안녕하세요 세계를 96 00:05:38,450 --> 00:05:42,820 반환 형식은 무효가 될 것이다 우리는 아무 것도 반환하지 때문이다. 97 00:05:42,820 --> 00:05:44,680 >> 정말로 이상한 도착 당신이있을 때 것입니다 98 00:05:44,680 --> 00:05:49,580 하나 이상의 파라미터를 갖는 같은 함수에 전달하는 99 00:05:49,580 --> 00:05:53,870 다음과 같이 정말 이상한 것입니다. 100 00:05:53,870 --> 00:05:58,230 우리는 방법 이름이, 호출 된 addInt [들림] 101 00:05:58,230 --> 00:06:00,370 우리는 하나의 매개 변수를 전달하고 있습니다. 102 00:06:00,370 --> 00:06:05,170 그러나 그 후, 우리는이 더 메소드 이름 호출. 103 00:06:05,170 --> 00:06:08,500 그리고 가진 후 우리는 통과하고 두 번째 매개 변수. 104 00:06:08,500 --> 00:06:11,940 이 사실은 조금 이상한 하지만이 모든 함수 선언 105 00:06:11,940 --> 00:06:14,770 이 같은 패턴을 따른다. 106 00:06:14,770 --> 00:06:17,450 >> 우리는 시작하는 음의 부호를 가지고있다. 107 00:06:17,450 --> 00:06:21,550 마이너스 기호 더하기 기호가 될 수 때때로 방법의 종류에 따라 108 00:06:21,550 --> 00:06:22,340 그것은이다. 109 00:06:22,340 --> 00:06:25,000 방법은 기본적으로 기능의 또 다른 이름. 110 00:06:25,000 --> 00:06:26,760 그리고 우리는에 갈거야 설명 나중에 때 111 00:06:26,760 --> 00:06:30,580 우리는 객체에 대해 얘기하고 지향 프로그래밍. 112 00:06:30,580 --> 00:06:34,300 먼저 반환을 지정 내부 괄호를 입력 113 00:06:34,300 --> 00:06:37,450 그 후 메소드 이름은 온다. 114 00:06:37,450 --> 00:06:40,310 당신은 하나의 매개 변수를 전달하고 있습니다. 115 00:06:40,310 --> 00:06:44,750 그리고 당신은 더 많은 매개 변수가있는 경우 당신은 메소드 이름을 확장 할 필요가 116 00:06:44,750 --> 00:06:46,770 기본적으로 더 여기에 뭔가를 쓰기. 117 00:06:46,770 --> 00:06:48,090 >> 그것은 당신이 원하는 무엇이든 될 수 있습니다. 118 00:06:48,090 --> 00:06:50,140 우리의 경우는 함께입니다. 119 00:06:50,140 --> 00:06:56,160 그러나 당신이 말할 수 끝, 또는 또는 또는 당신이 원하는대로 ABC 풀 바,. 120 00:06:56,160 --> 00:06:59,500 그리고 그 후 당신이있어 b 매개 변수를 전달합니다. 121 00:06:59,500 --> 00:07:01,750 이것은 정말 이상한 컨벤션하지만 우리는 122 00:07:01,750 --> 00:07:05,800 애플이 원하는 이유를 볼 것 매우 빠르게 그렇게 할 수 있습니다. 123 00:07:05,800 --> 00:07:10,530 그렇다면 함수를 호출 할 수 있습니까? 124 00:07:10,530 --> 00:07:15,520 목표에서 함수를 호출 C는 C. 다르다 125 00:07:15,520 --> 00:07:18,170 >> 사실, 호출 목표 C 함수 126 00:07:18,170 --> 00:07:21,030 당신이 누군가에게 얘기처럼 더 많은입니다. 127 00:07:21,030 --> 00:07:27,030 여기에서 우리는 자신을 가지고있는 객체라고합니다. 128 00:07:27,030 --> 00:07:33,830 당신은 기본적으로 말하는 거 야 말 자체를 객체에 "Hello World!"를 129 00:07:33,830 --> 00:07:36,830 즉, 함수를 호출하는 방법입니다. 130 00:07:36,830 --> 00:07:41,690 객체와 메소드 이름 서로 조합. 131 00:07:41,690 --> 00:07:49,600 그리고 이것은 어디 이상한 확장 방법 이름을 정말 놀이로 제공됩니다. 132 00:07:49,600 --> 00:07:52,150 >> 의 두 번째 예를 살펴 보자. 133 00:07:52,150 --> 00:07:56,780 우리는 단지라는 방법을 정의 addInt와 어쩌구 저쩌구. 134 00:07:56,780 --> 00:08:00,066 당신이 호출 할 때이 경우에 따라서 특정 [? 메시지?]는거야 135 00:08:00,066 --> 00:08:02,035 자기 addInt과 같이합니다 : 10 : 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 그것은 영어처럼 들린다. 138 00:08:08,070 --> 00:08:11,980 기능이지만 함수 선언은, 이상한 139 00:08:11,980 --> 00:08:15,600 목표 C 년대의 포인트 메소드 선언 패턴, 140 00:08:15,600 --> 00:08:18,830 당신이 호출 할 때 점이다 함수 또는 메소드 141 00:08:18,830 --> 00:08:21,980 그것은 실제 영어 같은 소리 것입니다. 142 00:08:21,980 --> 00:08:25,270 그래서 그것은 매우 직관적 당신은 그것으로 일단. 143 00:08:25,270 --> 00:08:28,740 >> 특히이 경우, 여기서 당신은 기본적으로 수 144 00:08:28,740 --> 00:08:33,010 함수 이름은 볼 일종의 자신을 문서화. 145 00:08:33,010 --> 00:08:35,390 당신은 어떤 필요하지 않습니다 자세한 설명은 볼 수 146 00:08:35,390 --> 00:08:42,770 정확히 무슨 일이 일어나고 있는지, 무엇을 정확히 하나의 매개 변수는 일. 147 00:08:42,770 --> 00:08:48,470 그 넘어, 이제 조금 이야기 해 봅시다 객체 지향 프로그래밍에 대한 비트. 148 00:08:48,470 --> 00:08:52,160 객체 지향 프로그래밍은 기본 프로그램 중 하나 149 00:08:52,160 --> 00:08:57,110 인 기술이나 패턴 목표 C. 목표 C에서 사용 150 00:08:57,110 --> 00:09:03,110 목표 C,하지라고 C, 정말 좋은 이유. 151 00:09:03,110 --> 00:09:07,560 >> 우리는에 도착하기 전에 그래서 목표 C 구문, 152 00:09:07,560 --> 00:09:11,670 의 정말 빠르게 살펴 보자 정확히 무엇을하는 것을 목적으로한다. 153 00:09:11,670 --> 00:09:15,480 우리는 아마 뭔가를 했어 이전과 같은 오브젝트있는 154 00:09:15,480 --> 00:09:19,780 당신이 구조체라고 나무 또는 연결리스트를 구현 155 00:09:19,780 --> 00:09:25,730 또는 [? 보십시오. ?] 그래서, 그것은이다 기본적으로 구조체 같은, 156 00:09:25,730 --> 00:09:28,560 하지만 훨씬 더 강력보다도이다. 157 00:09:28,560 --> 00:09:33,150 객체 메소드 및 속성이 있습니다. 158 00:09:33,150 --> 00:09:35,310 방법은 기본적으로 함수입니다. 159 00:09:35,310 --> 00:09:39,480 기본적으로하는 것이 기능 특정 객체에 대한 특정. 160 00:09:39,480 --> 00:09:45,440 >> 그리고 속성은 기본적으로 있습니다 필드는이 구조체에 지정합니다. 161 00:09:45,440 --> 00:09:48,500 모든 단일 개체에 대한 그래서 우리는 몇 가지 속성이 있습니다 162 00:09:48,500 --> 00:09:53,160 그 몇 가지 변수가있는 개체에 따라 다릅니다. 163 00:09:53,160 --> 00:09:57,170 그리고 우리는 일부 기능이있는 또한 개체에 따라 다릅니다. 164 00:09:57,170 --> 00:10:01,180 그리고 함수를 메서드 호출 그리고 변수는 속성이라고합니다. 165 00:10:01,180 --> 00:10:03,190 그냥 멋진 이름입니다. 166 00:10:03,190 --> 00:10:10,440 당신이 실제로있는 동안, 모든 단일보기 당신이 iOS 앱을 열 동안 당신은, 참조 167 00:10:10,440 --> 00:10:17,720 , 그냥 트위터 나 페이스 북을 가정 해 봅시다 당신이 볼 때마다 하나의보기는 개체입니다. 168 00:10:17,720 --> 00:10:22,110 심지어 전체 응용 프로그램입니다 객체와 함​​께 시작합니다. 169 00:10:22,110 --> 00:10:25,340 매우 흥미로운 개념. 170 00:10:25,340 --> 00:10:28,480 >> 그리고 왜 우리가 객체를 원하십니까 프로그래밍을 지향? 171 00:10:28,480 --> 00:10:33,530 그래서 당신이 상상할 수있는 때를 그 프로그램은 꽤 복잡해진다. 172 00:10:33,530 --> 00:10:36,400 그냥 당신이있을 때 가정 해 봅시다 체스 판을 구현, 173 00:10:36,400 --> 00:10:40,020 논리에 가고 정말 복잡. 174 00:10:40,020 --> 00:10:43,280 당신은 36 가지가 조각, 그 그렇다면 당신 175 00:10:43,280 --> 00:10:48,370 모든 로직을 작성하려면 체스 36 다른 조각, 176 00:10:48,370 --> 00:10:52,150 즉, 많이 될 것 다른 함수와 변수. 177 00:10:52,150 --> 00:10:54,070 그것은 많은 문제입니다. 178 00:10:54,070 --> 00:10:58,980 그리고 아마 당신은 쓰기거야 다른 방법이나 다른 기능 179 00:10:58,980 --> 00:11:03,950 행 조각마다 정확하게 무엇을 제어 할 수 있습니다. 180 00:11:03,950 --> 00:11:08,830 >> 당신이 경우에 그러나 객체 지향 프로그래밍,이 조각의 모든 181 00:11:08,830 --> 00:11:12,440 로 추상화 할 수있다 하나의 객체입니다. 182 00:11:12,440 --> 00:11:16,111 그리고 객체는 몇 가지 일반적인있을 것이다 조각의 종류와 같은 특성, 183 00:11:16,111 --> 00:11:16,610 그것은 무엇입니까? 184 00:11:16,610 --> 00:11:17,740 무슨 색입니까? 185 00:11:17,740 --> 00:11:19,480 어떻게 이동할 수 있습니까? 186 00:11:19,480 --> 00:11:24,660 그리고 그 방법으로는 크게이 그 로직을 단순화. 187 00:11:24,660 --> 00:11:28,480 그래서 그냥 정말 좋은 방법 복잡한 프로그램을 만들기 위해, 188 00:11:28,480 --> 00:11:33,700 계층 적 관계 프로그램 내에서, 매우 간단합니다. 189 00:11:33,700 --> 00:11:36,800 우리는 보게 될 것으로 왜 매우 빠르게 때 190 00:11:36,800 --> 00:11:39,660 우리가 실제로하고있는 우리가 실제로있을 때 programming-- 191 00:11:39,660 --> 00:11:42,830 S 코드를 일 나중에 프로그래밍 세션. 192 00:11:42,830 --> 00:11:48,120 >> 그런데 이와 더불어, 객체 지향 프로그래밍 193 00:11:48,120 --> 00:11:50,030 재미 단지 많은입니다. 194 00:11:50,030 --> 00:11:51,990 당신은 당신의 자신의 개체를 설계 할 수있어. 195 00:11:51,990 --> 00:11:56,080 당신은 무엇을 설계 할 수있어 그것은 스스로 같아. 196 00:11:56,080 --> 00:11:58,250 그것에 더 정답은 없습니다. 197 00:11:58,250 --> 00:12:02,940 그리고 그것은 완전히 재미있다. 198 00:12:02,940 --> 00:12:07,270 그래서 객체 지향 프로그래밍, 두 개의 기본 개념 199 00:12:07,270 --> 00:12:10,130 클래스와 인스턴스를 될 것입니다. 200 00:12:10,130 --> 00:12:13,570 클래스는 기본적 개체에 대한 템플릿입니다. 201 00:12:13,570 --> 00:12:18,070 그리고 인스턴스는 기본적으로 하나의 특정 물체. 202 00:12:18,070 --> 00:12:21,090 >> 그냥 당신이 쿠키를 만들고있어 가정 해 봅시다. 203 00:12:21,090 --> 00:12:24,800 이 경우, 매 실제로 끝낼 쿠키 204 00:12:24,800 --> 00:12:27,310 객체가 될 것입니다. 205 00:12:27,310 --> 00:12:35,830 그러나 쿠키 판은 당신이 빵을 사용 모든 쿠키 클래스가 될 것입니다. 206 00:12:35,830 --> 00:12:37,880 클래스는 기본적으로 템플릿입니다. 207 00:12:37,880 --> 00:12:46,170 그리고 인스턴스는 하나의 특정 될 것입니다 객체는 해당 클래스에서 만들었습니다. 208 00:12:46,170 --> 00:12:49,970 >> 그리고 인스턴스가 생성됩니다 클래스 선언에 기초하여, 209 00:12:49,970 --> 00:12:56,760 로 우리는 나중에 슬라이드에서 볼 수 있습니다. 210 00:12:56,760 --> 00:13:00,010 그래서 실제로 정말 해 보자 간단한 예제 [들림]. 211 00:13:00,010 --> 00:13:04,280 의 우리가 선언하고 있다고 가정 해 봅시다 고양이에 대한 객체. 212 00:13:04,280 --> 00:13:07,930 목적은 드 니스, 니가한다 고양이 클래스해야 213 00:13:07,930 --> 00:13:11,260 일부 속성과 메서드를 가지고있다. 214 00:13:11,260 --> 00:13:17,300 등록해야 어떤 종류의 클래스는 드 니스, 니가 고양이해야합니까? 215 00:13:17,300 --> 00:13:20,580 >> 예를 들어, 색상, 나이와 품종, 그 216 00:13:20,580 --> 00:13:24,440 변수가 될 것이다 각 고양이에 따라 다릅니다. 217 00:13:24,440 --> 00:13:27,790 그리고 그 몇 가지 있습니다 우리는 고양이를 설명하는 데 사용하는. 218 00:13:27,790 --> 00:13:31,880 방법의 종류, 또는 고양이는 무엇을 할 수 있습니까? 219 00:13:31,880 --> 00:13:37,160 빠른 예는 추적 될 것이다 마우스, 물고기를 먹거나 그냥 야옹. 220 00:13:37,160 --> 00:13:40,900 이것은 정말 빠르다 고양이 클래스의 예. 221 00:13:40,900 --> 00:13:46,920 그리고 정말 특정을 고양이 개체는 고양이가 될 수 222 00:13:46,920 --> 00:13:50,930 우리는을 지정할 경우 색, 나이와 품종. 223 00:13:50,930 --> 00:13:53,790 >> 이 경우, 우리의 목적은 더 이상 클래스 더 이상 없습니다. 224 00:13:53,790 --> 00:14:00,010 우리는 클래스에서 템플릿을 복사 우리는 각각의 특정 정보를 지정 225 00:14:00,010 --> 00:14:04,510 특정 객체에 이 독립적 인 확인합니다. 226 00:14:04,510 --> 00:14:09,350 그리고 당신이 호출 할 때 물체의 내부에있어서, 227 00:14:09,350 --> 00:14:16,640 당신은, 개체에 야옹 전화 이는 방금 만든 고양이입니다. 228 00:14:16,640 --> 00:14:19,020 >> 아마 당신은 인쇄한다 "안녕하세요 같은! 229 00:14:19,020 --> 00:14:20,000 야옹. " 230 00:14:20,000 --> 00:14:22,110 꽤 귀엽다. 231 00:14:22,110 --> 00:14:24,500 좋아,에게 그냥하자 몇 가지 세부 사항에 들어가 232 00:14:24,500 --> 00:14:30,650 그리고 정확히 무엇을보고 아이폰 OS 프로그램 인로 번역합니다. 233 00:14:30,650 --> 00:14:36,500 아이폰 OS는 모든 단일 프로그래밍 그래서에서 클래스는 두 개의 파일로 구현 될 것이다. 234 00:14:36,500 --> 00:14:41,420 하나의 파일은 여기입니다 인터페이스라고합니다. 235 00:14:41,420 --> 00:14:45,300 또 다른 파일은 여기입니다 구현이라고합니다. 236 00:14:45,300 --> 00:14:48,890 >> 일반적으로 인터페이스 extension.h을해야합니다 237 00:14:48,890 --> 00:14:51,740 우리는 C 라이브러리에서 보았 듯이. 238 00:14:51,740 --> 00:14:56,340 그리고 실행 파일입니다 extension.n을해야 할 것. 239 00:14:56,340 --> 00:14:57,260 그것은 이상한 가지입니다. 240 00:14:57,260 --> 00:15:01,270 그러나 더있다,이 .c 실제로 .N 의미 그 사이에 근본적인 차이 241 00:15:01,270 --> 00:15:02,100 두. 242 00:15:02,100 --> 00:15:06,650 이 경우 그래서, 우리는 우리가 걸 볼 수 있습니다 목적 : 인터페이스, 고양이를 선언. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 즉 상속이라고합니다. 245 00:15:13,760 --> 00:15:19,170 우리는 기본적으로 상속하고 객체 클래스에서 고양이 클래스입니다. 246 00:15:19,170 --> 00:15:24,790 그래서 모든 재산 및 방법이었다 그 이전에 객체 클래스에 정의 247 00:15:24,790 --> 00:15:28,560 자동으로 정의됩니다 고양이 클래스뿐만 아니라. 248 00:15:28,560 --> 00:15:35,900 >> 그 이외에, 우리는 컬러를 정의 품종, 나이, 세 개의 변수. 249 00:15:35,900 --> 00:15:39,360 즉, 실제로처럼 보인다 당신이 전에했던 일. 250 00:15:39,360 --> 00:15:41,770 이 구조체처럼 보인다. 251 00:15:41,770 --> 00:15:44,950 즉, 기본적으로 구문입니다 구조체 선언, 252 00:15:44,950 --> 00:15:47,710 그 완전히 올바른 것입니다. 253 00:15:47,710 --> 00:15:51,825 그리고 내가 전에 언급 한 이후, 차이 구조체 254 00:15:51,825 --> 00:15:53,960 및 객체 중 하나 근본적인 차이 255 00:15:53,960 --> 00:15:59,080 객체 메소드를 가지고 있다는 것입니다 반면 구조체는 변수가 있습니다. 256 00:15:59,080 --> 00:16:03,450 그래서 속성에 추가 또는 우리가 개체에 대해 만든 변수, 257 00:16:03,450 --> 00:16:05,700 우리는 몇 가지 방법을 지정합니다. 258 00:16:05,700 --> 00:16:09,720 >> 그냥 우리가 여기에 있다고 가정 해 봅시다 하나는 야옹이다 두 가지 방법, 259 00:16:09,720 --> 00:16:12,460 다른 하나는 추적 마우스입니다. 260 00:16:12,460 --> 00:16:18,600 우리는 아마 전달되도록하려면 우리의 이전의 방법에 따라 파라미터 261 00:16:18,600 --> 00:16:20,440 선언 패턴. 262 00:16:20,440 --> 00:16:22,160 당신은 아마 마우스를 통과되고 싶어요. 263 00:16:22,160 --> 00:16:25,180 그리고 당신은 아마 할 것 부울 명시를 돌아갑니다 264 00:16:25,180 --> 00:16:30,010 당신의 고양이가 성공적으로있는 경우 마우스를 잡은 여부. 265 00:16:30,010 --> 00:16:33,170 >> 이 인터페이스이지만, 우리는 할 수 참조 실제로 인터페이스 266 00:16:33,170 --> 00:16:35,150 아무것도하지 않습니다. 267 00:16:35,150 --> 00:16:40,800 그냥 프로그램을 알려줍니다 exists-- 무엇 어떻게 고양이 클래스에 존재합니다. 268 00:16:40,800 --> 00:16:43,640 그래서 위해서는 프로그램은 일을하고, 269 00:16:43,640 --> 00:16:46,680 우리는 구현 파일이 필요합니다. 270 00:16:46,680 --> 00:16:51,940 그래서 여기, 우리가 먼저입니다 분명히 우리는 인터페이스를 가져옵니다. 271 00:16:51,940 --> 00:16:56,470 우리는 인터페이스를 가져온 후, 우리는 방법을 정의합니다. 272 00:16:56,470 --> 00:17:00,150 >> 그냥 여기 야옹 가정 해 봅시다 바로 인쇄 할 것이다 273 00:17:00,150 --> 00:17:01,740 "안녕하세요!" 콘솔에. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 그리고 구현 후 파일은, 우리는 거의 완료. 276 00:17:08,460 --> 00:17:14,530 이것은 기본적 클래스 하나의 클래스에 대한 선언. 277 00:17:14,530 --> 00:17:19,970 그래서 지금 문제는,이된다 당신은 어떻게 변수를 선언합니까? 278 00:17:19,970 --> 00:17:26,880 방법 당신을 만들 클래스를 사용 목표 C에서 객체는 여기에 기록됩니다. 279 00:17:26,880 --> 00:17:30,730 >> 먼저 그 지정 이것은 고양이 포인터 280 00:17:30,730 --> 00:17:38,700 목표 C의 모든 개체 때문에 마지막으로 포인터로 구현됩니다. 281 00:17:38,700 --> 00:17:46,210 그리고 당신은 클래스를 호출, 그들에게 전화 기본적으로 malloc에​​있다 ALLOC, 등, 282 00:17:46,210 --> 00:17:51,220 운영 체제를 말하는 당신을 이 오브젝트의 일부 메모리 공간이 필요합니다. 283 00:17:51,220 --> 00:17:55,780 그 후에는 개체가 이미 당신은 그냥 초기화합니다. 284 00:17:55,780 --> 00:17:56,780 이것은 단지 규칙입니다. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 나는 조금 이상한 그것이 알고 있지만, 이 애플이 물건을 수행 실제로 방법이다. 287 00:18:04,410 --> 00:18:07,130 >> 속성을 할당하는 방법 실제로 꽤 간단합니다. 288 00:18:07,130 --> 00:18:09,250 그것은 매우 유사 당신은 때 무슨 일을하는지 289 00:18:09,250 --> 00:18:13,780 당신은 어떤 특정 할당하고 구조체의 내부 필드. 290 00:18:13,780 --> 00:18:16,830 당신은 변수가 속성 이름을 이름, 291 00:18:16,830 --> 00:18:20,140 과에 특정 값을 할당합니다. 292 00:18:20,140 --> 00:18:24,120 그리고 메서드를 호출하면 매우 유사하다. 293 00:18:24,120 --> 00:18:29,080 호출 방법은 기본적으로 내가 이야기 무엇 294 00:18:29,080 --> 00:18:32,390 목표 C에서 어떤 방법을 호출하는 295 00:18:32,390 --> 00:18:36,660 >> 당신은에, 객체를 전달하고 이 경우 그것은, myCat 될 것 296 00:18:36,660 --> 00:18:42,490 당신은 메소드 이름을 전달하고 있습니다. 297 00:18:42,490 --> 00:18:47,130 당신이 개체에 얘기 것처럼, 당신이 야옹해야 myCat. 298 00:18:47,130 --> 00:18:48,570 그것은 꽤 흥미 롭다. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 그 후, 하나가 더 중요한 디자인 패턴 301 00:18:55,680 --> 00:18:59,940 우리는 이야기 할 필요가 실제 S 코드에 도착하기 전에. 302 00:18:59,940 --> 00:19:03,300 즉, 디자인 패턴이라고 이벤트는 프로그램을 구동. 303 00:19:03,300 --> 00:19:09,660 이것은 또한 가장 아마 하나이다 아이폰 OS 프로그래밍의 기본적인 아이디어. 304 00:19:09,660 --> 00:19:14,410 >> 그래서 당신은 아마 정확히 몰라 이벤트 기반 프로그래밍입니다 305 00:19:14,410 --> 00:19:16,990 하지만 그것은 정말 무서운 아니다. 306 00:19:16,990 --> 00:19:20,400 그런데 사실, 당신은 이미 그 전에 다. 307 00:19:20,400 --> 00:19:24,894 이것은 당신이 아마했습니다 라인 중 하나입니다 이미 지난 [들림]로 작성 308 00:19:24,894 --> 00:19:26,810 CS50의, google.maps.event.addListener (마커, 309 00:19:26,810 --> 00:19:27,810 ) {}), 기능 ( "클릭":. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 당신이이 줄을 호출하여 기본적으로 컴퓨터를 말하고 312 00:19:37,620 --> 00:19:42,650 이벤트를 호출 할 때마다 그 마커에서 발생 "클릭" 313 00:19:42,650 --> 00:19:43,630 해당 기능을 사용합니다. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> 이것은 매우 다르다 당신은 mario.c에서하는 일. 316 00:19:50,950 --> 00:19:56,670 mario.c에서 당신은 프로그램을 실행 한 번, 그것은 당신에게 출력을 제공, 317 00:19:56,670 --> 00:19:58,590 하면됩니다. 318 00:19:58,590 --> 00:20:02,590 이러한 일종의처럼 한방 프로그램. 319 00:20:02,590 --> 00:20:05,830 이벤트 구동 프로그램 매우, 매우 다릅니다. 320 00:20:05,830 --> 00:20:10,230 페이스 북이 하나 인 경우의 상상하자 총 프로그램은 정말 좋지 않다. 321 00:20:10,230 --> 00:20:13,750 당신은 페이스 북으로 이동 한 번 그것은 이루어집니다. 322 00:20:13,750 --> 00:20:16,700 그것은 당신에게 약간의 출력을 제공 당신은 다시 없었어. 323 00:20:16,700 --> 00:20:19,380 당신은 더 아무것도 없었어. 324 00:20:19,380 --> 00:20:23,880 >> 그래서 여기에, 특히 우리가 사용하는 패턴은 325 00:20:23,880 --> 00:20:26,940 이벤트가되도록, 구동 모든 작동합니다 326 00:20:26,940 --> 00:20:31,480 에 따라 잡힐 것을 이벤트가 발생했습니다. 327 00:20:31,480 --> 00:20:34,670 예를 들어, 우리가있는 경우 버튼을 우리는 지정 328 00:20:34,670 --> 00:20:39,870 그 버튼을 클릭 할 때마다 그, 라는 함수를 호출에 "Hello World!"를 329 00:20:39,870 --> 00:20:47,810 그런 식으로 우리가 정말 할 수 함수 로직 관리 330 00:20:47,810 --> 00:20:50,560 매우 유연한 방식으로 흐른다. 331 00:20:50,560 --> 00:20:55,840 사용자는 수행 또는 함수를 호출 할 수 있습니다 그 이미 호출 된. 332 00:20:55,840 --> 00:20:59,900 그것은 완전히 사용자가 무엇을 기반으로. 333 00:20:59,900 --> 00:21:04,080 >> 그래서 우리는이 것을 볼 수 있습니다 mario.c보다 실제로 훨씬 더. 334 00:21:04,080 --> 00:21:07,190 그리고 좋은 소식은 점입니다 실제로이 아닌 새로운 개념. 335 00:21:07,190 --> 00:21:12,140 너희들은 이미 수행 한 있음은 마지막 문제에서 설정합니다. 336 00:21:12,140 --> 00:21:16,640 그래서 목표 C에있다 세 가지 다른 다이어그램 337 00:21:16,640 --> 00:21:19,030 이벤트 기반 프로그래밍. 338 00:21:19,030 --> 00:21:21,970 먼저도이다 목표 행동이라고, 339 00:21:21,970 --> 00:21:26,990 어디 버튼을 결합 일부 기능 키를 누릅니다. 340 00:21:26,990 --> 00:21:31,590 당신이 클릭 할 때마다 그냥 말합시다 어떤 버튼을, 당신은 몇 가지 함수를 호출합니다. 341 00:21:31,590 --> 00:21:33,620 이것은 매우 간단한 목표 작업입니다. 342 00:21:33,620 --> 00:21:35,580 >> 두 번째는 실제로 가장 어려운 하나, 343 00:21:35,580 --> 00:21:38,450 그것은 프로토콜에 위임라고. 344 00:21:38,450 --> 00:21:41,800 우리는 설명 할거야 훌륭한 세부 사항에 나중에. 345 00:21:41,800 --> 00:21:44,420 그리고 세 번째 방법은 알림입니다. 346 00:21:44,420 --> 00:21:46,770 이것은 실제로 아니다 매우 중요한까지 347 00:21:46,770 --> 00:21:50,920 우리는 우려로, 기회 때문에 당신은 통지를 사용하는 거라고 348 00:21:50,920 --> 00:21:53,310 최종 프로젝트에 매우 낮다. 349 00:21:53,310 --> 00:21:56,440 그래서 우리는 그 부분을 건너 뛸 것입니다. 350 00:21:56,440 --> 00:21:59,460 >> 그리고 우리는 다이빙을거야 프로토콜에 위임에. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 그래서 정확히 프로토콜은 무엇인가? 353 00:22:04,470 --> 00:22:06,450 아니면 대표단은 정확히 무엇인가? 354 00:22:06,450 --> 00:22:09,670 이제 시작하는 프로토콜에 대해 얘기하자. 355 00:22:09,670 --> 00:22:13,360 프로토콜 이벤트에 지나지 않습니다. 356 00:22:13,360 --> 00:22:19,230 그러나 이러한 이벤트가 주어집니다 애플 당신과 함께 시작합니다. 357 00:22:19,230 --> 00:22:22,640 예를 들어, 내가 아니에요 당신의 얼마나 많은 완전히 확인 358 00:22:22,640 --> 00:22:27,930 사람들은 애플의 원본을 사용 앱 메일 또는 연락처, 359 00:22:27,930 --> 00:22:32,180 하지만 때마다 당신은 스크롤 테이블과 특정 셀을 누릅니다 360 00:22:32,180 --> 00:22:36,130 테이블에, 그 이벤트입니다. 361 00:22:36,130 --> 00:22:38,330 >> 그리고 당신은 수행하려는 경우 스스로 그 사건, 362 00:22:38,330 --> 00:22:40,410 실제로는 조금 어렵다. 363 00:22:40,410 --> 00:22:44,880 그래서 애플은 심지어 당신에게 주신 당신이 직접 사용할 수 있도록 364 00:22:44,880 --> 00:22:49,610 이벤트는 자신의 일을 할 수 있습니다. 365 00:22:49,610 --> 00:22:52,980 프로토콜은 실제로 정말, 정말 널리 사용 366 00:22:52,980 --> 00:22:58,320 의 목표 다 음에 사실, 모든 하나의 응용 프로그램 367 00:22:58,320 --> 00:23:00,870 뭔가 잡은 애플 대리자가 있습니다. 368 00:23:00,870 --> 00:23:06,330 섬세한 내부의 모든 것 응용 프로그램을로드하기위한 프로토콜. 369 00:23:06,330 --> 00:23:12,470 >> 그냥이 있다고 가정 해 봅시다 응용 프로그램에 대한 이벤트는 부하를했다. 370 00:23:12,470 --> 00:23:18,200 당신이 한 후에 그래서 어떤 일이 일어날해야 응용 프로그램 작성, 당신은 응용 프로그램을 연 후, 371 00:23:18,200 --> 00:23:22,630 후에는 후 응용 프로그램을 닫거나 당신은 잠에 아이폰을 넣어. 372 00:23:22,630 --> 00:23:27,480 이들은이 모든 이벤트입니다 이미 당신에게 주어졌다. 373 00:23:27,480 --> 00:23:34,730 그리고 원래이 입자 내부 더 구현이 없을 것이다. 374 00:23:34,730 --> 00:23:39,750 애플은이 기능이 있음을 이야기 어떤 이벤트가 발생했을 때 일어날 것입니다, 375 00:23:39,750 --> 00:23:44,380 하지만 당신은 그와 함께 무엇을 기능은 전적으로 귀하이다. 376 00:23:44,380 --> 00:23:49,290 >> 대표단은 기본적으로 클래스를 말하는 377 00:23:49,290 --> 00:23:53,060 이러한 프로토콜을 처리해야한다고. 378 00:23:53,060 --> 00:23:55,340 그것은 약간의 혼란,하지만 것입니다 379 00:23:55,340 --> 00:23:59,380 우리가 할 때보다 명확 행동의 코드. 380 00:23:59,380 --> 00:24:04,760 프로토콜에 위임 사실이다 의미에서 매우 강력한 메커니즘 381 00:24:04,760 --> 00:24:08,160 그 우리는 위임을 할 경우 특정 클래스에, 382 00:24:08,160 --> 00:24:12,400 우리는 본질적으로 처리 할 수​​ 있습니다 모든 종류의 이벤트 383 00:24:12,400 --> 00:24:17,040 우리가 어떤 클래스를 사용하여, 매우 편리한 도구입니다. 384 00:24:17,040 --> 00:24:21,530 >> 그래서 하나의 빠른 예를 들어 프로토콜에 위임 385 00:24:21,530 --> 00:24:24,120 난 그냥 무슨 얘기를 할 것이다. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 이 프로토콜은 특별히라고 의 TableView는 [들림] 역할을 선택 388 00:24:30,890 --> 00:24:35,480 [에? 인덱스?] [? 과거. ?] 지금이 적발 될 경우 때를 389 00:24:35,480 --> 00:24:39,710 실제로 특정에 눌러 당신의 TableView에있는 셀 390 00:24:39,710 --> 00:24:43,570 그냥 메일에 가정 해 봅시다 또는 연락처 응용 프로그램에서. 391 00:24:43,570 --> 00:24:48,180 >> 함수 내부 있었다 원래 아무것도하지. 392 00:24:48,180 --> 00:24:51,950 이 기능은하지 않습니다 기본적으로 아무것도 할. 393 00:24:51,950 --> 00:24:55,540 하지만 지정할 수 있습니다 함수가 무엇을하는지, 394 00:24:55,540 --> 00:24:59,610 앱에서 원하는 것을 제공. 395 00:24:59,610 --> 00:25:01,610 매우 편리한 도구입니다. 396 00:25:01,610 --> 00:25:06,840 그리고 모두와 그 나는 기본적으로 말했다되고 397 00:25:06,840 --> 00:25:11,430 아주 기본적인 구문을 커버 목표 C에 대한 기본 개념 398 00:25:11,430 --> 00:25:15,860 프로그래밍, 우리는 약간의 코드를 수행 할 수 있습니다. 399 00:25:15,860 --> 00:25:17,980 훨씬 더 흥미 진진한. 400 00:25:17,980 --> 00:25:21,070 그래서의 코드는 사실이다 조금 압도적 401 00:25:21,070 --> 00:25:23,330 당신은 처음으로 열 때. 402 00:25:23,330 --> 00:25:26,640 >> 한 퀵 메모, 그래서 경우 아이폰 OS 개발을하고 싶은, 403 00:25:26,640 --> 00:25:29,630 내가보기 엔 당신이 Mac을 사용하는 것이 좋습니다. 404 00:25:29,630 --> 00:25:33,930 에 아이폰 OS 개발을하고 있기 때문에 윈도우 정말 힘들 것입니다. 405 00:25:33,930 --> 00:25:37,560 그것은 해 드리겠습니다,하지만 정말 어렵다. 406 00:25:37,560 --> 00:25:40,610 그리고 당신은 확실히 할 g 편집을 사용하지. 407 00:25:40,610 --> 00:25:47,950 그래서의 코드에서 우리는이 여러 지역. 408 00:25:47,950 --> 00:25:53,050 처음의 열 코드 당신은 탐색 영역을 볼 것이다, 409 00:25:53,050 --> 00:25:57,470 이는 기본적으로 모든 보여줍니다 현재 프로젝트에 파일을 저장합니다. 410 00:25:57,470 --> 00:26:03,590 >> 당신은 도구 모음 영역을 가지고있는 기본적으로 뷰를 관리하고, 411 00:26:03,590 --> 00:26:08,570 또는 일부 작은 빠른 의 코드 자체에 대한 도구를 제공합니다. 412 00:26:08,570 --> 00:26:11,140 그리고 이것은 실제 편집기 영역이다. 413 00:26:11,140 --> 00:26:15,900 이 지역은 매우 유사 g 편집이다, g 편집보다하지만 훨씬 더. 414 00:26:15,900 --> 00:26:21,150 그리고이 오른쪽 영역에서, 유틸리티 영역이라고합니다. 415 00:26:21,150 --> 00:26:27,170 이 지역은 때 정말 편리하게 당신은 인터페이스를 만들거나 지정하고 416 00:26:27,170 --> 00:26:30,070 귀하의 응용 프로그램에 대한 몇 가지 빠른 설정. 417 00:26:30,070 --> 00:26:34,570 >> 최종 영역 디버깅이다. 418 00:26:34,570 --> 00:26:37,970 이 영역은 콘솔이 포함되어 있습니다. 419 00:26:37,970 --> 00:26:43,170 그래서 당신은 printf의 말을 할 때마다, 또는, 우리의 경우 nslog 420 00:26:43,170 --> 00:26:47,330 모든 결과는 갈은 여기에 인쇄 할 수 있습니다. 421 00:26:47,330 --> 00:26:48,260 좋아? 422 00:26:48,260 --> 00:26:52,090 나는 우리가 정말 빨리 할 수​​있는 것 같아요 아이폰 OS 프로그래밍을위한 예. 423 00:26:52,090 --> 00:26:54,220 그리고 이제 실제로 최대의 코드를 열 수 있습니다. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 그래서 당신이의 코드를 열 때마다, 그것은이다 그런 식으로 뭔가를 보여 드릴 거예요. 426 00:27:01,346 --> 00:27:03,220 그것은 당신에게 것 당신은 무엇을 하시겠습니까? 427 00:27:03,220 --> 00:27:06,830 당신이 뭔가를 시작 하시겠습니까 기본적으로 무작위, 놀이터, 당신 428 00:27:06,830 --> 00:27:11,250 다만없이 코드를 테스트 할 수 있습니다 실제로 응용 프로그램에 투입. 429 00:27:11,250 --> 00:27:13,020 >> 새 프로젝트를 만들시겠습니까? 430 00:27:13,020 --> 00:27:16,660 아니면 계속 하시겠습니까 기존 프로젝트를 작업? 431 00:27:16,660 --> 00:27:20,270 우리의 경우 우리는거야 새 프로젝트를 만듭니다. 432 00:27:20,270 --> 00:27:22,980 그래서, 정말 좋네요이다 코드는 실제로 이미이 433 00:27:22,980 --> 00:27:26,820 일부 템플릿 당신에게 주어진 객체를 생성합니다. 434 00:27:26,820 --> 00:27:32,680 당신이 게임을하고 싶은 경우, 코드를이야 실제로 당신을 위해 게임 템플릿을 가지고, 435 00:27:32,680 --> 00:27:36,890 페이지 기반 응용 프로그램을 가지고 탭 기반 응용 프로그램. 436 00:27:36,890 --> 00:27:39,280 이 경우, 우리는거야 아주 간단한 일을하기 위해, 437 00:27:39,280 --> 00:27:43,230 그리고 우리는을 사용하는거야 단일보기 응용 프로그램입니다. 438 00:27:43,230 --> 00:27:48,270 >> 그 후 당신이 전화하고 싶은 당신의 제품, 그리고, 당신의 이름을 무엇 439 00:27:48,270 --> 00:27:52,760 무엇 식별자, 그리고 당신은 어떤 언어를 사용합니까. 440 00:27:52,760 --> 00:27:57,060 여기에서 우리는하고 싶지 않아 코어 데이터를 사용하여 확인합니다. 441 00:27:57,060 --> 00:28:00,170 코어 데이터는 기본적으로 데이터베이스 화 아이폰 OS이다. 442 00:28:00,170 --> 00:28:05,360 당신이 코어 데이터 할 경우에요 코드를 정의하는 것입니다 443 00:28:05,360 --> 00:28:07,710 당신을 위해 많은 더 복잡 클래스. 444 00:28:07,710 --> 00:28:12,740 그래서 우리는있어, 간단한 모든 것을 유지 다만 코어 데이터없이 할 것 445 00:28:12,740 --> 00:28:15,290 지금. 446 00:28:15,290 --> 00:28:18,030 >> 우리가 될거야 문제 사용하는 것은 문제 ... 그 얘기입니다 447 00:28:18,030 --> 00:28:23,770 우리는 생성 될거야 우리가 기본적으로 C에서 마리오를 가져올 448 00:28:23,770 --> 00:28:25,437 iOS 앱에. 449 00:28:25,437 --> 00:28:26,645 그럼 마리오 아이폰 OS 것을 호출 할 수 있습니다. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 물론 당신은 당신이 무엇을 지정 프로젝트에 넣을. 452 00:28:34,880 --> 00:28:37,870 그리고 거기에서 우리는 간다. 453 00:28:37,870 --> 00:28:41,390 >> 그래서이 조금이다 압도적 그러나 이것은 실제로 454 00:28:41,390 --> 00:28:43,540 우리는 슬라이드에 보았다. 455 00:28:43,540 --> 00:28:49,710 그리고 첫 번째 영역은 우리가 지금보고 기본적으로 프로젝트 구성입니다. 456 00:28:49,710 --> 00:28:53,390 그래서 모든 것을 당신이하고 싶은 프로젝트, 장치의 종류, 457 00:28:53,390 --> 00:28:58,810 그냥 가정 해 봅시다 장치의 종류 앱에 표시 할합니까? 458 00:28:58,810 --> 00:29:01,280 그것은 아이폰, 아이 패드 또는 보편적인가? 459 00:29:01,280 --> 00:29:04,660 장치 방향이 모든 물건 그래서. 460 00:29:04,660 --> 00:29:08,490 매우 중요하지 않음, 하지만, 그러나이 수 461 00:29:08,490 --> 00:29:11,050 사용자가 설정하는 곳입니다 프로젝트 당신이 경우 실제로 462 00:29:11,050 --> 00:29:15,180 애플 스토어에 배포 할. 463 00:29:15,180 --> 00:29:20,420 >> 좋아,이 살펴 보자 우리의 코드 안에 뭔가. 464 00:29:20,420 --> 00:29:22,360 의 파일 탐색기를 통해 가자. 465 00:29:22,360 --> 00:29:30,140 이들 모든 파일은 이미 아주 좋은 템플릿과 함께. 466 00:29:30,140 --> 00:29:35,980 그래서 우리는 그들 중 하나를 클릭하면 이는 모습이다. 467 00:29:35,980 --> 00:29:38,530 g 편집 매우 유사. 468 00:29:38,530 --> 00:29:41,340 하지만 당신은 것을 볼 수 있습니다 구문 강조는 아마 469 00:29:41,340 --> 00:29:42,780 조금 좋네요. 470 00:29:42,780 --> 00:29:45,610 그리고 실제로는 훨씬 더 많은 것은 인 g 편집보다 강력한. 471 00:29:45,610 --> 00:29:49,970 그리고 당신은 자동으로 완료 할 수 있습니다 당신을 위해 많은 것들을, 472 00:29:49,970 --> 00:29:52,370 우리는 매우 신속하게 볼 수있다. 473 00:29:52,370 --> 00:29:54,100 >> 의뿐만 아니라 디버깅 영역을 열어 보자. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 좋아, 우리가 볼 수있는 바와 같이, 콘솔 바로 여기에있다. 476 00:30:07,000 --> 00:30:13,840 이것은 당신이 어디에 보게 될 것입니다 당신의 printf 또는 뭔가를 nsloging에있어. 477 00:30:13,840 --> 00:30:17,155 그럼 전 물러 가고, 실제로하자 응용 프로그램을 컴파일하고 무슨 일이 일어 나는지. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 하나의 필수 기능에 대한 S 코드, 즉 S 코드 480 00:30:23,410 --> 00:30:25,850 아이폰 시뮬레이터와 함께 제공됩니다. 481 00:30:25,850 --> 00:30:29,820 그래서 당신이 할 필요가 없습니다 아이폰 프로젝트를 시도 482 00:30:29,820 --> 00:30:34,440 의 코드에 대한 그 시뮬레이션 할 수 있습니다 당신은,로 우리가 지금 볼 수 있습니다. 483 00:30:34,440 --> 00:30:36,406 >> 그것은 꽤 좋다. 484 00:30:36,406 --> 00:30:38,640 그것은 조금 복용 시간의 비트 컴파일 485 00:30:38,640 --> 00:30:43,040 기본적으로 우리는이 빈 응용 프로그램, 486 00:30:43,040 --> 00:30:44,640 이는 실제로 아무것도하지 않는다. 487 00:30:44,640 --> 00:30:46,175 그러나 컴파일합니다. 488 00:30:46,175 --> 00:30:47,380 그것은 꽤 굉장합니다. 489 00:30:47,380 --> 00:30:50,200 그것은 허, C보다 훨씬 낫다? 490 00:30:50,200 --> 00:30:52,130 좋아, 다음하자 무언가를 추가하려고합니다. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 약간의 비트가 하나의 파일 여기에 이​​상한은 스토리 보드라고합니다. 493 00:31:02,650 --> 00:31:08,020 이 사실은 중대하다 의 코드에 대한 멋진 기능입니다. 494 00:31:08,020 --> 00:31:14,170 때문에의 코드에서, 당신은 드래그 실제로 수 및 인터페이스에 요소를 드롭 495 00:31:14,170 --> 00:31:17,430 그것은 바로 표시됩니다. 496 00:31:17,430 --> 00:31:18,055 의 그 해보자. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> 우리는 여기에 "Hello World!"레이블을 드롭 499 00:31:27,236 --> 00:31:29,740 우리는 위치를 지정할 수 있습니다. 500 00:31:29,740 --> 00:31:30,970 꽤 멋진. 501 00:31:30,970 --> 00:31:33,915 이제이 정지 시뮬레이션을 실행 할 수 있습니다. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 여기에서 우리는에 "Hello World!"가 504 00:31:38,700 --> 00:31:40,810 우리는 아직 코딩을하지 않았다. 505 00:31:40,810 --> 00:31:42,750 도대체 무슨 일? 506 00:31:42,750 --> 00:31:45,880 이 얼마나 강력한입니다 인터페이스 빌더가 될 수 있습니다. 507 00:31:45,880 --> 00:31:48,030 누군가도했다 당신이 할 수있는 아마 508 00:31:48,030 --> 00:31:52,800 작성하지 않고 응용 프로그램을 완료 코드의 아마 천 라인 509 00:31:52,800 --> 00:31:54,820 단지 인터페이스 빌더를 사용하여. 510 00:31:54,820 --> 00:31:59,680 그러나 그것은 아마 아니다 가장 좋은 방법은 그것을 할 수 있습니다. 511 00:31:59,680 --> 00:32:01,670 >> 이제 실제로 코딩에 내려 보자. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 파일 구조 그래서 실제로 정말 재미있다 514 00:32:08,330 --> 00:32:15,610 때문에 당신이 볼 수 있으므로,이 어디에도 주요 기능은 없다. 515 00:32:15,610 --> 00:32:17,466 참조? 516 00:32:17,466 --> 00:32:19,340 우리가 전에 언급 한 바와 같이, 당신은이 있음을 알 수있다 517 00:32:19,340 --> 00:32:22,830 실행 파일은 특정 클래스. 518 00:32:22,830 --> 00:32:25,690 하지만 주요 어디서나은 없습니다. 519 00:32:25,690 --> 00:32:27,490 어디 주요 무엇입니까? 520 00:32:27,490 --> 00:32:31,970 사실,이 메인이지만, 주요 실제로 당신에게서 숨겨져 있습니다. 521 00:32:31,970 --> 00:32:34,560 메인은 ​​여기에있다. 522 00:32:34,560 --> 00:32:37,120 즉 익숙한 보인다. 523 00:32:37,120 --> 00:32:41,000 >> 그래서 기본적으로 어떤 아이폰 OS 주 안에하고있다 524 00:32:41,000 --> 00:32:43,540 주요 될 때마다 것입니다 기본적으로, 이는 호출 525 00:32:43,540 --> 00:32:49,000 응용 프로그램은, 그것을 실행 할 때마다 AppDelegate에라는 개체를 만듭니다. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 I는 전술 한 바와 같이, 전체 응용 프로그램은 실제로 그 자체로 객체입니다. 528 00:32:57,350 --> 00:33:02,270 기본적으로,이 방법에 따라서 iOS 앱 컴파일러를 말하고있다 529 00:33:02,270 --> 00:33:05,540 그 확인, 내가 만들거야 AppDelegate에라는 제품, 530 00:33:05,540 --> 00:33:07,620 그것은 내 응용 프로그램이 될 것입니다. 531 00:33:07,620 --> 00:33:09,640 그래서 당신이 갈 필요가 그 AppDelegate에 통해 532 00:33:09,640 --> 00:33:12,040 그 사람이 무엇을하고 있는지를 참조하십시오. 533 00:33:12,040 --> 00:33:14,850 내 직업은 나를 위해 수행됩니다. 534 00:33:14,850 --> 00:33:22,070 >> 그리고 AppDelegate에 당신은 그것을 볼 수 있습니다 정말 이상한 함수가 있습니다, 535 00:33:22,070 --> 00:33:25,290 물론 실제로 방법, 그 애플은 이미 당신을 부여하고있다. 536 00:33:25,290 --> 00:33:27,464 다음은 무엇입니까? 537 00:33:27,464 --> 00:33:31,010 이러한 사실은 그냥 프로토콜입니다 제가 얘기했다. 538 00:33:31,010 --> 00:33:35,670 그래서 이러한 이벤트는 애플 시작하는 당신을 부여하고있다. 539 00:33:35,670 --> 00:33:38,050 아무것도 일부가 없습니다 지금 기능, 540 00:33:38,050 --> 00:33:40,820 그러나 우리는 초기화 할 경우 우리의 응용 프로그램에 대해 뭔가 541 00:33:40,820 --> 00:33:46,140 표시에 들어가기 전에 모든보기, 우리는 여기에 그렇게. 542 00:33:46,140 --> 00:33:51,150 >> 당신은 이름을 읽을 수와 같아요 이벤트는 실제로 정말 분명하다. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 그래서 지금 주요 만들었습니다 AppDelegate에 대한 객체. 545 00:33:58,350 --> 00:34:05,220 그리고 AppDelegate에 어떻게해야 무슨 일 실제로 또한 숨겨져있다. 546 00:34:05,220 --> 00:34:09,250 AppDelegate에 시작하는 것입니다 의 ViewController 주식을로드. 547 00:34:09,250 --> 00:34:13,170 그래서 기본적으로 시작할 것 당신이 가진 모든보기를로드 548 00:34:13,170 --> 00:34:17,500 그냥보기 렌더링 계층 구조를 기반으로. 549 00:34:17,500 --> 00:34:21,280 >> 그래서이 경우 우리는이 여기에 하나의보기. 550 00:34:21,280 --> 00:34:25,060 그래서보기 만입니다 즉, 호출 할 것입니다. 551 00:34:25,060 --> 00:34:28,159 의 ViewController 논리가 바로 여기에있다. 552 00:34:28,159 --> 00:34:32,159 이것은 실제로 코드 우리가 방금 본보기를 제어합니다. 553 00:34:32,159 --> 00:34:33,679 좋아, 여기에 뭔가를 할 수 있습니다. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 그래서 viewDidLoad에 이벤트 같은 소리, 이 경우도 위양 사실 556 00:34:50,560 --> 00:34:52,500 이것은 또한 프로토콜이다. 557 00:34:52,500 --> 00:34:56,350 >> 그래서 뷰​​는로드 어떤 함수 내에서 모든 558 00:34:56,350 --> 00:34:57,920 호출됩니다. 559 00:34:57,920 --> 00:35:02,840 이 경우 우리는 안녕 "을 참조한다 천우는! "우리는 프로그램을 실행합니다. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 그것은 조금 느린지고있어 스토리 보드 파일을 컴파일. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 그런데 참으로, 우리는 그것을 위해 출력을 볼 수 없습니다. 564 00:35:18,190 --> 00:35:20,720 그것은 꽤 멋지다. 565 00:35:20,720 --> 00:35:22,000 이제 실제로 마리오를 할 수 있습니다. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 나는를 정의하는거야 매우 빠르게 작동합니다. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels : (INT) 수준의 결과. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> 좋아,이 사실은 굉장 의 코드 자동 완성의 기능입니다. 572 00:36:06,410 --> 00:36:10,680 그래서 당신이 작성하고 입력 입력 할 때, 이미 템플릿을 포기했다 573 00:36:10,680 --> 00:36:12,325 당신을 위해, 어떤 꽤 멋지다. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 정말 찾아야한다 너희들에게 익숙한. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 죄송합니다, 내 잘못이야. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 좋아, 좋아. 580 00:37:18,120 --> 00:37:22,710 그 논리는 정말 익숙 할 것이다 너희들, 특히 단지 마리오. 581 00:37:22,710 --> 00:37:26,140 >> 그러나 우리는 지금에 인쇄됩니다 콘솔 매번, 582 00:37:26,140 --> 00:37:29,280 우리는 어떻게 든 유지하기를 원하기 때문에 우리가 인쇄하는 것을 추적. 583 00:37:29,280 --> 00:37:31,810 우리는을 사용하는거야 나중에 어떻게 든 결과, 584 00:37:31,810 --> 00:37:35,010 인쇄를 표시합니다 밖으로 사용자에게 발생합니다. 585 00:37:35,010 --> 00:37:37,730 그래서 그 대신 우리는 그저 모든 nslogging, 586 00:37:37,730 --> 00:37:42,410 이는 우리가 모든 것을 저장하고 함수 호출 결과로, 587 00:37:42,410 --> 00:37:44,070 하지만 논리 정확히 동일하다. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 우리는, 우리를 마친 후 우리의 결과를 인쇄 할 수 있습니다. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> 그리고 여기에 대신 밖으로 인쇄 내 이름, 우리는 함수를 호출하는 것입니다. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 이제 어떻게되는지 보자. 594 00:38:18,090 --> 00:38:21,240 아차, 분명히. 595 00:38:21,240 --> 00:38:24,320 우리는 좋은 있나요 여기에서 밖으로 작은 피라미드. 596 00:38:24,320 --> 00:38:28,370 이것은 기본적으로 C, 우리가있어 단지 당신이 함수를 호출 할 경우 조작 597 00:38:28,370 --> 00:38:30,010 어떻게 같은 기능 보여요. 598 00:38:30,010 --> 00:38:31,560 다른 것은 아무 것도 없습니다. 599 00:38:31,560 --> 00:38:34,040 그러나 이것은 실제로 하지 매우 흥미로운 여기에, 600 00:38:34,040 --> 00:38:37,500 우리가 표시되지 않는 때문에 아이폰 앱에서 아무것도. 601 00:38:37,500 --> 00:38:42,120 >> 그래서 당신은 실제로 app-- 아이폰이있는 경우 실제로 마리오 아이폰 OS 권리가있는 경우 602 00:38:42,120 --> 00:38:45,080 지금, 당신은하지 않을거야 아무것도 볼 것을 603 00:38:45,080 --> 00:38:49,450 때문에 마리오와 아무이 콘솔에 모든 출력 604 00:38:49,450 --> 00:38:51,620 사용자로부터 숨겨져 있습니다. 605 00:38:51,620 --> 00:38:53,850 이것은 당신이 볼 것입니다 이는 "안녕하세요!"입니다 606 00:38:53,850 --> 00:38:55,720 좋은하지 않습니다. 607 00:38:55,720 --> 00:39:03,090 이제 사용자가 볼 수 있도록 해보자 정확히 우리가 밖으로 인쇄하는. 608 00:39:03,090 --> 00:39:06,000 그래서 우리는 더 이상 레이블 할 필요가 없습니다. 609 00:39:06,000 --> 00:39:09,800 의 시도하자 뭔가를 알아낼 다른 사람이 유용 할 수 있습니다. 610 00:39:09,800 --> 00:39:12,140 >> 실제로 하나 있습니다 라고 요소 611 00:39:12,140 --> 00:39:16,460 텍스트 필드, 수 우리에게 매우 도움이 될. 612 00:39:16,460 --> 00:39:19,880 그것은 기본적으로 영역을 표시합니다 텍스트를 편집 할 수 있습니다. 613 00:39:19,880 --> 00:39:22,320 그래서 정말 도움이 보인다. 614 00:39:22,320 --> 00:39:23,810 이제 드래그와 드롭 할 수 있습니다. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 와우, 우리는 텍스트보기가 우리의 관점에서, 정말 멋진. 617 00:39:32,670 --> 00:39:35,430 그건 좀 너무 크다. 618 00:39:35,430 --> 00:39:38,150 이제 더 작게 만들어 보자. 619 00:39:38,150 --> 00:39:40,290 센터로 넣어. 620 00:39:40,290 --> 00:39:43,760 뿐만 아니라이 작은합니다. 621 00:39:43,760 --> 00:39:50,110 >> 이제 우리는 우리가 할 수 텍스트보기가 최종 결과를 표시하는 데 사용된다. 622 00:39:50,110 --> 00:39:52,860 하지만 지금은 그것입니다 확실히 작동하지 않을 623 00:39:52,860 --> 00:39:56,970 그게 ...이 있기 때문에 의 ViewController 우리 단지 624 00:39:56,970 --> 00:40:03,010 알고하지 않습니다 정의 거기 텍스트보기가있다. 625 00:40:03,010 --> 00:40:06,550 그래서 우리는 어떻게 든를 필요 텍스트 뷰를 연결 우리 단지 626 00:40:06,550 --> 00:40:11,660 클래스를 사용하여 만든 그 이미 우리와 함께왔다. 627 00:40:11,660 --> 00:40:14,860 >> 우리가 그렇게 할 방법은 실제로 정말 마법. 628 00:40:14,860 --> 00:40:18,190 그래서 스토리 보드를 엽니 다. 629 00:40:18,190 --> 00:40:22,220 이 특별한 [들림] [라고? 조수?] [들림]. 630 00:40:22,220 --> 00:40:25,190 당신이 그것을 클릭하면, 그건 두 파일을 열 예정. 631 00:40:25,190 --> 00:40:29,425 하나는 클래스와 다른 하나이다 이에 대한 대응이다. 632 00:40:29,425 --> 00:40:31,920 그것은 매우, 매우 도움이됩니다. 633 00:40:31,920 --> 00:40:35,950 그리고 그냥 .H 파일을 통해 이동하자. 634 00:40:35,950 --> 00:40:39,110 컨트롤이 [들리지] 논리입니다. 635 00:40:39,110 --> 00:40:47,280 를 눌러 제어 및 드래그 선언에 텍스트보기. 636 00:40:47,280 --> 00:40:48,780 우리는 outputView를 호출하는 것입니다. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 연결합니다. 639 00:40:53,670 --> 00:40:59,420 그래서 여기에 우리는 새로운를 선언 한 우리의 ViewController 클래스의 속성. 640 00:40:59,420 --> 00:41:02,300 그리고 새 속성 그냥 텍스트 뷰입니다 641 00:41:02,300 --> 00:41:05,000 우리는 인터페이스 건물에 만들었습니다. 642 00:41:05,000 --> 00:41:07,990 그런 식으로 우리가 할 수 그래서 액세스 모든 데이터 643 00:41:07,990 --> 00:41:13,630 내부에 모든 것을 조작 굉장 출력보기. 644 00:41:13,630 --> 00:41:19,260 >> 우리의 실제 코드에 따라서 의 그것으로 뭔가를 할 수 있습니다. 645 00:41:19,260 --> 00:41:23,810 그래서이 시간 우리는 인쇄 같은 경우 최종 결과 밖으로 마리오를 들어, 646 00:41:23,810 --> 00:41:28,020 우리는 아무것도하지 아니함에있어. 647 00:41:28,020 --> 00:41:30,080 나는 우리가 지킬 수 의미 로깅 문. 648 00:41:30,080 --> 00:41:41,490 그 외에도 판독을 보내 우리 단지 649 00:41:41,490 --> 00:41:47,622 출력보기에 만든 우리가 방금 만든 텍스트 뷰 UI입니다. 650 00:41:47,622 --> 00:41:48,746 이제 어떻게되는지 보자. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 와우. 653 00:41:56,620 --> 00:41:59,130 우리는 지금 응용 프로그램에 피라미드가있다. 654 00:41:59,130 --> 00:42:06,720 >> 사용자는 우리의 출력 때문에 볼 수 있도록 우리는 우리의 코드의 출력을 복사 한 655 00:42:06,720 --> 00:42:08,045 우리의 인터페이스. 656 00:42:08,045 --> 00:42:10,950 그것은 꽤 좋다. 657 00:42:10,950 --> 00:42:14,990 실제로이 아니다 흥미로운 우리가하고 있는데 ... 때문에 658 00:42:14,990 --> 00:42:18,250 모든 응용 프로그램입니다하고있다 당신에게 피라미드를 보여주는, 659 00:42:18,250 --> 00:42:20,520 그리고 당신이 그것에 대해 할 수있는 일은 없다. 660 00:42:20,520 --> 00:42:22,330 그것은 특히 흥미로운 아니다. 661 00:42:22,330 --> 00:42:27,840 그래서 지금의이 버튼을 만들어 보자 그의 의견을 취소합니다. 662 00:42:27,840 --> 00:42:30,290 버튼이 도움이 될 것으로 보인다. 663 00:42:30,290 --> 00:42:33,270 드래그 앤 드롭. 664 00:42:33,270 --> 00:42:33,900 버튼 하나. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 버튼 두. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> 그래서 우리는 왼쪽을 클릭하면 버튼,보기 지워야합니다. 669 00:42:52,052 --> 00:42:53,635 화면에 아무 것도 없어야합니다. 670 00:42:53,635 --> 00:42:56,970 그리고 우리가를 클릭하면 오른쪽 버튼, 마리오, 671 00:42:56,970 --> 00:42:59,740 보기는 다시 나타나지 것입니다. 672 00:42:59,740 --> 00:43:05,510 이러한 방식 또한 수행 마법의 물건, 제어 및 드래그 673 00:43:05,510 --> 00:43:08,740 클래스 선언 조수 director--에 674 00:43:08,740 --> 00:43:11,600 보조 뷰어. 675 00:43:11,600 --> 00:43:18,620 이 경우 우리가 지정하는 것을 그 행동해야한다. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> 그래서 여기에 우리는 이미 만든 clearMario라는 액션, 679 00:43:26,830 --> 00:43:34,210 이는 호출됩니다 방법입니다 우리는 버튼을 누를 때마다 맑은. 680 00:43:34,210 --> 00:43:41,030 우리의 실제 코드 그래서, 그냥하자 출력 텍스트 및 출력보기 넣어 681 00:43:41,030 --> 00:43:44,620 아무것도에, 그 방법 그것은 명확하게 나타납니다. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 그 외에도,의는 만들 수 있습니다 runMario라는 또 다른 방법. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 아 죄송합니다, 그 속성 안된다. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 좋아,해야 뿐만 아니라 동작합니다. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> 그리고 그 기능은 때 라고, 우리는 마리오 열을 실행합니다. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 다행스럽게도 잘 될 것입니다. 692 00:44:39,780 --> 00:44:41,120 그것은 컴파일합니까? 693 00:44:41,120 --> 00:44:43,920 예. 694 00:44:43,920 --> 00:44:45,090 이제 우리는 볼 수 있습니다. 695 00:44:45,090 --> 00:44:46,560 우리는 출력을 가지고있다. 696 00:44:46,560 --> 00:44:50,040 그리고 그냥 어떻게되는지 보자. 697 00:44:50,040 --> 00:44:52,590 즉 사라 졌어요. 698 00:44:52,590 --> 00:44:54,500 그것은 다시 돌아왔다. 699 00:44:54,500 --> 00:44:57,620 그래서 여기에 우리가 지정한 함수의 종류 700 00:44:57,620 --> 00:45:00,400 때 호출 될 우리는 뭔가를 입력, 701 00:45:00,400 --> 00:45:03,160 우리는 특정 버튼을 누르면. 702 00:45:03,160 --> 00:45:07,890 이것은 기본적이며 대상 동작 방식 703 00:45:07,890 --> 00:45:12,510 이벤트 구동 목표 C에서 프로그래밍 704 00:45:12,510 --> 00:45:15,030 >> 이와 더불어, 그것은 흥분되지는 705 00:45:15,030 --> 00:45:19,810 우리가 정말 변경할 수 없기 때문에 피라미드가 얼마나 높은 것입니다, 706 00:45:19,810 --> 00:45:23,640 그래서 우리는 아마 어떻게 든를 원하는 사용자로부터 입력을받을 707 00:45:23,640 --> 00:45:29,490 과의 높이를 변경 피라미드는 무엇 출력을 기반으로. 708 00:45:29,490 --> 00:45:32,900 그래서 우리는 그렇게 할 것입니다. 709 00:45:32,900 --> 00:45:38,720 그래서 우리는 runMario를 부르는 시간, 우리는 단지 마리오 직접 호출하지 않습니다. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 이 하나의 제목입니다. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> 위임. 714 00:46:23,700 --> 00:46:25,160 이것은 매우 흥미로운 일이다. 715 00:46:25,160 --> 00:46:26,720 대리인은 무엇입니까? 716 00:46:26,720 --> 00:46:28,950 나는 여기에 자신을 넣어 갈거야. 717 00:46:28,950 --> 00:46:31,038 그리고 우리는 보게 될 것입니다 그 무엇 나중에 의미한다. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 그래서 여기에 우리가 기본적으로 생성 한 특정 인스턴스는 UI 경고라고 720 00:46:51,120 --> 00:46:52,210 보기. 721 00:46:52,210 --> 00:46:54,440 UI 경고도이다 기본적으로 당신은 무엇을 것입니다 722 00:46:54,440 --> 00:46:58,940 때마다 뭔가 팝을 참조 입력을 요청 최대, 723 00:46:58,940 --> 00:47:03,080 당신이 시도 할 때 어떤 일이 일어날 것 같은 앱 스토어에 뭔가를 구입. 724 00:47:03,080 --> 00:47:14,250 >> 그 외에도 후 를 작성, 우리는 경고를 표시합니다. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 좋아, 그냥 빨리하자 시험은 직장이나하지 않습니다. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 즉, 아주 멋진입니다. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 이제 사실을 만들 수 있습니다 UI의 경고에 ​​대한 입력 필드. 731 00:47:59,120 --> 00:48:01,170 이것은 우리가 그 방법을 알 수있다. 732 00:48:01,170 --> 00:48:07,490 그리고 우리는이 있어야합니다 경고에 대한 입력보기. 733 00:48:07,490 --> 00:48:09,020 아주 멋진. 734 00:48:09,020 --> 00:48:12,330 그냥 10를 가정 해 봅시다. 735 00:48:12,330 --> 00:48:14,900 >> 그것은 바로 아무것도 아니에요 이제 전화 통화가 실제로 때문에 736 00:48:14,900 --> 00:48:17,770 마리오를 실행하기위한 변경되지 않았습니다. 737 00:48:17,770 --> 00:48:23,470 그래서이 조금되고있다 조금 이상한 때마다 때문에 738 00:48:23,470 --> 00:48:30,790 우리는 할 때마다 우리를 아래로 버튼을 눌러 경고보기에서 버튼을 누르면, 739 00:48:30,790 --> 00:48:35,560 뭔가, 발생해야 하지만 발생하지 않습니다. 740 00:48:35,560 --> 00:48:37,220 우리는 어떻게 잡을 수 있습니까? 741 00:48:37,220 --> 00:48:41,280 어떻게 우리는 사용자가 알고 경고보기를 기각했다 742 00:48:41,280 --> 00:48:45,630 및 이미 때문에, 숫자 입력 지금 실제로 아무 일도 있어요. 743 00:48:45,630 --> 00:48:50,450 >> 글쎄, 당신은 이미 예상 했겠지만 그것은 바로, 위임. 744 00:48:50,450 --> 00:48:55,440 그래서 모든 이외에 이러한 선언, 745 00:48:55,440 --> 00:49:03,190 우리는 새로운 위임을 추가 할 필요가 그것은 UI 경고보기 대리자를했다. 746 00:49:03,190 --> 00:49:06,440 하나 하나 그 그래서 상호 작용 또는 이벤트 747 00:49:06,440 --> 00:49:10,190 우리는이 거라고 UI 경고보기 748 00:49:10,190 --> 00:49:14,100 처리 될 것입니다 뿐만 아니라 우리의 클래스로. 749 00:49:14,100 --> 00:49:26,297 >> 그래서 이외에 것 인덱스에 경고보기를 클릭 버튼을 누릅니다. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 이 도달된다. 752 00:49:37,730 --> 00:49:42,020 우리가이 경우에 따라서 already-- 그래서 우리는이 753 00:49:42,020 --> 00:49:46,210 프로토콜을 발견 때 이벤트를 처리 할 754 00:49:46,210 --> 00:49:51,320 우리는 완료 버튼을 클릭합니다 경고보기에. 755 00:49:51,320 --> 00:49:55,976 그래서 때마다 우리는 기각 경고보기, 이런 일이 발생한다. 756 00:49:55,976 --> 00:49:57,350 나를 그냥 매우 빠르게 테스트 할 수 있습니다. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 그런데 참으로, 우리는 여기에 도달했습니다. 759 00:50:19,300 --> 00:50:22,210 >> 그래서 여기, 우리는하지 않습니다 실제로 실제로 얻을 760 00:50:22,210 --> 00:50:43,120 그래서 우리가 얻고 싶은 엥 얻을 이전에 우리가 가지고있는 텍스트 761 00:50:43,120 --> 00:50:45,350 경고보기에 들어갔다. 762 00:50:45,350 --> 00:50:48,505 및 텍스트에 기초하여, 우리는 야 마리오를 표시 할 것. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 이것은 매우 신속하게 밝혀 실제로 작동 여부를 경우. 765 00:50:55,480 --> 00:50:59,476 이 경우에 그래서, 우리 입력하는 경우, 우리가 10을 볼 수, 10,의 말을하자. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> 아주 좋은, 우리는 여기에 숫자를하지 않아도됩니다. 768 00:51:05,210 --> 00:51:06,470 그것은 꽤 좋다. 769 00:51:06,470 --> 00:51:16,840 이제 마지막 단계는 그래서 나중에 ...합니다 마지막 단계는 우리가 지금해야 770 00:51:16,840 --> 00:51:21,100 단지와 마리오를 호출한다 레벨 입력에 기초 771 00:51:21,100 --> 00:51:23,270 것을 우리는 경고보기에 뒀다. 772 00:51:23,270 --> 00:51:26,920 그래서 우리는 변환 할 필요가 아이폰 OS에이 문자열. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 정적 오버 플로우가 매우 굉장하다. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 그리고 우리는 자기 전화 marioWithLevels 값입니다. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 의는 것을 보자 실제로 작동 여부. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> 우리는 이미 피라미드를 제공하고 있습니다. 781 00:52:01,550 --> 00:52:04,785 의는 높이를 변경 해보자. 782 00:52:04,785 --> 00:52:06,530 즉 실제로 작동합니다. 783 00:52:06,530 --> 00:52:07,610 그것은 꽤 멋지다. 784 00:52:07,610 --> 00:52:10,420 즉, 지금 당신이 할 수있는, 그래서 그냥 입력 원하는 값입니다. 785 00:52:10,420 --> 00:52:12,440 그냥 네 가지를 가정 해 봅시다. 786 00:52:12,440 --> 00:52:14,260 그건 정말 기. 787 00:52:14,260 --> 00:52:17,090 그래서 이것은 기본적으로 정말 간단한 예제 788 00:52:17,090 --> 00:52:23,170 용의 코드에서 프로젝트를 생성하는 방법 정말 빠르게 배선하는 방법 789 00:52:23,170 --> 00:52:26,220 정말 간단한 이벤트 및 기능. 790 00:52:26,220 --> 00:52:28,840 >> 그래서 소스는 것입니다 나중에 온라인으로 넣어합니다. 791 00:52:28,840 --> 00:52:33,400 당신이 관심이 있다면 그래서 아이폰 OS 마리오의 작동 방식에, 792 00:52:33,400 --> 00:52:38,360 나는 정확히 같은 넣어 갈거야 나중에 CS50의 웹 사이트에 프로젝트. 793 00:52:38,360 --> 00:52:41,260 우리는 기본적으로 완료 여름, 우리는 마무리하기 전에 794 00:52:41,260 --> 00:52:45,190 난 단지에 너희들을 지적하고 싶어요 정말 굉장한 자원이 795 00:52:45,190 --> 00:52:47,550 온라인으로 사용할 수 있습니다. 796 00:52:47,550 --> 00:52:52,270 >> 물론 애플 문서 매우 도움이 될 것입니다. 797 00:52:52,270 --> 00:52:57,630 그러나 그 이외에, 특히 I 네 개의 소스 코드 학교를 추천합니다 798 00:52:57,630 --> 00:53:02,120 나무 위의 집, AppCoda과 WWDC 동영상. 799 00:53:02,120 --> 00:53:07,270 코드 학교 및 나무 위의 집은 두 개의 온라인 교육시키기 웹 사이트, 800 00:53:07,270 --> 00:53:10,210 이는 특히 초점 소프트웨어 공학에. 801 00:53:10,210 --> 00:53:16,930 특히 코드 학교, 그들은 아이폰 OS에 정말 좋은 자습서를 가지고있다. 802 00:53:16,930 --> 00:53:19,550 >> 즉,에 대한 정말 빠른 예입니다. 803 00:53:19,550 --> 00:53:22,980 그들은 실제로 정말 cute--를 만들 그 작은 귀여운 아이폰을보고 804 00:53:22,980 --> 00:53:24,920 저기 야, 그것은 아주 끝내. 805 00:53:24,920 --> 00:53:31,010 그리고 방법은 그들이 목표 설명 C 구문은 완벽 분명하다. 806 00:53:31,010 --> 00:53:32,230 트리 하우스는 동일합니다. 807 00:53:32,230 --> 00:53:34,660 그리고 AppCoda는 포럼입니다. 808 00:53:34,660 --> 00:53:38,130 실제로 실행 된 블로그의 정말 경험이 목표 C로 809 00:53:38,130 --> 00:53:39,120 프로그래머. 810 00:53:39,120 --> 00:53:43,950 그리고 AppCoda의 모든 튜토리얼은 꽤 짧고 쉽게 구현할 수, 811 00:53:43,950 --> 00:53:45,390 매우 좋습니다. 812 00:53:45,390 --> 00:53:47,700 >> 그리고 개발자 인 경우, 확실히 확인 이동 813 00:53:47,700 --> 00:53:55,660 어떻게 WWDC 동영상을 어디에 당신이 할 수있는 최신 아이폰 OS 프로그래밍을 배우는 814 00:53:55,660 --> 00:53:58,250 기술, API 및 라이브러리. 815 00:53:58,250 --> 00:54:02,850 그래서 꽤 많이 세미나 그것. 816 00:54:02,850 --> 00:54:03,820 정말 감사합니다. 817 00:54:03,820 --> 00:54:08,040 그리고 난 당신이 재미를 바랍니다 자신의 iOS 앱을 만드는. 818 00:54:08,040 --> 00:54:09,302