10

かなり経験豊富な PHP 開発者であり、C のかなりの知識 (父の NEC マイクロコントローラー 16 個を使用した分散コンピューティングの実験を書いた) があるため、Objective-C と Cocoa に移行し、最終的に Mac の統合を目指したいと考えています。 / PHP プロジェクトの一部を含む iPhone アプリ。

Arron Hiilegass 著の「Cocoa Programming For Mac OS X」という本を読んでいて、少しイライラしています。私は例を実行することができますが、彼はクラスをそのように使用している理由を正確に説明していません(たとえば、int または double の代わりに NSNumber)。

Objective-C を最初に学習するための良い本を探しています。私の質問は、良い本は何ですか? 「Objective-C 2.0 でのプログラミング」を見ていますが、かなり良さそうです。そこからどこへ行くの?その後、Cocoa の本から再開する必要があると考えています。

また、PHP から Objective-C への移行に役立つインターネット上のリソースはありますか? PHP は緩やかに型付けされたスクリプト言語であることを知っているため、違いがあります。Obj-C と Cocoa では意味をなさないことがいくつかあります。整数を NSMutableArray に入れられないのはなぜですか?

いずれかの方法。助けてくれてありがとう!(私はまだ 14 歳なので、Q を間違えた場合はご容赦ください。)

4

7 に答える 7

8

私は「Objective-C 2.0 でのプログラミング」を自分で行ったところですが、かなり良いです。特に C を使用したことがない場合 (または、私のように C を忘れた場合) には、お勧めします。

ただし、Apple には本当に優れたドキュメントがあります。オンラインで読んでも構わないという方は、Cocoa の入門ページから始めてください。

于 2009-05-02T00:07:00.227 に答える
7

私は例を実行することができますが、彼はクラスをそのように使用している理由を正確に説明していません (たとえば、int または double の代わりに NSNumber)...

Obj-C と Cocoa では意味をなさないことがいくつかあります。整数を NSMutableArray に入れられないのはなぜですか?

NSNumberintは、またはのようなプリミティブ型よりもはるかに便利な型ですdouble。これは、Cocoa でプログラミングするときに遭遇する他のオブジェクトと組み合わせて使用​​されることが多いためです。

たとえば、数値を値としてサイズ変更可能な配列 ( などNSMutableArray) または連想配列 ( のインスタンスNSDictionary) にパッケージ化するには、数値プリミティブ ( 、 など) をシリアライズ可能またはアーカイブ可能なオブジェクトに変換する必要intdoubleあります。 — NSNumber.

プリミティブは とは異なり、シリアル化できませんNSNumber。プリミティブは、Apple がユーザーに提供するために懸命に取り組んできた「Core Foundation」型の基本セット ( NSNumberNSArrayNSStringなど) に含まれていないためです。

また、 を使用NSNumberすることで、多くの便利なメソッドを無料で利用できます。たとえば、 と入力するだけで、数値を文字列にすばやく変換できます[myNumber stringValue]

または、何かの価格 (「$1.23」) として扱っている場合はNSNumber、 を適用しNSNumberFormatterて、数値に対する操作が期待どおりの形式の結果を返すようにすることができます (たとえば、2 つの価格値を追加した場合、代わりに通貨値を取得することが期待されます)。

intordouble変数を使用できない、または使用すべきではないと言っているわけではありません。NSNumberしかし、多くの場合、より少ないコードを記述し、「無料」で多くの機能を利用できるという点で、 の方が優れたオプションであることがわかります。

于 2009-05-02T01:04:04.740 に答える
5

私の経験では、インターネット ドキュメントは Obj-C と CocoaTouch の学習に十分役立つことがわかりました。私の進行は次のようになりました:

1) iTunes で Apple Dev ビデオをご覧ください (無料です)。

2)はじめに 、iPhone アプリケーション プログラミング ガイドをお読みください。

3) Obj-C で OOPを読み取ります。

4) 詳細: Cocoa FundamentalsObjective-C PrimerCocoa Practices .

5) 簡単なチュートリアルを行います。

IMO: 必要な情報はすべて Apple Dev:iPhone サイトにあります。お金を貯めて、本を買わないでください。ガイドまたはチュートリアルのいずれかで何かが行われた「理由」が理解できない場合は、Google の他のソースとすぐに相互参照してください。

ここでの学習曲線はかなり大きいことに留意する必要があります。それは私のためであり、私は大学で毎日このようなことを勉強しています. だから、それに固執し、賢い方法で読んでください(あなたが知っているものをざっと読んでください)。私が自分自身で見ているのは、iPhone がどのように動作し、データの流れを知っていれば、そのプログラミングは主に構文の問題であるということです。

PHP は Objective-C とは大きく異なります。さらに、インターネットのコンテキストで PHP でプログラミングの問題を解決する方法は、iPhone のコンテキストで Obj-C でプログラミングの問題を解決する方法とは大きく異なります。このため、学生/学習者として、新しい視点から iPhone に取り組みたいと考えています。時間をかけて、オブジェクト指向プログラミングとベスト プラクティスに集中してください。これは、今後何年にもわたってあなたを祝福します。

-バッファロー

于 2009-05-03T18:11:13.013 に答える
1

個人的には、最初にhttp://developer.apple.com/library/mac/navigation/にある Apple リファレンスから Objective-C を学び、そこからココアに進みます。

于 2010-10-10T15:21:17.687 に答える
1

また、あなたの質問に答えるには:

Objective-C は、C の拡張機能として構築されたオブジェクト指向言語です。

そのため、プリミティブ型 (int や double など) とオブジェクトの両方を提供します。

NSNumber は、数値とその数値に対する多数の操作 (メソッド) を表す Objective-C クラスです。数値プリミティブ型よりも NSNumber を使用する利点は、オブジェクト指向の方法で使用できることです (メッセージを送信したり、"プロトコル" で機能を拡張したり、継承したり、渡すことができます)。オブジェクトを期待するメソッド内など)。

NSMutableArray に関して言えば、これは配列のような機能を提供するクラスです。これは、Objective-C オブジェクト タイプ (NSObject タイプ オブジェクトおよびそれらを継承するオブジェクトのコンテナ) で動作するように設計されており、これが整数を含めることができない理由です。ただし、整数を表す目的の C クラスである NSInteger を含めることができます。

于 2009-05-02T00:40:13.703 に答える
0

どこから来たとしても、私のお気に入りの Objective-C チュートリアルは、iOS プログラミングに関するスタンフォード大学の iTunesU コースです。教授は、他の本やオンライン チュートリアルから物事を実際に視野に入れています。

于 2012-03-03T15:32:25.140 に答える
0

私は同様の船に乗っていました (PHP は Objective-C に移行しています) が、最良のプロセスはプロジェクトに飛び込むことであることがわかりました。ヒルレガスの本も読みましたが、良いスタートでしたが、言語を理解する唯一の方法は、明確な目的を持って混乱することです.

痛いけど効きます。コーヒー、API、クリネックス。

編集: あなたの投稿の最後の部分を読んだところ、あなたが 14 歳だったことがわかりました。おそらく、コーヒーをコーラに切り替えてください:)

于 2009-05-02T08:26:55.033 に答える