まず、少し背景。私は.Net開発者(C#)であり、Web開発とデスクトップアプリケーションの両方で5年以上の経験があります。私はしばらくの間、iPhoneの開発を検討したいと思っていましたが、何らかの理由で常に別の側面から見逃されていました。ようやく潜在的なプロジェクトが地平線上にあり、このことを学ぶ前に、Steamをフル稼働させます。
私の質問はこれです。私は学生時代からC/C++プログラミングを行っていません。それ以来、管理された土地に住んでいます。 iOS開発者として成功するために必要な知識はどれくらいありますか?明らかに、メモリ管理は私が意識しなければならないものです(ただし、iOS 5では、ARCと呼ばれるものがあり、私の生活をより簡単にするはずです)。私はC APIについて話しているだけではありません(たとえば、数値の罪を取得するためにsin()関数を呼び出します)。それがGoogleの目的です。私は平均的なC#開発者が知らない基本的なC/C++イディオムについて話している。
心配しないでください。関数呼び出しを記述し、算術式を理解して記述し、ポインターを処理するのに十分なCを知っている場合は、おそらく問題ありません。もちろん、Objective-Cを学習する必要はありますが、作成するコードの多くは、従来のCよりもObjective-Cになります。Objective-Cスタイルに慣れ、Cocoa Touchを学習すると、さらに多くのことを消費します。 Cをブラッシュアップするよりもあなたの時間の.
私は通常、ゼロから始めてObjective-Cに飛び込む前にCを学ぶように言っています。私はそのアドバイスを受け入れます。Cを学ぶことで、Objective-Cで効果的に作業するために必要な基本的な知識が身に付きます。関数とは何か、ループや条件付きステートメントなどの制御構造の使用方法、さまざまな基本データ型の仕組み、構造体とは何かなどを知る必要があります。また、Objective-CではすべてのCが公平なゲームであるため、Cが多ければ多いほど、実行する可能性のあるコードを理解する準備ができます。つまり、Objective-Cでは多くのタスクが異なる方法で実行されるため、標準のCイディオムは必ずしも標準のObjective-Cイディオムであるとは限りません。 NSStringとNSArrayは、Cスタイルの配列の代わりになります。ポインターは至る所にありますが、主にオブジェクトを参照するために使用されます。ポインター演算はあまり頻繁には行われません。メモリを直接割り当てる代わりに、オブジェクトを作成します。
同じことがC++にも当てはまります... Objective-Cでうまく機能するためにC++をあまり必要としません。将来のある時点で、既存のC++コードをアプリに統合するためにC++の知識を増やす必要があるかもしれません。その時点で、学習に時間を費やす必要があるかもしれませんが、C++の知識の欠如を止めないでください。 iOSプログラミングを試してみませんか。
完全な答えではありませんが、Objective-Cを学習する場合は、このPDFを確認する必要があります。
サンプルコードや例を見るのではなく、言語を学ぶために読みたい場合は、本当に簡単に読むことができます。 OOPを理解している限り、Obj-Cを手に入れるのはスムーズです。iPhone開発を学ぶことについて私を本当に後回しにしているのは、別の話であるXcodeの使用です。 ...
依存します。
プログラミング言語のサブセット(「良い部分」と呼ばれることもあります)は、目標がそのサブセットの限界を押し上げなければ、通常はうまく機能します。
シンプルなUIの要素(Webアプリで実行できるもの)を実行したい場合は、CocoaとFoundationのデータ型を使用しますandバグのないコードを記述します。 Objective Cの下のCのほとんど.
ただし、iOSのオーディオ、ビデオ、画像(など)の処理または分析を実行する場合、使用する可能性のあるAPIと参照サンプルコードはほとんどCで記述されており、Cの慣用的です。
しかし、Objective CはCの厳密なスーパーセットであるため、タイプミスやバグは言語環境のどのレベルでも現れる可能性があります。コードにバグがある場合、クラッシュを分析してデバッグするために、Cポインター、データ型、およびヒープレベルの詳細を知る必要がある場合があります。 Objective Cは「管理」されていないため、記憶または目的のいずれかで、または完全な事故として、節くれだった混乱を作成できます。