[Powered by Google Translate] [세미나] [iOS를 : 보스처럼 애플리케이션을 작성] [토미 MacWilliam] [하버드 대학] [이 CS50 수 있습니다.] [CS50.TV] 좋아, 모두 iOS를에 오신 것을 환영합니다 보스 같은 애플리케이션 작성. 이 세미나는 아이폰 앱을 쓰기에 초점을 것입니다 그리고 차례로 iPad 용 응용 프로그램을 작성하고, 그래서 우리는 기본적으로 통과 할거야 응용 프로그램을 만드는 방법에 대한 몇 가지 예제, 콩알 만 발가락과 같은 간단한 게임, 또는 뉴스 리더 어떤 종류의 같은 응용 프로그램을 만드는 데 더 많은 관심이 있으신 분이라면 또는 내가뿐만 아니라 그런 말을 할 것이다 인터넷과 상호 작용 무언가. 다음은 간단한 의제입니다. IOS 응용 프로그램은 Objective-C를라는 언어로 기록 등이, C와 비슷하지만 정말로이라도 비트 그래서 우리는 언어 자체에 대해 좀 더 얘기 할 것 다음 방법 엑스라는이 애플리케이션 프로그램을 사용하여 아이폰 애플리케이션을 구축하는 방법, 당신이 아직 다운로드하지 않은 경우 어떤 지금 다운로드를 시작하시기 바랍니다. 이 몇 기가 바이트입니다. 이 앱 스토어에서 무료로해야합니다, 그래서 당신은 Mac을 가지고해야합니다 이상적으로 OS X의 최신 버전을 실행하고 당신이하지 않으면 아무 문제 없습니다. 우리는 사용을 위해 사용할 수있는 과학 센터의 맥이 엑스 코드가 설치 등 개발에 사람들을 사용하시기 바랍니다.로 당신이 응용 프로그램을 만들고 싶어하지만 맥이없는 경우 걱정하지 마십시오. 거기에 캠퍼스 자원은 충분합니다. 그리고 다음에 우리가 만들 수 다른 애플리케이션의 2 큰 예를 충당하기 위해거야. 오브젝티브-C는 C의 슈퍼 세트라는 것을 기술적합니다 그 어떤 C 코드도 유효한 목표-C 코드입니다 것을 의미합니다. 우리가 덕트의 종류 C.에 몇 가지 추가 기능에 녹화 있다는 것을 의미 이러한 기능 중 일부는 다시 malloc을 작성하는가없는 등, 하느님 감사합니다 더 그 바보 같은 포인터에 대해 걱정할 필요없고, 그들을 자유롭게하고 모든 걸 다 당신은 C에 대한 미움, 그리고 나지 오브젝티브-C에 사라졌어. 이제 목표-C는 또한 훨씬 더 큰 표준 라이브러리가 있습니다 그래서 당신은 Objective-C를 무료로 내부에 얻을 더 많은 기능이 있어요. 우리가 PHP를 작성할 때 기억 우리의 간 것으로 나타났습니다 당신이 할 수있는 이런 미친 짓의 거대한 도서관이 작은 언어입니다. 같은 일이 iOS를에 발생합니다. 이 불교 달력 등을위한 개체, 그리고 아무것도 당신은 가능성이 아마도 오브젝티브-C의 구현에 이미 존재 생각할 수 있습니다. 오브젝티브-C의 목적 부분은 뭔가를 참조합니다 객체 지향 프로그래밍했다. 이 새로운 개념의 종류이지만, 우리는 실제로 대부분 배운 이미이 개념이 많습니다. 객체 지향 프로그래밍에 대한 아이디어는 구성 할거야 있다는 것입니다 이러한 것들이 주변에 코드의 많은 수업이라고 이러한 수업은 정말 structs를 영화 롭게하고 있습니다. 구조체의 내부 우리 기본적으로 여기 말은 일이 이 점은 회원을 가질 수 있습니다. 예를 들어, 연결된 목록에서 노드는 다른 일이 있어서요 수 값 같은 목록에있는 다음 노드에 대한 포인터, 함께 포인터를 그 값은 구조체의 한 인스턴스를 구성하는. 제외하고는 수업은 매우 유사합니다 수업은 그들 내부에 기능을 할 수 있습니다. 우리가 구조체를 선언했을 때, 우리는 정수 n 또는 다음 노드 * 말을 수 있습니다. 지금 오브젝티브-C와 함께 우리는 실제로 기능을 넣을 수 있습니다 그 일 안에. 수업이 할 수있는 또 다른 점은, 그들은 다른 클래스에서 데이터를 상속 할 수 있습니다. 예를 들어, 오브젝티브-C 클래스에 내장 된의 무리를보고됩니다. 그 중 하나는 화면에 관점을 나타냅니다 클래스가 될 수 있습니다 그래서 이런 말을 내가 직접보기를 구현하려면 우리는 기본적으로 애플 중 누군가가, 아마도 정말 멋진 사람, 말 날 위해이 클래스를 작성하고,이 버튼을 표시처럼 일을 처리 또는 화면을 렌더링, 우리는 정말 아파하는 것 모든 기능 우리 자신을 구현하는, 그래서 간단하게하여 데이터를 상속 우리는 당신이 그 클래스에서 한 모든 것을 말할 수 나는 또한 내 클래스의 내부로 누른 다음 나는 다른 일을 할거야 즉 응용 프로그램을 구현합니다. 증거가 그 단어 상속을 의미합니다. 우리는 더 구체적인 예를 볼 수 있습니다. 그리고 마지막으로, 객체 지향 프로그래밍과 키입니다 이 데이터 캡슐화로 연결됩니다. 우리 문제의 일부 설정에서는이 크고, 전역 변수를 가질 수 사방에 전역, 우리가 주를 추적 할 방법입니다. 수업을 통해 우리는 객체의 내부 정보를 캡슐화 시작할 수 있습니다. 우리는 응용 프로그램에서 한 화면이 있으면, 우리는 정말로부터 데이터가 할 필요가 없습니다 그 우리의 응용 프로그램 내부에서 다른 화면 그래서 수업에서 물건을 캡슐화하여이 실제로 연결 더 나은 코드 설계하고,이 추가 기능의 일부 수 있습니다 오브젝티브-C의. Forewarning는 오브젝티브-C에 대한 구문은 바나나입니다. 그것은 우리가 전에 이런 걸 본 적이 없네 있습니다 그래서 학습 곡선이 익숙해지기의 작은 비트 이 도대체 무엇을 의미합니까? 하지만 일단은 정말, 정말 부드러워 초기 학습 곡선 것이 들어갈 응용 프로그램을 작성할 수 있습니다. 여기 말을, 클래스를 선언하려면,이 존재, 내 수업입니다 그리고 어쩌면 여기에 나중에 정의 할테니까 몇 가지입니다 나는 @ 인터페이스를 말할거야. 나는 @ 인터페이스를 말할거야. 내 클래스 이름을 주겠어. 그리고 나중에 다른 곳에서 나는 @ 끝을 말할거야 @ 인터페이스와 @ 끝 사이의 모든 우리 반 될 것입니다. 그게 우리. h 파일의 안에 뭐가 될 것입니다. 그냥 C에서처럼 우리. h 파일은 기본적으로 존재하는 것 몇 가지가 여기에있다. 나는 반드시, 그들은 아직 무엇을 말 안 할거야 하지만 컴파일러는 그 존재를 알아야합니다. 나중에 안에 우리. m의 파일 - 때문에 오브젝티브-C에 대한 m 어디 우리가 실제로 이러한 클래스가 정의 할거야 있습니다. 대부분의. C 파일처럼, 우리는 기능에 대한 구현을 제공했습니다. 내부의. m 파일에 우리가 여기서 무슨 말을하는 것은 무엇인지 기능의 모든 다들 어떻게 내 수업 - 일의 내부. 그리고 마지막으로, 내부 구조체의 우리가 그 중괄호 안에 말할 수 INT n 또는 노드 * 다음, 및 목표-C에서 우리는, 키워드에게 @ 속성을 사용 할거야 이 방법은 속성을 정의 할 수있어 또는 내 수업의 한 부분이 아닌 기능. 오브젝티브-C 함수를 호출하면 또한 바나나입니다. 우리가 C에서 함수를 선언했을 때 우리는 INT foo는 같은 말을 다음 괄호 개방하고 그것을 인수의 목록을했다. 이 메서드 나 함수를 선언하는 오브젝티브-C의 모습입니다. 나는 함수 나 메서드를 선언하려면 제가 방법을 말하는 곳은 정말 클래스의 멤버 단지 기능입니다 교환 종류의,하지만 정말, 그래서 내부 내 방식을 그래서 나는 새로운 방법을 만들려면. 그것은 아무것도 돌아 오지거야, 그래서 유형 무효 될거야. 이건 내 함수의 반환 유형입니다. - 난 있기 때문에 모르는 지금 우리가 여기 parens 있습니다. 다음 내 함수의 이름 것​​입니다 그리고 마지막으로 우리는 우리가 C.에 있던 같은 세미콜론이 여기서 새로운 것은 여기에 사람입니다. 이 하이픈 실제로 필요하고, 무슨 말하는 것은입니다 여기에서이 방법은 클래스의 인스턴스에서 호출해야합니다. 우리 structs을 선언 한 후 우리는 아마 말하기를 구조체 노드 N, 실제로 만든 제가 실제로 작업을 시작 할 수 있도록 또는 그 structs 중 하나를 인스턴스화 그것의 안에 뭐가와 함께,이 대시 우리가해야 것을 의미합니다 우리가 인스턴스화 좋아 클래스를 인스턴스화 그 구조체 우리는에이 메소드를 호출하기 전에. 내 방법에 인자를 추가하려면 훨씬 더 바나나를 얻을 수 있습니다. 여기 내 방법 이름입니다. 그럼 결장거야,이 콜론 후 여기에 말하는 것은 어떤 인수를 제공합니다. 이 방법은 하나의 인수 걸립니다. 그 인수의 유형은 정수, 그 인수의 이름입니다 또는 나는 방법의 내부를 사용 거라는 변수는 전이라고합니다. 다시 말하지만,이 방법입니다. 그것은 하나의 인수 걸립니다. 더 많은 인수를 추가하려는 경우가 더 많은 바나나를 얻을 수 그 안에 우리가 여기 있다고이 결장은 인자 내 목록을 제공하고 있습니다. 첫 번째 인수는 정수입니다. 자,이 두 번째 인수는 흥미 롭습니다. 내 함수의 내부 사용 할테니까 변수 안으로 내 기능의 내가 말할 수있는, F라고 F + = 1이나 뭐. 여기이 것은 기본적으로 그 인수 또는 매개 변수에 대한 키입니다. 우리는 키 값 쌍을했고 JSON 또는 연관 배열 같은 것처럼 목표-C는 정말 분명 그냥, 알 겠지라고하기로 결정했습니다 당신은 이러한 모든 매개 변수가 어떤 메서드를 호출 할 때 사실은 그들 모두의 이름을거야. 당신이 메서드를 호출 할 때, 사실 andFloat 말을합니다 그리고 당신은 그것을 들어 전달됩니다 흥미롭게도,이 사람은 이름이 있지만 다른 매개 변수의 모든은하지 않습니다 우리는 제 3 인자가 있다면 그래서 내가 andFloat을 말할 수 다른 부동 등. 난이 메서드를 호출 할 때 물론 바나나입니다 나는 객체를 가지고 있고, 나는 foo를 호출하는 방법을 정의하므로 경우 나는 foo를 열고 / 닫기 parens 말을 전화 대신 할 나는 브래킷을 열거야. 여기 내 메서드의 이름입니다. 나는 브래킷을 닫거야,이 내가 거기에에 전화를 해 개체입니다. 단, 이러한 방법의 모든 수업 내에 존재 수업은 그들 내부에 정의 된 메소드를 가질 수 있습니다 때문입니다. 난 여기 임의로 어떤 클래스의 객체를 생성 한 이은 그것을 수행하는 구문입니다. 개체를 만들 2 단계가 있습니다. 첫 번째 단계는 내가 공간을 할당하고 싶을 것입니다. 이 malloc의 동일합니다. 우리는 더 이상 malloc 말을 할 필요가 없습니다. 우리는 m을 놓고 all​​oc을했고,. m로. C를 대체했습니다. 우리 alloc 뭔가 후 우리는 다음을 초기화해야합니다. 기본적으로 객체를 생성 할 때 일부 논리를 할 수도 있습니다 그들이 생성 할 때 실행 즉, 그래서 당신은 몇 가지 기본 값을 전달할 수 있습니다 정도 그런 식으로,이 초기화 방법은 실제로 객체를 생성 일입니다. 우리는 먼저 우리가 C에서했던 것처럼 공간을 할당 그리고 우리는 나 많은 작업을 수행 할 수 없습니다 수있는, 그것을 초기화합니다. 그런 다음 우리는 객체 O에이 일을 반환하고 있습니다. 이 기술적으로 포인터이기 때문에 스타가 여기있다 하지만 포인터가 해당 오브젝티브-C의 큰 거래 더 이상 없으며, 걱정하지 마십시오. 이제 우리는, NSObject이라는 클래스를 인스턴스화 한 이은 애플이 가지고 임의의 클래스입니다. 우리는이 인스턴스화 한 결과, 지금은이 클래스의 인스턴스를 이 객체 O에, 그래서 내가 정의하는 경우 의미 이러한 방법이처럼 전화를 수 있습니다. 마찬가지로, 내가 한 인수와 메소드를 호출하고자 할 경우, 이 막대 방법입니다 그래서 그건 하나의 인수 걸립니다 qux 방법,이 2 인수를 : 여기 Baz도 있습니다. 여기에는이 객체 O에 하나 함수를 호출합니다. 이해가가? 문법은 이해한다,하지만 당신은 가지에 익숙해 져야. 좋아, 오브젝티브-C에 내장되는 몇 가지에 대해 얘기해 보자고 그는 반드시 C.에 내장되지 않았습니다 C에서 우리는 가지,이 바보 같은 문자 배열로 문자열을 처리했다 그리고 신경에 거슬려있어. 오브젝티브-C는 우리에 지어진 사람들을 가지고 있으며, 그것은 년에 지어있어 NSString이라는 클래스를 사용합니다. 난 우리가 더 많은 마법 구문을 NSString을 생성 할 때. 오히려 우리가 @ "cs50"라고 "cs50"을 말하는 것보다 이는 오브젝티브-C에서 문자열을 선언에 대한 구문입니다. 이 잊지 그래서 .. 할 매우 쉽습니다. 이제 한 번 이거 내가이 문자열이지만, 발견 그것은 정말로 단지 객체입니다. 내가 말했듯이 난 클래스를 인스턴스화 의미 NSString, 다른 사람이 나를 위해 쓴 NSString,라고 그리고 그 자식들이 그것에 대해 아주 좋은했고, 내가 그 위에 메서드를 호출 시작할 수 있습니다. 이 객체들에 메소드 길이를 호출하는 경우 나에게 문자열의 길이를 반환하는거야. 이 C.에 불과 나 strlen 같다 이 4를 반환합니다. 마찬가지로, 내 관심 할 수도 있습니다 다른 방법이 characterAtIndex입니다. 이이 문자열 s의라는 방법입니다 당신이 0번째 문자 받기를 원하는 그리고 이건 내가 문자 C에 돌아 가기 그리고 당신이 정말로 쉽게 Google 수있는 이러한 방법 훨씬 더 무리가 있습니다. 애플의 설명서가 멋지네요, 우리는 조금에 해당 살펴됩니다. 이러한 문자열입니다. 우리는 또한 가변 크기 배열은 내장했습니다 우리가 배열을 선언 할 때 C에 기억 우리는 당신이 다섯 요소, 이야기의 끝이 말을했다. 우리가 자바 스크립트와 PHP에 도착했을 때 우리는 시작할 수 요소를 추가하거나 요소를 이동 같은 일을. 우리는 목표-C에서 동일한 작업을 수행 할 수 있습니다. 일반 C의 방법으로 배열을 만드는 것보다 다시 NSMutableArray라는 다른 클래스가 있습니다. , NSArray도 있어요 이 기본적으로 몇 가지 배열을 캡슐화 예정이다. 이게 내가하고 싶은 가장 먼저 내가 할당 싶은 말 새로운 배열을위한 공간, 그리고 제가 할당 한 후 나는 그것을 초기화해야합니다. 다시, 다음이 메서드를 호출. 이것 만이이 객체의 내부를 의미 난 거기에 빈 배열 앉아있다. 내가이 배열에 뭔가를 추가하려면, 내가 addObject 메소드를 호출 할 수 있습니다. 나는 배열에 객체를 추가하려면, 그리고 문자열 CS50을 추가하고 싶습니다. 나는 반대로 내가 무슨 말을 할 수있는 제거하려고하면 제가 직접 배열에서 첫 번째 장소에서 개체를 제거하거나를 반대합니다. 이해가가? 좋아요, 가지이 평방 브래킷 것에 익숙해 질. 그건 그렇고, 애플의 도서관의 많은의 안쪽이 NS를 볼 수 있습니다. NS는 실제로 스티브 잡스 첫번째 회사 중 하나 다음 단계, 약자 이 사람이 정말 코드를 많이 쓰기 시작한 어디 그게 맥 OS X 및 기타 물건에 대한 기준의 종류로, 그래서이 NS이 좋은 유산의 종류는 이전 회사 중 하나 알아 두길 바란다 is 다시 애플이 먼저 알아 시작되었을 때. 사방에있어. 의는보다 전체적인 오브젝티브-C의 예를 살펴 보자. 난 여기 엑스의 내부입니다. 여기 얻으려면, 내가 먼저 앱 스토어에서 엑스 코드를 다운로드 내가 파일에 여기에 가서 그것을 열어, 그리고 여기에 새로운 한 다음 프로젝트에. 나는 내가 작성하고자하는 모든이 옵션을 가지고 수행 한 후, 그래서 우리는 나중에이 옵션을 살펴볼 것이다 하지만 이번 예를 들어, 왜냐면 우린 사실, 아직 앱이 할 수 없어 난 여기 와서, 나는 명령 줄 도구 말했다 그리고 이건 나 명령 줄에서 실행할 수있는 응용 프로그램입니다 우리는 C.에서 실행 된 것처럼 , 그게 내가이 프로젝트를 생성하는 방법이고, 그래서 지금 여기 그래서이 파일의 최초의 모습을 보자,이 아주 낯이 익은해야합니다. 나는 정수 이름이있다. 제 친구 argc, 내 다른 친구 argv가 있어요. 그래서 우리는이 처음 오브젝티브-C 응용 프로그램에 대한 진입 점입니다 볼 수 있습니다. 여기 지금이 무시할 수 있습니다. 이것은 기본적으로 몇 가지 메모리 관리 콘텐츠입니다 안 그렇게된다 그런 일들에 대해 걱정해야합니다. 여기에 첫 번째 블록을 살펴 보자. 이 첫 번째 줄, 나는 학생 말한다면 * 앨리스 = [[학생 alloc] 초기화] 어떤 일을하는거야? 여기에 첫 번째 학생이 아마 클래스입니다. 이 애플가 쓴 클래스는 아니지만 내가 쓴 클래스입니다. 내가 원하는 첫 번째 문제는, 나는 새로운 학생을위한 공간을 할당 할 수 있습니다 그럼 내가 그것을 초기화하려면,이 저를 다시 제공 이 새로운 학생 객체, 나는 앨리스라는 변수에이 저장거야. 그 클래스는 어디에서 왔는가? 자, 여기 왼쪽에이 사람은 내 프로젝트의 내부에 서로 다른 파일에 있습니다. 우리는 내가 Student.h과 Student.m을 여기에서 볼 수 있습니다. 나는 모든 일을 선언 곳. H 파일은 기억입니다 그 클래스 내에 존재합니다. 씨가를 살펴 보자. 자, 여기 우리는이 @ 인터페이스를 가지고 있고,이 온다라고 우리 반 내에 존재합니다 모든 선언. 그럼 내가 콜론가 있습니다. 그런 다음이 NSObject 가지가 있습니다. 이 결장은 우리가 조금 일찍 대해 얘기하고 있었어요 그 상속 비트를 의미합니다. 이 말 NSObject가 할 수있는 건 다 NSObject 다른 사람에 의해 쓰여진이 ​​클래스, 어디에 그 일을 할 수 있도록하려면이 NSObject가 할 수있는 건 다. 말을하면 : NSObject를 그 내가 기본적으로 의미 다른 클래스의 기능을 모두 상속. 그건 정말 내게 내가 사용할 수있는 다양한 메서드와 속성을 아주 많이했다. 여기로 I 2 속성을 만들려고합니다. 이 구조체라면 내 학생을 의미, 이것들은 2 가지 것 내부 내 구조체의, 그래서 모든 학생은 이름이 , 그 문자열이며, 학생은 성적이 이는 정수입니다. 마지막으로, 여기 내 학생을위한 방법을 만들거야. , 나는 initWithName, 내 방법이라고하며, 하나의 인수를 그 인자는 문자열이고, 나는 이름을했다. 지금의 우리가 실제로 클래스를 구현하는 방법 살펴 보도록하겠습니다. 여기, 지금, 내. m 파일 안에있는거야 구현을위한 m는 것 같아요. 난 내 마지막 내 구현을 이용하고, 실제로 정의 곳 여기에 어떤 initWithName는 않습니다. 그때 나는 initWithName, 내 매개 변수의 이름, 그리고이 있습니다 나는 실제로 학생을 만드는 곳입니다 그래서이 조금 이상한이지만,이 틀에 박힌 어떤 종류의 귀하의 생성자에 포함 할. 여기이 초기화 기능, initWithName는 생성자의 한 유형입니다. 당신은 기본적으로 새로운 학생 객체를 구축하고 그리고 아마도 내부에 일부 데이터를 보내는 중입니다. 내가 원하는 가장 먼저 내가이 슈퍼 건에 INIT 전화 해입니다. 기억이 나는. H​​ 파일에 다시 이곳에 말했을 때 그 모든 NSObject는 학생도 있습니다 있습니다. 그게 내가 내가 또한 그럴 거라 할 것은 학생을 만들 때 의미 확인 그게 내가에서 해당 데이터를 모두 상속하는 건 NSObject 또한 제대로 초기화됩니다. 내가 무슨 말을 할 필요하시면이 대단해 실제로 부모 클래스를 참조 것입니다 난에서 상속하는 건, 그래서 내가 초기화되었는지 확인하려면 제가 사용하려는 시작하기 전에 제가에 따라 건 다. 그 초기화하는 경우 다음 올바르게을 말하는 것입니다 경우 malloc null을 반환하지 않은 것은 그럼 내가 일부 속성을 설정 시작할 수 있습니다. 자바 스크립트와 PHP에서 우리는이 키워드는이라고했다 그리고이 클래스의 현재 인스턴스에 언급했다. 오브젝티브-C에서는이 자기를 호출합니다. 나는 self.name 말을 할 때, 그 의미는 개체 제가 학생 alloc는 INIT 말했을 때 난 그냥 생성 그 객체를 돌려 받기 위해거야. 즉, 나는 개체의 이름을 설정하려면 난 그냥 인치 전달 무엇이든에 C에서 맘에 들어요, 우리는이 점으로 회원에 액세스 그래서 self.name는 학생 개체의 이름을 말 이제 방금 들어 전달 무엇이든 될거야 나는 실제로 무언가를 되 찾을 수 있도록 그리고 마지막으로, 내가 돌아갈 수 있습니다. 질문이 있으십니까? 좋아,이 자체가 = 슈퍼는 INIT 당신은 완전히 상속 물건을 이해하지 않으면 걱정하지 마십시오. 그냥 알아 본 적 자신의 초기화 방법을하려는 경우 만 그렇게, 당신은 갈 좋은 수 있습니다. 그래. >> [학생] 만약 자기 무슨 뜻인가요? 이는 때 우리는 malloc은 널 (null)와 동일하다고한다면 우리는 항상 확인 무언가를, 가 널 (null)이었다되면, 우리는 종료. 이 반환 null이 경우, 우리는 아마도 감금 잘못에 갈거야 때문 같은 일이 우리가 그것을 조작하는 시작하는 경우. 그게 우리 학생들의 수업입니다. 우리는 두 가지 방법 중 하나를 사용하여 학생들을 초기화 할 수 있다는 것을 뜻한다. 제가 학생 alloc가 INIT 말을하면 난 그냥 쓴 그 방법을 사용하지 않을거야 대신 나는 단순히 alice.name 말을 할 수 지금은 그 속성 이름을 설정하는거야. 마찬가지로, 그 initWithName 방법을 사용하려면 난 단지 alloc 말을하고보다는 초기화라고 할 수 제가 방금 만든 그 메소드를 호출하려고, 나는 밥에 통과거야. 이 시점에서,이 개체 밥은 밥와 같은 이름이 있습니다. 자, 여기 나는 우리가 이전 바라 보았다 있다는 NSMutableArray를 사용하고 있습니다. 나는 새로운 배열을 초기화 중이 space.Then을 할당거야. 나는 거기에 2 가지를 추가 할거야. 이 배열은 지금 학생 개체를 보유하고 있습니다. 아무데도 내가이 학생들의 배열이라고 할 필요가 없습니다 않은 것을 확인할 수 있습니다. 나는 배열, 기간 있다고 말했다. 그래서 내가 원하는 그 무엇이든 안에 넣을 수 있습니다. 나 여기 2 개체가 있습니다. 마지막으로, 나는, 여기있는이 TF를 다른 개체가 있습니다. 여기 TF.h에 이상 기본적으로 같은 일. 나는 NSObject에서, 그리고 방법에 의해 상속 있어요 당신이 수업을 만들 때이 모든 당신을 위해 수행됩니다, 인터페이스 틀에 박힌 이런 종류의. 그것은 학생들의 속성이 있습니다. 나는 몇 방법은 여기 정말 많은을하지 않는이 그래서 내가이 TF 객체를 생성 한 후 의미 이렇게 생각에서이 메소드 등급을 호출 할 수 있습니다. 오브젝티브-C 구문에 대한 질문 우리가 좀 더로 이동을 시작하기 전에 흥미로운 애플리케이션을 개발 일? 좋아, 그럼의 실제로 아이폰 앱을 보자. 아이폰 앱의 당신은 내부 사용한다고 핵심 클래스는 뷰 컨트롤러라고합니다 그리고 뷰 컨트롤러는 기본적으로 한 화면을 나타냅니다 앱의 내부, 그래서 예를 들어, 음악 응용 프로그램에면 하나의보기 컨트롤러 내 아이폰에있는 모든 노래를 볼 수있는보기를 나타냅니다 수 있습니다. 제가 노래를 클릭하고 재생을 시작할 때 또 다른 뷰 컨트롤러가 될 수 아니면 아티스트로 내려 드릴 뿐이야. 이러한 서로 다른 화면의 각은 다른 뷰 컨트롤러로 표현 될 수 그리고 뷰 컨트롤러 정말이 화면 작동 방법이있다, 단지 클래스입니다. 뷰 컨트롤러의 내부 상황은, 우리는 속성을 할거야 그래서 버튼 등은 우리의 뷰 컨트롤러의 속성 될 것입니다. 우리는 또한 방법을받을거야,이 기본적으로 이벤트 핸들러입니다. 이 방법은 당신이 버튼을 누르면 말한다 나는 결국 다시 일을하려는 우리는 현재의 인스턴스에 액세스하려면이 자기 ​​키워드를 사용하려고하고 있습니다. iOS를에 인터페이스를 구축하기 위해서는 실제로 정말, 정말 간단합니다. 그들은이 좋은 드래그 앤 드롭 인터페이스 빌더라는 인터페이스를 가지고 그리고 2 핵심 개념 귀하의 목표-C까지 인터페이스 빌더로 와이어 IBOutlet과 IBAction 있습니다. IBOutlet는 단순히, 당신은 버튼이 속성을 선언하는 경우 있다고 그리고 당신은 실제 UI에서 뭔가에 연결하려면 그게 콘센트 이래요거야. 마찬가지로, 당신은 이벤트 핸들러를 대표하려는 경우 다음은 행동은 말거야. 실제로 그래픽 표현을 송금하려면 귀하의 코드는 정말, 정말 간단합니다. 당신이 IBOutlet를 연결하려는 경우, 당신이해야 할 모든 당신이 클릭 컨트롤입니다 우리는이 정말 빠른의 예를 볼 수 있습니다. 보기 컨트롤러가 있다고 어디를 클릭을 관리 할 수​​ 있습니다. 당신은 반대로 인터페이스로 끌어 갈거나하는 당신이 이벤트 핸들러를 연결하려는 경우 인터페이스에서 드래그 할거야 다른 방향으로. 의는 아주 간단 iOS를 예를 살펴 보자. 의는 새 프로젝트를 만들 수 있습니다. 나는 응용 프로그램에 여기에 온거야 나는 싱글보기 응용 프로그램을 누릅니다거야. 저는 다음을 클릭합니다 겠어. 내 프로젝트 이름을 드리겠습니다. 나는 그것을 안녕하세요 전화 할께. 흥미롭게도, 애플은 제품을 만드는 가정 수 있도록 당신은 그것을 판매 할 수 있으며 돈을 만들 수 있습니다. 아래에서 이런 일이 아이폰 앱라고 할거야. 당신은 아이 패드 응용 프로그램을 만들 수 있고, 그 애플리케이션 중 하나를 만들려면 그 말은 당신도 그렇게 할 수 두 장치를 지원합니다. 다음은 귀하의 확인 표시는 다음과 같은 형식 싶은 있습니다. 당신은 우리가 나중에 볼 수 스토리 보드를 사용하려면 그리고 당신은 확실히, 자동 참조 카운트를 사용하려면 이는 malloc과 무료라고하는 수고를하지 못하게하는 좋은 기능입니다. 당신이 malloc과 무료 전화하고 싶지 않다면,이 체크를 떠나 것이다. 저는 다음을 클릭거야, 그리고 내가 저장하려는 마지막으로,이 나 한테 물어 것입니다. I 생성에 맞는다, 여기 우리는 간다. 나는 새로운 프로젝트를 만들었습니다. 여기 왼쪽에있는 동안 내 프로젝트의 내부에있는 모든 파일입니다 내가 아주 많이도 있다는 것을, 나는 아무 짓도하지 않았어요. IOS는 정말 멋진 여자에요. 예를 들어, 여기에 ViewController.h, 이, 첫 뷰 컨트롤러를 나타내는 것입니다 내 응용 프로그램의 내부의 첫 번째 화면 때문에. 이제 우리는이 무슨 말을. 우리는,이 클래스 ViewController에 전화를 말하는 와 ViewController는 UIViewController는 않는 모든 것을 이 방법은 다시 애플은 우리에게 편리한 물건을 많이 않는 쓴 몇 가지 클래스입니다 화면을 표시 좋아해요. 나는 실제로 내보기 컨트롤러는 무엇을 정의 시작할 수 있습니다 곳에서, 그리고 정말 이것들 중 어떤 것도 필요하지 않는 것이 밝혀졌다. 이 애플이 무료로 저를주는 상용구 코드입니다. , 그 첫 번째 줄 필요 한건가요?, 아니면 내가 수업이 없습니다 그래서 우리는 그 제거하고 제거 할 수 있습니다. 좋아, 이쪽은 내 빈 화면입니다. 자,이 MainStoryboard.storyboard를 클릭하게 이 흥미로운 시작 곳입니다. 이건 내 응용 프로그램에 대한 첫 번째 화면을 나타냅니다. 내가 단추를 추가하려면, HTML에서 나는 버튼 태그를 만들어야했습니다. 안드로이드에서는, 버튼 태그를 만들어야합니다 하지만 iOS를에 그냥 맨 아래 오른쪽에 이쪽으로 내려 오면 내가 여기이 세번째 하나를 클릭하면 있으며, 객체를 말합니다 곳 나는 아래로 스크롤 할 수 있습니다, 또는 버튼에 대한 검색을 시작할 수 있습니다. 실은,이 권리를 드래그 앤 드롭 있도록한다면,,, 버튼을 찾아 난 그냥 내 응용 프로그램에서이 화면에 버튼을 추가했습니다. 나는 텍스트를 변경하려면, 내가 더블을 클릭하면 일이 같은 유혹 말 "저를 누르십시오." 내가이 앱을 실행하면 좋아요, 이제, 우리는 그것을 컴파일 그래서를 실행하는 나는 왼쪽 상단에있는 재생 버튼을 클릭하고 내 응용 프로그램이 있어요. 난 아무 짓도 안 했어요, 그리고 달콤한 찾고 아이폰 앱을 가지고. 내가 중지하려면, 당신은 정지 버튼을 클릭 할 수 있습니다 더 재미 때문입니다. 자, 내가 사실이 버튼을 누르면 무슨 일이 원하는 것을 말한다. 내가해야 할 것은 그렇게 나는 만들 필요가 새로운 이벤트 핸들러 또는 액션. 그래서 내가 호출 할 몇 가지 방법을 만들 필요가 있다는 것을 의미 내가 버튼을 누르면 있으니,이 새로운 방법을 만들 수 있습니다. 나는 ViewController.h의 내부입니다. 나는 방법이 존재 말을해야합니다. 나는 뷰 컨트롤러에이 전화 할 거예요 때문에 먼저 하이픈이 필요합니다. 이에게 유형을 제공해야합니다. 이 유형은 우리가 이전에 본 그 IBAction의 일이 될 것입니다. 이 이벤트 처리기입니다,이 IBAction을 반환하는거야 그래서 이 그 말을하기 엑스에 들까 이게 내가에게 뭔가를 연결할 할 일입니다. 나는 buttonPressed, 세미콜론 마찬가지로 이름을 줄 수 있습니다. 지금은 내 클래스의 내부에 새로운 방법을 선언했습니다. 이 방법은 존재하는 말했습니다. 지금의이 ViewController.m에 오게하면, 과의이 방법은 할 수있는 일을한다고 가정 해 봅시다. 제가 입력을 시작하면 예를 들어, (무효) buttonPressed 통지 엑스 정말 좋은 날에 autocompletes. 그건 정말 멋진 일이야. . m 파일의 내부는 생각도 무효라고 할 수있는 이곳주의, 그 IBAction 실제로는 형식이 아니기 때문에이입니다. 이 사실은, 무효로 어딘가에 정의 된 해시 태그있어 다시,이는 말합니다 엑스에 들까 이런 일이 이벤트 핸들러되고 싶어하며, 그 이유는 단지 두 번째에 우리는 볼 수 있습니다. 이 버튼을 누를 때 짜증나는 일을 할거야 팝업을 표시 좋아해요. 난 UIAlertView이라는 클래스의 새 인스턴스를 만들 수 있습니다 그 일을 할, 이 애플은 성가신 팝업을 표시 할 거라는 게 쓴 클래스입니다. 이 팝업 알림을 전화 해요 2 단계가이 개체를 만드는 기억. 제가해야 할 첫 번째 일은 공간을 할당합니다. 나는 UIAlertView를 싶습니다. 나는 공간을 할당하고 싶습니다. 그게 내 첫 번째 방법입니다. 내 옆에있는 방법은, 내가를 초기화하고 싶어요 그래서 나는 initWithTitle이라는 큰, 긴 방법을 수 있습니다. 그래서 기본적으로 팝업 말한대로 제어 할거야. 내 팝업의 제목은 인사 할 수 있습니다. 팝업 메시지가 될 수 있습니다 "이 iOS를입니다." 위임 문제는, 난 그게 뭔지 몰라. 하자의 아무 말도하지 않습니다. 지금 표시 할거야 버튼 ", 물론이다"같은 말을 할 수 내가 정말 다른 버튼을 원하지 않기 때문에 씨가를 삭제하고 브래킷을 닫습니다 보자. 좋아, 내가 하나 더를 만들었습니다. 우리는 간다. 이건 내가 새로운 팝업을 생성 할 수 있습니다 방법입니다. 난 사실 팝업을 표시하려는 경우이 공연 메서드를 호출하고 싶습니다. 제가 경고하고 쇼를 말할 수있는 그런 짓을하는 것은, 다시, 자동 완성은 슈퍼 멋진했습니다. 난 그냥 S를 입력하면 그이 뭔지 잊었다면 나는 그게 뭔지 알아 내려고 여기를 스크롤 할 수 있습니다 그리고 잘 걸러냅니다. 지금은이 새로운 팝업을 만들었습니다. 우리는 나중에 대리인이 무슨 뜻인지에 돌아 오면 지금은 내가이 방법을 해고하려는 싶은 말 내가 버튼을 누르면, 내 스토리 보드로 돌아와야로 갈 거에요 또 지금이 IBAction을 첨부하고 싶습니다. 당신이 원하는 가장 먼저하는 일이 버튼을 클릭합니다. 내가이 버튼을 누르면 언제 무슨 일이 일어날 필요. 내가 컨트롤 누르고 않을거야. 나는 클릭하고 버튼에서 드래그거야 여기에 위치로는보기 컨트롤러를 말합니다. 우리는 잘 환해 것을 볼 수 있습니다. 내 마우스를 놓으면 몇 가지 옵션을 가지고있는 지금 여기에 팝업 수 있습니다. 이 중 하나는 내가 등록 할 수있는 이벤트입니다. 이 내 H 파일 IBActions로 선언 이러한 방법의 모든 수 있습니다. 이것은 엑스가 무슨이 작은 목록에 나타납니다 알고 방법입니다 그래서 그냥 힌트입니다. 제가 누른 버튼을 클릭하면, 지금은 이벤트 핸들러를 등록했습니다. 자바 스크립트에서는 내가 이벤트 핸들러를 등록 몇 가지 코드가 말을했다. 오브젝티브-C에서는 그렇게 쉽게했다. 나는 다시를 실행하는 경우 지금은 버튼을 누르면 내 이벤트 핸들러는, 발사 것이다 나는이 팝업 가져다 드리죠. 이 슈퍼, 슈퍼 간단합니다. 지금까지 등록 할 일 모든 일정을보고 싶다면 구성 요소에서이 버튼을 클릭하면 그리고 오른쪽으로 이리와 먼저 내가 버튼의 종류 같은 일을 할 수있다 여기에 볼 수 있습니다 당신이 저 I의 또는 추가 문의 버튼 중 하나를 싶다면 뭐든간에. 이 버튼을에있는 모든 이벤트를 확인하려는 경우 나는 오른쪽으로 여기까지 올 경우 우리는 난이 다른 모든 이벤트를 이벤트 '에서 볼 수 있습니다. 내가 탭을 두 번이든 그 때, 버튼을 놓아 때, 버튼을 누르면 그냥 난 등록 된 사람은,이 이벤트가 내부 터치 업이라고합니다 이는 곧 내 손가락 버튼을 듭니다 있다고 해당 이벤트 화재로 이동하고 있으며, 그게 정확히 무슨 일이 있었는지입니다. 이것이 기본 버튼을 누르면 이벤트의 종류입니다. 질문까지? 자, 우리가 우리의 코드에서 일을 송금 시작할 수있는 방법 우리 인터페이스의 내부 일에. 우리가해야 할 일을했을 첫 번째 문제는, 코드를 찾는 것이 었습니다 기억 그리고 우리는 코드에 인터페이스를 유선 그리고 첫 번째 응용 프로그램이 있어요. 좋아, 정말 끝내 줬어요, 우리는이 버튼을 만들었습니다. 우리가 할 경우 속성의 무리를 생성하고 싶지 무엇입니까 이 버튼을 대표? 예를 들어, 틱 전술 발가락 부분에 나는, 9 버튼을 그리고 9 번 드래그 앤 드롭하는 게 슈퍼, 슈퍼 성가신있을 아니면 81로 콩알 만 발가락을 대신 9 있다면 그리고 드래그 앤 81 시간을 떨어했고, 그건별로에요. 우리가 대신 할 수있는 것이 훨씬 HTML 같다 우리는 ID 및 이름과 같은 것을 가지고 우리는 물건을 검색 할 수 있습니다 때 자신의 ID가, 태그라는 iOS를에 비슷한 생각이 있어요. 태그는 단순히 구성 요소에 대한 고유 숫자 식별자입니다. 나는이 0의 태그를 가지고 말한다면, 예를 들어, 제가 버튼을 만들고 그것에게 0의 태그를 제공하고, 우리가 두 번째에서 해당 작업을 수행하는 방법에 표시됩니다한다면, 그 버튼을 얻으려면 나는 단순히 내가 전화 할 말을 할 수 여기에 개체에 대한 방법을 viewWithTag, 예를 들어, 현재 화면을 나타냅니다 self.view,. 그 viewWithTag 메서드를 호출하면, 나는 태그 0 버튼을 다시 끌어거야. 가 건물 콩알 만 발가락으로이를 살펴 보자. 먼저, 이쪽은 내 스토리 보드입니다. 내가이 열 UI 버튼을 만들었습니다. 그들은 모두 같은 크기도 엄청납니다. 나는이 중 하나를 클릭하여이 오른쪽에 여기에 돌아 오시면 당신은 내가 여기에 글꼴을 조정, 그래서 제가 조금 더 글꼴을 만들어 볼 수 있습니다 하지만, 나 또한 무슨 짓을했는지는 내가이 태그를 설정했습니다. 이 1의 태그를 가지고 있다고하고, 그 왼쪽 상단입니다. 자, 내가 다른 버튼을 클릭하면, 여기있는이 두 번째 같은, 지금은 우리 태그는 2 것을 확인할 수 있습니다. 이 버튼의 각 단지 고유 태그가 그래서이 나중에 어떻게 상호 작용을 시작 할거야합니다 내 앱. 이것은 하나의보기 컨트롤러의 모든 내부입니다 그러나 여기서 우리가 뭘 것입니다. 우리는 여기서 세 속성을 수 있습니다. 첫 번째와 마지막 하나는 내 보드의 상태를 나타내는 것입니다. 기본적으로 첫 번째 하나는 XS과 OS가있는 곳을 나타내는 배열입니다. 이 다른 하나는 여기 누구의 차례가 우리에게 알려줍니다. 당신은 내가 또한 여기에서 이런 일이 있다는 것을 알 수 있습니다. 전에 우리가 속성을 선언 할 때 우리는 그들에게 이름과 유형을 주었다. 우리는 또한 여기 몇 가지 추가 정보를 제공 할 수 있습니다. 첫 번째는 nonatomic 말합니다,이가 말한 기본적으로 한 것은 절대 한 번에이 변수를 액세스하려는 될 것입니다 수 있습니다. 당신은 다중 스레드 아르 더 복잡한 응용 프로그램을 할 수 그래서 다시 스크래치에서 우리는 다른 스레드를 가지고 서로 다른 스프라이트가 같은 시간에 다른 일을 할 수있다. 그게 우리가보고됩니다 것을 아무것도 아닌 경우가 아닌 경우 우리가 nonatomic 말하면 사실은 일이 조금 더 빠르게 할거야. 또한, 할당 강한, 또는 약한라는 일이 있습니다. 이 지정은이 표준 형식입니다 있다고 말한다. 이 단지 BOOL이기 때문, 개체 또는 포인터가 아닙니다 그래서 BOOL는 오브젝티브-C에 내장되어 있습니다. 여긴 포인터와 멋진 아무것도하려고하지 않습니다 말합니다. 그것은 평범한 스케일러입니다. 강하고 약한이 약한는 실제로 말한다 지금은 뷰 컨트롤러에 뭔가를 가리키고 싶어. 사실은 할당하려고하거나 자신을 INIT 않을거야. 인터페이스 빌더, 나는 응용 프로그램을 실행할 때, 모든 초기화를 처리하는 것이다. 제가 약한 말한다면, 그 다른 사람이을 만들 것입니다 말합니다. 나는 강한 말한다면,이 내가 될 걸요 있다고 즉,이 보드 객체를 만드는 경우 그래서 제가 여기 여기 좀 더 방법이 예를 들어, 새로운 게임 버튼을 누를 때에 대한 작업, 다른 버튼의 누를 때에 대한 작업, 와 ET 기타 등등. 우리는 콩알 만 발가락의 논리를 너무 많이 들어갈 수 없습니다 매우 흥미로운,하지만 그건 살펴 있지만, 우리는 iOS를 내부 할 수있는 몇 가지. 이 새로운 게임 방식은 해고 될 것입니다 나는 새 게임 버튼을 누를 때마다. 최대 난 그저 스토리 보드에 올 것을 연결합니다. 나는 새로운 게임에 클릭했습니다. 나는 오른쪽으로 여기에 오면 저를 볼 수 있습니다 newGame 방법으로이 설치된 속에 터치합니다. 이 해고당한 것입니다 이유입니다. newGame 방법은 몇 가지 설정을 할 예정이다. 그것은 당신이 보드의 상태를 삭제하려면 말거야. 이 변경 가능한 배열에 좋은 방법입니다. 이것은 지금 X의 차례라고 것입니다 지금이 viewWithTag 물건을 활용하는거야. 난 내 버튼이 태그를 1-9를 가지고 있다는 것을 알고 그리고 내가 임의로 선택한 것이지. 나는 비어 각 버튼의 텍스트를 설정하려면 난 그냥 새로운 게임을 시작하고 어떤을 원하지 않기 때문에 난 할 수있어 이상 XS 또는 OS가 남아있을 수 있습니다. 나는 태그보기, 1, 2, 3, 4 동부 표준시의 기타 등등 원하는 말을 할 수 있습니다. 이 다른 버튼을 때마다 가져옵니다. 난 여기 UIButton 할을 행사할거야. 우리는 수레와 반대로 ints을 행사할 수있는 것처럼 이게 내가 UIButton이를 캐스팅하려는 말합니다. 즉,이 유형은 UIButton의 * 수 때문에 포인터,하지만, 걱정하지 마세요, 그들은 더 이상 무섭지 않아요. 일단 내가 거기에 메서드를 호출하는거야이 버튼을 갖추고 있습니다. 이 방법은 setTitle forState라고, 그래서이 있다고합니다 난 빈 문자열로 버튼의 텍스트를 설정하려면 그리고 나는이 다림질도 안 빈 문자열되고 싶어요. 나는이 방법을 사용하고 있다면 버튼의 텍스트를 변경할 수 있습니다 누군가에 도달하지만, 우리는 버튼이 저기 앉아 때하고 싶은 말은 자마자 나는 텍스트를 빈가되고 싶어요. 마지막으로, 우리는, 내 보드를 초기화 할거야 그리고 내가 다가 0에 현재 이렇게 말할거야 이 보드 있도록 회원 불변는 변경할 수 배열입니다 어떤 내가 addObject 방법 및 그것의 단지 0 내부를 호출 할 수 있습니다. 그래서 내가 새로운 게임을 만들 때 어떤 일이 벌어지는 지입니다. 가 또 하나를 살펴 보자. 여기이 방법은 누를 수 거에요 IBAction is 때마다 그 사각형 중 하나를 누르면됩니다. 지금 우리는 콩알 만 발가락 로직 자네가 있습니다. 우리는 누구의 차례가 알아 그리고, 우리는 하나 X 또는 O를 설정하는 것이에 따라 그러나 우리는 우리가이 같은 이벤트 핸들러를 재사용하는 것을 알 이 버튼 하나 하나에. 나는 왼쪽 상단 버튼을위한 방법을 가지고 있지 않다는 걸 의미한다, 나는 오른쪽 아래 버튼에 대해 다른 방법을, 그런 짓을 할 수 있습니다 있지만. 정말 좋은 디자인을하지 않을 것입니다. 내가 여기서 뭐하는 건 실제로 결정하는 것거든요 누르고 된 버튼의 태그는 무엇입니다. 이 놀이 방법은 하나의 인수 걸립니다 것을 확인할 수 있습니다. 그것은 보낸라고, 그리고 발신자는 발신자가로 가고 있는지에 정확히에 조치를 취했는지 나타냅니다. 내가 버튼을 누르면,이 발신자는 그 UIButton가 될 것입니다 난 사실 누르면 것을, 그래서 의미 그 UIButton 제가 태그를 생성하기 때문에 태그가 있습니다. 제가 태그에서 얻을하려는 경우 간단히 말해서 나는 당신 말을 할 수 나는 보낸 사람의 태그를 원하는 다시, 난 그냥 UIButton에 주조했습니다. 나는 발신자가 UIButton 될 것이라고 아세요. 항상 UIButton 할 필요가 없습니다. 내 말은, 예를 들어, 동일한 이벤트 핸들러를 등록 할 수  버튼 슬라이더에 대해 하나 하나. 이 경우, 나는 그들이 모든 버튼 있으니 말거야 이건 버튼으로 누른 다음 나는 태그를 얻을 수 있습니다 그리고 태그 내 몸은 보드의 내부 어디에 있는지. 그리고 단순히 X 또는 O, 회전 대칭 수 중 하나를 설정할 수 있습니다 , 기타 등등을 수상했습니다 사람 확인합니다. 이 지금까지의 질문? 자, 우리가 온라인 우리가 너무 많이 들어갈하지 않으 게시 된 모든 코드 콩알 만 발가락 논리,하지만, 지금은 그게 정말 볼 수 있습니다 우리가하는 모든, 우리는이 배열을 통해 반복하고 있습니다 그래서 우리는 여기에 루프에 대한 몇 있고, 우리가 볼 수 비교 우리는 모든 행, 그런 열이 전혀 일치의 일치가 않습니다. 난이 버튼 중 하나를 탭하면, 사실이 응용 프로그램을 실행하려면 그 놀이 방법이 발사 된, 난 그냥 설정 의미하므로 버튼이 X로, 이제이 버튼은 O 수 등합니다 그래서 우리가이 단일 페이지 응용 프로그램과 상호 작용하기 시작 방법은 다음과 같습니다. 우리는 코드를 게시 해 드리겠습니다, 그래서를 정독 해 주시기 바랍니다, 하지만 지금의 단지 한 페이지 이상 일부 애플리케이션에 대해 얘기 해봐요. 콩알 만 발가락만큼 흥미로운는 iOS를 내부 앱을 많이했습니다 이러한 훈련의 종류는 여러 화면과 것들 다운입니다. 우리가 얘기해야하는 첫 번째 개념은, 프로토콜 아르 과 프로토콜은 단순히 방법의 집합입니다 당신은 정의하기 위해 약속 할 수 있는지 확인하십시오. 나는 2 가지 방법으로이 새로운 프로토콜이 첫 번째를 만드는 경우 반환 유형이 무효 인 경우, 내가 foo를했다. 이 인수도도지지 않습니다. 또 다른 방법이 있습니다. 그것은 정수를 반환합니다. 나는 금지라고하고, 하나의 인수를 걸립니다. 이 모든 프로토콜은 여기 SomeProtocol을라고 것입니다 이 사람이 구현할 수있는 건의 집합입니다. 내 마음은이 프로토콜의는 foo는 무엇을하건 말하지 않았습니다. 대신에, 난 그냥 당신이 원하는 경우 foo는 정의 할 수 없다는거야. 나는 뷰 컨트롤러를 만들거나 클래스를 만들려고하는 경우 내 마음은 그 클래스의 약속을 구현 할 수 있습니다 이러한 방법의 일부, 그래서 예를 들어,이 말 이 지금 당신 께 약속을 만드는 중이라는 안에 이 뷰 컨트롤러 클래스의 나는 foo는, 바 모두 정의해야합니다. 왜 유용합니다? iOS를 내부 구성 요소의 많은이 활용 디자인 패턴은 위임했는데, 대표단이 무슨 말을 즉, 예를 들어, 나는 텍스트 상자가있는 경우 내 텍스트 상자의 안쪽 등록 할 수있는 몇 가지 이벤트가 있습니다 오히려 내가 할 수있는 일을 별도의 일정을 만들보다 내가 말할 수있는 것입니다 이 텍스트 상자의 대의원은 어떤 객체 될 것입니다. 난이 지금은 대리인이 그 말을 할 때 그 말은 일부 이벤트는 텍스트 상자에 해고 됐을 때 보다는 같은 것도 등록 할 필요 단지 대리인에 메서드를 호출하는거야. 예를 들어, 내부 내 텍스트 상자의 나는 눌렀을 때하는 방법이 즉, 오른쪽 하단에 버튼을 수행 그래서 대신 내가 무슨 말을 할 수있는 이벤트 핸들러를하고 있습니다 등록 텍스트 상자, 여기서 당신이에 메서드를 호출 할 객체입니다 때마다 누군가 프레스 완료 버튼을, 그리고 그 객체가 어떤 프로토콜을 구현하는 것을 의미 그건 내가 그 완료 버튼 동작을 정의하는 약속 말한다 왜냐하면 그 방법을 정의하지 않으며 작업을 완료 누르면, 그때가 혼란거야. 가 예를 살펴 보자. 난 여기 단순히 하나의 텍스트 상자가 이 오른쪽에 여기에이 텍스트 상자의 속성 중 하나는 위임이다. 이 클래스의 속성입니다. 내가 여기했던 건 내가 클릭 제어 있으며, 내가 여기서이 장소에서 드래그 에 뷰 컨트롤러, 그 지금이 텍스트 상자의 대의원을 말한다 뷰 컨트롤러가 될 것입니다. 어떤 행동이 일어날 아니라 등록보다 때 것을 의미한다 당신이 대리인에게 보낼 별도의 이벤트 핸들러. 지금의 내 뷰 컨트롤러를 살펴 보자. . H 파일의 내부 나는 약속을했습니다. 이 프로토콜의 내부에 몇 가지 방법을 구현하는 약속이 있어서요 UITextFieldDelegate, 다시라는 이 내가 구현하도록 선택할 수있는 몇 가지의 일부 목록입니다. 내. m 파일에 여기 오면, 난 하나의 방법을 구현했습니다. 나는 textFieldShouldReturn 전화했는데 그게 다이 프로토콜의 내부 호출 한거야 때문입니다. 그리고 지금은 그 텍스트 필드의 완료 버튼 내부를 누를 때마다 이 호출이 일어날 지이며, 그래서 이벤트 핸들러를 등록하지 않았습니다. 나는 대의원을 연결,이 이벤트가 시작됩니다 때마다 이 내 스토리 보드에 여기 와서 실행하면, 호출된다 방법입니다 그것을 - 그로드되는 동안 우리는이 현상이 무엇을 볼 수 있습니다. 내 화면에 내가 2 가지가 있습니다. 이 텍스트 필드를 가지고 있고,이 라벨이 있습니다. 난 단지 내가이 라벨의 텍스트를 말 사용자가 텍스트 필드의 내부에 입력 한 어떤 같아야합니다. 여기에 다음 행은 단순히 내가 전화하는 방법입니다 당신이 키보드를 숨기려면라는 텍스트 필드에. 이건 그냥 애플이 선택한 임의의 방법입니다. 내가 모든 걸 송금했습니다 짓을하기 전에 다시 한번,, 그래서 제가 여기 처음 와서. 뷰 컨트롤러에서 나는 텍스트 상자로 드래그합니다. 내가이 텍스트 필드 속성을 만들 수 있다는 것을 놓아, 나는 여기에서 볼 수 있습니다 이상 여기에 뷰 컨트롤러에서부터 속성을 정의 그 텍스트 필드의 IBOutlet입니다. 이것이 내가이 속성을 연결할 수 있다고 내 UI에서 텍스트 필드. 지금은이 링크를 눌러 때 입력을 시작할 수 있습니다. 나는 완료 버튼을 클릭하면 지금이 발사 것입니다 지금에 응답 할 수있는 이벤트입니다. 어떤 이벤트 핸들러 없습니다. 그래서 내가 그 한 버튼에 응답 방법은 다음과 같습니다. 이해가가? 이 - 당신이 그렇게 적 자신을 찾을하지 않을 수 있습니다 디자인 패턴입니다 자신의 프로토콜을 만드는,하지만 단지 알아 몇 가지 다른 iOS를 구성 요소는 다른 방식으로 이벤트를 등록합니다. 버튼은 예를 들어, 이러한 IBActions을 사용합니다. 텍스트 필드는 반면에 명을 사용하는 것입니다. 우리는 볼 수 있으며 문서의 최대 내부의 모든 찾을 수 있습니다. 그건 그렇고, 당신을 위해 iOS를 내장 UI의 물건 톤, 사실은이 그래서 예를 들어, 방법은 제가 오른쪽 하단에 완료하는 말 한 이 텍스트 필드를 선택합니다. 여기 와서. 나는 키를 반환하는 비트를 스크롤 내가 말하려는 것을하려는 경우처럼 나는 실제로이 물건의 전체 무리 할 수​​ 있습니다 긴급 대신 내가 완전히 무작위입니다, 그렇게 할 수 전화 내장 된 긴급 통화 버튼이 왜 난 몰라 하지만, 정말 작은 글자에서 긴급 전화는 말합니다. 여기 있습니다. 물론 iOS를 이러한 서로 다른 옵션을 모두 탐험 해보세요. 규모에 대한 질문? 다시 말하지만, 당신이 알고 있어야 단지 흥미로운 디자인 패턴. 자, 다음 표 전망을 살펴 보자. 테이블보기는 기본적으로 모든 iOS를의 장소 위에 항목의 목록입니다. 귀하의 모든 연락처를 뒤집어 경우보고 설정 페이지 및 물건 목록의 종류 테이블보기를라고합니다. iOS를에서 테이블 뷰를 구현하는 것은 매우 간단합니다. 대신 그 UIViewController에서 내려 클래스를 만드는 우리가 단순히 말보다 필요하기 전에 우리가했던 것처럼 UIViewController 내가하고 싶은 않는 모든 나는 UITableViewController 내가하고 싶은 않는 모든 말을 수 있도록하는 것은 단순히 완전히 우리를 위해 이루어집니다 몇 가지 추가를 추가합니다. 우리는 기본적으로 테이블의 내부의 공백을 채워 거의 작업을 수행해야합니다. 제가 몇 가지 질문에 대답해야하는 테이블을 표시하기 위해. 대답 할 필요가 첫 번째 질문은 다음 표에 나와 있습니다 얼마나 많은 부분입니까? 귀하의 연락처 응용 프로그램을 통해 플 리핑 할 때 당신은 어떤 종류의 있다는 것을 알 수 으로 주최 한 다음에 학사 학위를 가지고, 당신은 그 작은 하위 헤더가 있습니다. 사람들의 각 섹션이라고합니다. 당신은 수도하거나 필요하지 않을 수 있습니다. 당신이해야 할 첫 번째 일은 메서드를 구현 is numberOfSectionsInTableView : tableView했다. 그건 단순히 당신이 얼마나 많은 섹션 반환 그래서이 집이 당신이 하나의 큰 테이블보기가있는 경우 하나를 반환 말을 수 있습니다. iOS를 알고 필요로하는 다음 질문은 당신이 얼마나 많은 행이있어서인가요? 예를 들어, 테이블보기를 통해 뒤집어. 당신이보고있는 노래의 고정 번호 나 연락처 고정 수 있습니다. 경우, 물론, 많은 아니고 야 그래서 그 iOS를 표시 할 얼마나 많은 세포가 알고있는 방법은 다음과 같습니다. 다시 말하지만,이 반환 3과 같은 말을 수 있습니다. 내 테이블보기는 3 행이 있습니다. 마지막으로, iOS를, 각 세포가 어떻게 생겼는지 알 필요가 그래서 그런 일이 실제로거야 것은, 거기에이 방법을 부르 이 tableView : cellForRowAtIndexPath. 당신의 테이블의 내부에 하나 하나 셀에서이 메서드를 호출하는거야. 어떻게 그것을 호출하는 방법을 몇 번 알 수 있습니까? 글쎄, 당신은 섹션의 행의 수의 안쪽을했다. 우리는 우리의 세포의 각각에이 전화를하고 당신은 실제로 같은 일을 할 수있는 안을이 있습니다 텍스트를 설정하거나 오른쪽에있는 저 작은 파란색 버튼이 무엇을 말해. 이러한 세포를 가져 오기위한 패턴, 우리는이 방법을 사용하는 것 dequeueReusableCellWithIdentifier했다. 오브젝티브-C는 자신의 방법 이름의 터무니없는 길이 매우 잘 알려진 사실입니다 이 정말 포인트 예에서 좋은 경우가 있습니다. 이건 뭐야이 방법은 수행 단 내가 나에게 셀을주고 싶다 말한다. 그냥 iOS를 할까. 당신의 iPod에 100,000 곡 같은가있는 경우 무엇 iOS를하고 싶어하지 않는 것은, 100,000 셀을 할당 is 귀하의 목록의 맨 위에 있다면, 당신은 정말 메모리를 할당 할 필요가 없기 때문에 다운 99000 행입니다 셀에 대해? 아니, 당신이 스크롤대로 당신은 진행하는데로 할당 종류가 가능합니다. 이것은 당신을 위해 수행됩니다. 당신은 그 바보 같은 성능 그런거 걱정 할 필요가 없습니다. 당신이 말하는 모든 당신은이 방법 dequeueReusableCellWithIdentifier를 불러 당신이 내가 당신을위한 새로운 셀을 만들거다해야하는 경우이 방법은, 알 말한다. 당신은 테이블의 맨 아래에있는 고한다면 당신은 이미 일부 셀을 할당 한 당신이 정말로 조만간 필요 없어하는 표 상단에있는 난 당신 대신 새로운 하나를 할당 다시 그 중 하나를 주겠다 등이 좋은 성능 관심사입니다. 당신은 세포를 직접 할당 할 필요가 없습니다. 그건 셀을 되돌려 줄거야. 당신에 셀 개체를 반환하는거야. 일단 당신이 그것에 물건을 할 수있는 세포 개체가 있습니다. 당신은 텍스트 레이블이라는 속성과 셀의 텍스트를 설정할 수 있습니다. 당신은 오른쪽 또는 다른 임의의 것들에 그 화살표를 추가 할 수 있습니다 이 다른 속성과 accessoryType라는 등 등. 의 실제로 지금 테이블 뷰를 구현 살펴 보자. 이 프로젝트를 만들 때 오히려 단일보기 응용 프로그램을 말하는 것보다 사실은 제가 여기 온 마스터 세부 응용 프로그램에, 그래서 기본적으로이 메일 응용 프로그램에 해당하는 왼쪽에있는 테이블보기를 누른 다음 오른쪽에있는 내용으로 아이 패드 있습니다. iPod 또는 아이폰에서이 하나의 테이블보기에 해당하는 것입니다. 내 시작 코드를 가지고있는 곳입니다. 의 처음 스토리 보드를 살펴 보자. 이 모든 것이 기본적으로 만들어 나를 위해 이루어졌다. 이 탐색 바, 예를 들어 셀 모양 수있는 걸 보여 주었다 그리고, 더블,이 링크를 눌러 제목을 변경할 수 있습니다. 기타 UI의 문제가 거기를 처리 할 수​​ 있습니다. 헤더 파일은 아주 간단 보입니다. 오히려이 UIViewController 말은보다 우리는 이제 이런일이 말하는 TableViewController, 그래서 우리는 모든 테이블 메서드를 호출 할 알아요. 나는 표현하는거야 속성을 만들려면 다음 내 테이블의 내부 일. 이 테이블은 임의로 표시 할 것입니다 과일의 목록, 그리고 그래서 난 배열을 만들 필요가 있는 나는 과일을 삽입 할 수 있습니다. 내 구현 파일 먼저 내부 나하고 싶은 내가이 배열을 초기화되도록 할 것입니다. 나는 alloc은 초기화 말하길 내 과일 배열을 생성, 그리고 난 여기에 다른 3보다 훨씬 더 논쟁 중 하나는이 4 가지를 추가하는거야. 그리고 지금은 크기가 4 배열되어 있습니다. 우리는 CS50에를 떨고 있어요. 지금은 크기가 4 배열되어 있습니다. 지금은, 실제로 이러한 질문에 대한 답변을 시작테니까 내가이 응용 프로그램을 만들 때이 모든이 이미 나를 위해 이루어졌다. 나는 테이블보기에서 섹션의 번호를 입력 할 필요가 없습니다. 그것은 이미 거기 있었고, 전 여백을 작성 한 것 뿐이예요. 나는 얼마나 많은 섹션이 있습니까? 하나. 다됐다. 나는 얼마나 많은 행이합니까? 음, 모든 과일에 대해 하나의 행을 가지고,이 카운트 얼마나 큰하다고 모든 배열의 속성인가? 그래서 내가 얼마나 많은 행입니다. 마지막으로, 나는 어떤 각 셀 보이는데 말을해야합니까? 나는 dequeueReusableCellWithIdentifier 말거야. 다시 말하지만, 이것은 이미 나를 위해 작성되었습니다. 이 자신을 필요가 없었다, 나는 돌아가려면 이 위치에서 해당 셀. 우리는 모든 단일 셀에서이 같은 메소드를 호출하는 것을 기억 여기이 인수,이 indexPath 인수, 들어 왔어요 어떤 행 말한다 여기 indexPath.row를 말한다면 이 0이됩니다, 다음 1되고, 다음 2 될 것입니다, 그리고 내가 알 수 있도록이 있습니다 제가 현재 표시하는지 셀. 이 textLabel 속성을 사용하여 셀의 텍스트를 설정하려면 내 과일 배열 안에 가서 받아 각 행에 해당하는 개체입니다. 이 문자열 인 경우, 지금은 설정 해요 문자열에 텍스트 속성입니다. 나는 다른 일을 할 수 있습니다. 나는 또한, 각각의 셀에 이벤트 핸들러를 등록 할 수 있습니다 나는이 세포의 각을 누르면 이렇게하면 이 didSelectRowAtIndexPath,이 날 위해 호출 할 것입니다 그래서 단순히이 정의하여 지금은 어떻게 처리 할 수​​ 있습니다 다시 셀을 탭하고, 때, 우리는 셀이 도청 한을 전달하고 수 있도록 우리는 우리의 모든 셀이 동일한 이벤트 핸들러를 다시 사용할 수 있습니다. 다시 말하지만,이 iOS를 나에게하고있다 일입니다. 또 다른 성가신 팝업을 표시하자 그 단순히 뭔가 일을 선택한 말한다 행 개체가 될 것입니다. 내가 이걸 실행하면,이 멋진 테이블보기를 가졌어요 이러한 과일 각각에 대해 하나의 행으로, 그리고 만약 내가 하나를 누르고 그것은 무슨 일이 있었는지 말해줍니다. 이해가가? 가 앱의 약간 더 복잡한 구축, 당신은 토마토를 따 클릭만큼입니다. storyboarding에 대한 좋은 부분 그것은 단지, 개별적으로 우리가 디자인 화면을 도움이 안는데 또한, 우리는 우리의 전체 응용 프로그램을 함께 묶어 도와주지 우리가 건물이 될 것 마지막 응용 프로그램이 좋은 스포츠 뉴스 리더입니다 그리고 이제 여러 화면을 가지고거야, 그래서 사실은 나타낼 수 스토리 보드에서 이러한 여러 화면의 각, 그래서 축소하고 높은 수준에서 내 응용 프로그램을 볼 수 있습니다. 내 스토리 보드의 새로운 요소 내부를 만들려면 이 인터페이스 빌더의 내부 정말 간단합니다. 내가이에 다른 화면을 추가하려는 경우, 예를 들어, 제가 처음 애플을 너무나 사랑하는 핀치 줌으로 축소 할 수 있습니다 아래로 여기 당신이 버튼을 검색하기 전에 그리고 버튼을 드래그 앤 드롭 나는 새로운 화면을 만들려면 사실 난 단지 드래그 앤 드롭 할 수 있습니다 전체 뷰 컨트롤러, 내가이를 선택하면,, 여기에 차를 세우고 이봐, 거기 다른 화면이고, 그래서 지금 같은 스토리 보드 파일을 사용 내 응용 프로그램의 내부 화면을 모두 할 수 있습니다, 나는 축소 할 수 있습니다 하고 상호 작용하는 방식을 참조하십시오. 이 아직 상호 작용하지 않습니다. 이 두 화면이 상호 작용하는 방법은 관계를 정의합니다. 당신은 기본적으로, 당신이 버튼을 누르면이 화면을 말할 수 난 당신이 새로운 화면으로 슬라이드하고 싶습니다. 즉, 관계의 종류가  첫 번째 화면과 두 번째 화면. 당신은 기본적으로 저 버튼에서 두 번째 화면에 화살표를해야합니다 내가 가고 싶은 곳이 버튼을 누르면는 걸 말하고. 우리는 클릭하여 해당 콘센트를 정의하기 위해 드래그 제어 것처럼 우리는 이러한 segues을 정의하기 위해 같은 일을 할 겁니다. 우리는 그 일에 대한 예를보고, 우리가 실제로 전환하기 전에합니다 한 화면에서 다른 iOS를이 메소드를 호출 할 수있을만큼 좋다 prepareForSegue라고, 우리는 시작할 수는 곳이에요 한 응용 프로그램에서 다른 데이터를 전송. 예에서 우리가 볼 수있어하는 것은 기본적으로 우리에게 수 리그와 부서에서 야구 팀을 필터링 할 수 있습니다. 제가 리그를 선택하면 예를 들어, 내가 전환 원하는 나는 부서의 모든을 표시 할 수 있습니다 제 다음 화면으로 그 리그 또는 모든 다른 팀 인치 내가 무슨 팀이 표시되어야합니다 해당 화면으로 전송해야합니다. 여기서이 방법을 활용거야 그런 짓을합니다. 마지막으로, iOS를에 그냥 무작위로 가리 킵니다. 당신은 데이터를 저장하려는 경우 코어 데이터라는이 할 일이있어 이는 실제로 작업을 복잡 종류입니다. 당신은 또한 데이터를 저장하는 데 SQL을 사용할 수 있습니다 이는 다시, 작업을 더 복잡 측면에 좋은하지만 kind으로되어 있습니다 하지만 iOS를도, 재산 목록이라고하는 정말 멋진 일을 지원합니다 및 속성 목록은 키 값 쌍을 나타내는 파일입니다. 당신은 키의 목록을 정의하고이 키가 배열 될 것입니다 말한다. 이 키는 기본적으로 당신이 할 수있는 일을 문자열 수있을거야,되고 JSON에 당신은 속성 목록 안에서 할 수있는 그래서이 정말 잘 우리는 일부 데이터와 함께 작업 할 수 있습니다. 예를 들어, 내가 만든 것이이 Teams.plist 있습니다. 나는 새 plist 파일을 만들어, 내가 드릴 다운 할 수 있습니다. 이 사전이며,이 사전이며, 이것들은, 문자열 등이 JSON 문서의 멋진 그래픽으로 표현한 것입니다 또는 키 값 쌍의 단지 세트 그래서이 내 응용 프로그램의 내부 작업을 할 거라고 데이터입니다. 의 처음 여기 와서 보자. 우리는 지금 더 많은 파일을 갖고 있습니다. 그러나의 처음 스토리 보드에 여기에 대해 얘기해 보도록하겠습니다. 스토리 보드 - 여기 경우 확대 할 수 있습니다 아웃 - 우리는 지금이 내 응용 프로그램의 흐름 것을 볼 수 있습니다. 처음이 화면에 시작 겠어. 난이 화면으로 드릴 다운거야 그리고이 화면으로 드릴 다운거야, 우리는 여기서 볼 수 I 가지 경우 우리가이 화살표가 여기에서 여기로 이동 한 주위에 다음 중 하나를, 이동 나는 조금 확대하면 내가 그 화살표를 정의하는 방법은했습니다 그리고이 뷰 컨트롤러에 와서 경우, 여기에는 셀, 그리고 당신이 셀을 터치 할 때 그런 말을 할 당신이 다른 화면으로 슬라이드하고 싶습니다. 나는 단순히 컨트롤을 누른 상태에서 할 수 있습니다 조금 위에 스크롤, 컨트롤을 누른 상태에서이 셀을 통해 끌어 가자. 그리고 여기에 우리는 당신이 사용하려는 전환 건지 말? 당신은 푸시라고 부르지 슬라이드 가지를 사용 하시겠습니까? 당신은 바닥에서 밀어 하시겠습니까? 그는 모달라고. 그리고 내가 한 번이 중 하나를 클릭, 그것은 저를 위해이 화살표를 그릴거야 그리고 내가 사실은 그래픽이 버튼을 누를 때 어떤 일이 벌어지는 지 처리 한 것을 의미합니다. 사실은 한 화면에서 다음 하나에 미끄러 할 코드를 작성 없습니다. 나는 인터페이스 빌더의 시각에서 정의. 내가이 화살표를 클릭하면, 우리는이 일 이름을 준 것을 볼 수 있습니다. 나는 그것을 showDivisions라고,이 내가 아는 수 있다는 것입니다 무엇 전환에 대해 발생하는 것입니다 그리고 왜 잠시만에서 우리는 볼 수 있습니다. 그래서 내가 내 응용 프로그램에서 다른 화면을 유선 한 방법입니다. 이 버튼 예를 들어, 대신 테이블보기이라면, 나는 다음 화면으로 드래그 버튼을 클릭을 통제 할 수 그리고 내가 탐색 그​​렇게 할 수있는 방법입니다. 정말 빠르게, 우리는 MasterViewController에 올 경우, 다시 한 번, 우리는 단순히 물건의 목록을 정의 할거야 그는 테이블보기에 표시됩니다. 여기 내가 그 plist 파일을 먹고 싶어 말은 그리고 당신은, 사전에을로드하려면 그리고 일단 그 사전을 가지고, 난 다시는 그 같은 질문에 대답 할거야. 다음 섹션의 수입니다. 하나는 하나의 모든 리그에 대한 행, 각 셀의 텍스트가 등등 첫 번째, 첫 번째 리그 두 번째 리그, 그리고 중 하나가 될 것입니다. 마지막으로, 우리가 방금 prepareForSegue라고 본이 방법을 사용하는거야 그리고 이건 나 클릭하면 해고 할거야 방법입니다 이러한 행 중 하나에 따라서 그 전환을 활성화 나는 화살표를 설정 한. 이것은 내가 여러 할 수 있습니다 답니다 한 화면에서 다른 관계. I 2 버튼이 있으며 각 버튼을 다른 화면으로 이동하는 경우 나는 각 버튼에 대해 2 segues, 1을 가지고 간다. 그러나이 prepareForSegue는 재사용 할 것, 다시입니다 다른 관계 각각에 대해, 그래서 내가 방법을해야한다는 것을 의미합니다 당신이 첫 번째 버튼을 누르거나 두 번째 버튼을 누르면 식별. 그 거랑 이거 랑에게 이름이 showDivisions을 주신 걸 기억하세요 그건 내가 이제이 활성화 된 걸로 반복하는 거죠 것을 알고 방법은 다음과 같습니다. 내가 원하는 건 내가 말하고 싶어요 내가 방금 공격 무엇을 할 수 있는지 알아내는 원 그리고 그렇게를 얻을, 내가 선택한 행에 대한 indexPath를 원하는 말을 할 수 방금 클릭 한 위치를 indexPath 기억은 말한다 그리고 난 내가 어디로 파악하고자하고 싶은 말은. 이 destinationViewController, 그 거랑 이거 랑 속성입니다. 즉, 내가 갈거야 화면입니다 그래서 내가 갈거야 화면이 DivisionsViewController이라고 알고 나는 그 클래스를 만들어 있기 때문에 그래서 지금은 d.divisions 말한다면 이제 나는 떠나 렵니다 뷰 컨트롤러의 속성을 설정거야. 이건 내가 다른 화면으로 한 화면에서 데이터를 보낼거야 방법입니다. 그냥이 DivisionsViewController보고 여기서 볼 수. H 파일에 , 거기 부동산 부문이 있으며, 그건 내가 기본적으로 채우지 있는거 잖아 그래서 내가에 해당하는 부서를 표시 것만 알고 방법 제가 클릭하고, 다시 그 리그 실제 테이블보기는 사람들을 대답 꽤 많이 동일한 모양 세 가지 간단한 질문에뿐만 아니라 식별 당신이 다음 화면으로 이동하면 어떻게됩니까. 여기에 다른 것들 그냥 몇. 여기에서 상단에 나타날 것보다는 # 포함 말하고 지금은 # 가져 말하는거야. 이건 그냥 오브젝티브-C 것입니다. 가져 오기, 기본적으로 포함의 보이는데 버전입니다 그리고 예를 들어, 우리는이 클래스가 무엇인지 알 필요가 그래서 난 그냥 DivisionsViewController 말을 할 수 없습니다. 우리는 우리의. C 파일의 standardio.c 내부 해시 태그하지 않은 경우 컴파일러는 printf 아무 생각 없었어요. 마찬가지로, 내가 DivisionsViewController을 가져 오지 않는 경우 컴파일러는 정말 DivisionsViewController이 뭔지는 전혀 감이 없습니다. 그냥 다른. m 파일의 내부는 가져 오기가 있는지 확인해야합니다 해당. h 파일 그래서 컴파일러가 무슨 일이 일어나고 있는지 알고. 마지막으로, 어떻게 애플은 궁극적으로 웹보기를 사용하여 일부 데이터를 표시합니다 않습니다 그래서 웹보기는 삽입 할 수있는 개체입니다 앱 내부에 약간의 웹 브라우저. 당신이해야 할 모든 귀하의 웹 브라우저에 URL을 제공 is 그래서, mlb.mlb.com에 가고 싶어요 이, 난 각 팀의 홈 페이지에 액세스 할 수있는 방법입니다 그리고이 URL에 전달하여 , 웹보기 날 위해를 표시 할 수 있습니다, 그리고 주변 탐색 할 수 있습니다 그리고 시뮬레이터는 하나 사용하고 있습니다. 이제이 내 plist에서 왔어. 내가이를 클릭하면이 또한 내 plist에서 온,이 미끄러지는 처리했습니다 그 segues을 정의하여. 난 이걸 클릭하고 하나 이상의 지금 여긴 정말 그냥 그렇게 내 UIWebView입니다 여기 난 그냥 삽입하는 URL의 웹 사이트가 ... 나는 미친 짓을 처리 할 필요가 없습니다 않았다. 이 웹 페이지를 표시하는 방법입니다. 여기에 뒤로 버튼과 같은 상황이 또 나에게 부여됩니다 완전히 무료로 나는 segues를 사용하여 이러한 관계를 정의 때문입니다. 질문? 그래. [학생] 그래서 당신은 alloc을 사용하는 경우, 당신은 무료로 아무 것도 할 필요가 없어? 정확히, 당신 alloc 및 초기화 호출 할 때 당신은 그것을 확보 할 필요가 없습니다. IOS 당신을 위해 모든 걸 처리 할 것이다. 멋진 일이야, 당신은 어떤 규칙을 위반하지. 그래. 당신은 화면에 맞게 수 많은 팀을 포함했다 [학생] 경우 이 자동으로 추가 할 필요가 뭔가를 스크롤 옵션을, 아니면까요? 내가 더 팀이 있다면 바로, 예를 들어, 자동으로 처리하는 저 스크롤, 모든 성능 문제 큰 테이블과 또한 나에게 완전히 처리됩니다. 다른 질문? 이 코드의 모든 게시 할 예정이다. 우리는 가지, 더 작은 세부 사항 조금 넘는 glossed 하지만 같은 일이 웹보기에 몇 가지 속성을 설정 당신이 애플의 문서를 검색하여 얻을 수있는 것들이며, 정말입니다, 정말 잘 배치. 그들은 샘플 응용 프로그램이 많이 있고 예를 들어 용도가 다른 API의, 그래서 확실히 할 수 있다면 사람들을 정독. 그냥 몇 가지 유용한 링크가 살펴 할 수 있습니다. 다음은 몇 가지 유용한 문서 가이드입니다. URL은 거대한 있으므로, 그들은 단축하고 있습니다. 첫 번째 하나는 문서의 전체 라이브러리입니다. 약간의 검색 바는 입력 버튼을 시작하면,이 당신에게 당신이 버튼을 사용하여 수행 할 수있는 모든 것들에 대한 모든 정보를 제공 시작합니다. 나는 또한 테이블보기 프로그래밍 가이드를 포함 시켰습니다. 그것보다 더욱 더 자세히 테이블 전망을 처리 동적 셀 또는 편집 셀을 추가하거나 제거 같은 일을하는 방법. 어떻게 그런 일을 수행하는 방법을 보여줍니다 애플의 샘플 응용 프로그램이 많이가 있어요 마지막으로, 마지막 하나는 휴먼 인터페이스 가이드 라인입니다 이 방법은 기본적으로 UI 구성 요소의 일부 토론입니다 등 4 픽셀 4 픽셀입니다 버튼을하지 않습니다. 그거 괜찮은 생각이고, 애플은 당신이하고자하는 것들 좋은 디자인을 장려해야합니다. 마지막으로 질문 우리가 완료되기 전에? 그래, 확실히 토론에 특별한 라벨을 갖게 돼 - 우린 해 주시기 바랍니다. 우리는 iOS를 하​​나해야하므로 분명히을 활용 해 주시기 바랍니다. 당신은 프로젝트에서 친구들과 함께 작업 할 경우 또는 일부 임의의 iOS를 품을 알아내는 데 도움이 저를 이메일을 보내 주시기하고, 확실히 모든 코드를 온라인 인해를 정독 이 시간에 관심을 우리는 가지 더 이상 glossed 사물의 미세한 결 세부 사항. 그러나 그렇지 않으면, 그럼 잘하여 iOS를 프로젝트에 행운, 그리고 우리가 희망 앱 스토어에 앱의 큰 유입. [CS50.TV]