문제

경험이 풍부한 PHP 개발자이자 C에 대한 공정한 지식 (아빠의 NEC 마이크로 컨트롤러 16 개를 가진 분산 컴퓨팅 실험을 작성 함)이기 때문에 결국 Mac을 통합하는 것을 목표로 객관적인 C와 Cocoa로 이동하고 싶습니다. 내 PHP 프로젝트 중 일부가있는 / iPhone 앱.

Arron Hiilegass의 "Mac OS X를위한 코코아 프로그래밍"책을 살펴보면 조금 좌절하고 있습니다. 나는 예제를 할 수 있지만 정확히 설명하지 않습니다. 그는 그런 식으로 수업을 사용하고 있습니다 (예 : int 또는 double 대신 nsnumber).

나는 Lean Objective-C를 먼저하기위한 좋은 책/책을 찾고 있습니다. 내 질문은 좋은 책이 무엇입니까? "Objective-C 2.0의 프로그래밍"을보고 있는데 꽤 괜찮아 보입니다. 거기에서 어디로 갈까요? 그런 다음 코코아 책에서 다시 시작해야한다고 생각합니다.

또한 인터넷에 PHP에서 Objective-C 로의 전환에 도움이되는 리소스가 있습니까? PHP가 느슨하게 유형 된 스크립팅 언어라는 것을 알고 있으므로 차이가 있습니다. OBJ-C와 Cocoa로는 이해가되지 않는 것들이 있습니다. 왜 NSMutableArray에 정수를 넣을 수 없습니까?

어쨌든. 도와 주셔서 감사합니다! (저는 14 살 밖에되지 않으므로 Q에서 실수를 저지르면 쉽게 가십시오.)

도움이 되었습니까?

해결책

나는 방금 "Objective-C 2.0"의 프로그래밍을 겪었습니다. 특히 C를 사용한 적이 없다면 (또는 나처럼 잊어 버린 경우) 추천합니다.

그러나 Apple은 실제로 훌륭한 문서를 가지고 있습니다. 온라인으로 읽는 것이 마음에 들지 않으면 나는 그들의 코코아를 시작합니다 페이지.

다른 팁

나는 예제를 작업 할 수 있지만, 왜 그가 왜 그런 식으로 수업을 사용하고 있는지 정확히 설명하지 않습니다 (예 : int 대신 nsnumber) ...

OBJ-C와 Cocoa로는 이해가되지 않는 것들이 있습니다. 왜 NSMutableArray에 정수를 넣을 수 없습니까?

NSNumber 원시 유형보다 훨씬 유용한 유형입니다. int 또는 double, 그것은 종종 코코아에서 프로그램 할 때 실행되는 다른 물체와 함께 사용되므로 종종 사용됩니다.

예를 들어, 숫자를 값으로 값으로 포장하려면 (예 : NSMutableArray) 또는 연관 배열 (인스턴스 NSDictionary), 숫자 원시를 돌려야합니다 (int, double, a 직렬화 가능, 또는 보관 가능 객체 - an NSNumber.

원시는 AN과 달리 직렬화 할 수 없습니다 NSNumber, 프리미티브는 "핵심 기초"유형의 기본 세트에 있지 않기 때문에NSNumber, NSArray, NSString, Apple이 당신에게 이용할 수 있도록 열심히 노력했다.

또한 사용하여 NSNumber 또한 무료로 많은 보너스 편의 방법을 얻을 수 있습니다. 예를 들어 단순히 입력하여 숫자를 문자열로 빠르게 변환 할 수 있습니다. [myNumber stringValue].

또는 당신이 당신을 대하는 경우 NSNumber 무언가 ( "$ 1.23")의 가격으로 NSNumberFormatter 숫자의 운영이 예상되는 형식을 가진 결과를 제공하기 위해 (예 : 두 가지 가격 값을 추가하면 대가로 통화 값을 얻을 것으로 예상됩니다).

그것은 당신이 사용할 수 없거나 사용해서는 안된다고 말하는 것이 아닙니다. int 또는 double 변수. 그러나 많은 경우에, 당신은 찾을 수 있습니다 NSNumber 더 적은 코드를 작성하고 "무료"에 대한 많은 기능을 얻을 수 있다는 점에서 더 나은 옵션입니다.

내 경험상, 인터넷 문서가 OBJ-C와 Cocoatouch 학습에 충분히 도움이된다는 것을 알았습니다. 내 진보는 다음과 같이 갔다.

1) iTunes에서 Apple Dev 비디오를 시청하십시오 (무료).

2) 읽기 시작하기, iPhone 응용 프로그램 프로그래밍 안내서.

3) 읽기 obj-c에서 OOP.

4) 더 읽기 : 코코아 기초, 대상 C 프라이머, 코코아 연습.

5) 간단한 튜토리얼을 수행하십시오.

IMO : 필요한 모든 정보는 Apple Dev : iPhone 사이트에 있습니다. 돈을 저축하고 책을 사지 마십시오. "왜"가 가이드 나 튜토리얼 중 하나에서 수행 된 "이유"를 이해하지 못하면 Google의 다른 소스와 즉시 교차 참조하십시오.

당신은 그것을 명심해야합니다 학습 곡선 여기에 있습니다 꽤 큰. 그것은 나를위한 것이었고 나는 대학에서 매일 이런 것들을 공부하고 있습니다. 따라서, 그것을 고수하고 현명한 방식으로 읽으십시오 (당신이 알고있는 것들). 내가 나 자신에게 보는 것은 iPhone이 어떻게 작동하는지 이해하고 데이터의 흐름을 알고 있다면, 그것을위한 프로그래밍은 주로 구문 문제입니다.

PHP는 대상 C와 매우 다릅니다. 또한 인터넷의 맥락에서 PHP에서 프로그래밍 문제가 해결되는 방식은 iPhone의 맥락에서 프로그래밍 문제가 OBJ-C에서 해결되는 방식과는 매우 다릅니다. 이 때문에 새로운 관점에서 학생/학습자로서 iPhone에 접근하고자합니다. 시간을내어 객체 지향 프로그래밍 및 모범 사례에 집중하십시오. 이것은 앞으로 몇 년 동안 당신을 축복 할 것입니다.

-물소

또한 질문에 답하기 위해 :

Objective-C는 C 위에 확장으로 구축 된 객체 지향 언어입니다.

따라서 Primitive 유형 (int 및 double)과 물체를 모두 제공합니다.

NSNUMBER는 숫자와 해당 숫자에 대한 여러 작업을 나타내는 목표 C 클래스입니다 (메서드). 숫자 원시 유형에서 NSNumber를 사용하는 장점은 객체 지향적 인 방식으로 사용할 수 있다는 것입니다 (메시지를 보낼 수 있고 "프로토콜"으로 기능을 범위로 늘릴 수 있습니다. 객체 등을 기대하는 방법).

NSMutableARRAY의 경우 배열과 같은 기능을 제공하는 클래스입니다. 객체 C 객체 유형 (NSObject 유형 객체 및 객체의 컨테이너)와 함께 작동하도록 설계되었으며 이것이 정수를 포함 할 수없는 이유입니다. 그러나 정수를 나타내는 객관적인 C 클래스 인 nsinteger를 포함 할 수 있습니다.

나는 개인적으로 Apple 참조에서 Objective-C를 먼저 배우려고 노력할 것입니다. http://developer.apple.com/library/mac/navigation/ 그리고 거기에서 코코아로 계속.

나는 비슷한 보트 (PHP가 Objective-C로 이동)에 있었고 가장 좋은 과정은 프로젝트에 뛰어 들어가는 것임을 알았습니다. 나는 Hillegass Book도 겪었고 좋은 출발 이었지만 언어를 알 수있는 유일한 방법은 명확한 목표를 달성하는 것입니다.

고통 스럽지만 작동합니다. 커피, API 및 Kleenex.

편집 : 나는 당신의 게시물의 마지막 부분을 읽고 당신이 14 살인 것을 보았습니다.

내가 가장 좋아하는 Objective-C 튜토리얼은 어느 곳에서나 오는 경우 iOS 프로그래밍의 Stanford의 iTunesu 코스입니다. 교수는 실제로 다른 책과 온라인 튜토리얼의 관점에서 사물을 넣습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top