Objective-C / iPhone開発に必要なC / C ++の知識はどのくらいですか?


8

まず、少し背景。私は.Net開発者(C#)であり、Web開発とデスクトップアプリケーションの両方で5年以上の経験があります。私はしばらくの間、iPhoneの開発を調査したいと思っていましたが、何らかの理由で常に別の側面から見逃されていました。ようやく潜在的なプロジェクトが地平線上にあり、今、このことを学ぶために全力で取り組んでいます。

私の質問はこれです。私は学生時代からC / C ++プログラミングを行っていません。それ以来、管理された土地に住んでいます。iOS開発者として成功するために必要な知識はどれくらいありますか?明らかに、メモリ管理は私が意識しなければならないものです(ただし、iOS 5では、ARCと呼ばれるものがあり、私の生活をより簡単にするはずです)。私はC APIについて話しているだけではありません(たとえば、数値の罪を取得するためにsin()関数を呼び出します)。それがGoogleの目的です。私は、平均的なC#開発者が知らない基本的なC / C ++イディオムについて話しています。


2
なぜこれがC ++と関係があるのですか?
sdg

私が読んだことから、iOS開発者が対話する多くのAPIがC ++で書かれています。それは本当ではないですか?
BFree、

CまたはObjective-C。C ++は必要ありません。
Terry Wilcox、

@BFreeでは、iOS開発にC ++を使用する必要はほとんどありません。OpenCVやIrrlichtのような特定のライブラリを必要とすることを行わない限り、ほとんどObjective-Cを使用します。Cocoa TouchはObjective-Cで書かれており、主に使用するAppleの一連のフレームワークです。
右折

回答:


7

心配しないでください。関数呼び出しを記述し、算術式を理解して記述し、ポインターを処理するのに十分な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プログラミングであなたの手を試みることから。


1

完全な答えではありませんが、Objective-Cを学習する場合は、このPDFを確認する必要があります。

サンプルコードや例を見るのではなく、言語を学ぶために読みたい場合は、とても簡単に読むことができます。OOPを理解している限り、Obj-Cを拾うのはスムーズです。iPhone開発の学習で本当に私を後悔させているのは、別の話であるXcodeの使用です...

アップルObj-C


0

依存します。

プログラミング言語のサブセット(「良い部分」と呼ばれることもあります)は、目標がそのサブセットの限界を押し上げなければ、通常はうまく機能します。

あなたは、単純なUIのもの(あなたがウェブアプリで何ができるもの)、ココアと基礎データタイプとスティックをしたい、場合あなたはバグのないコードを書く、あなたはおそらくObjective Cの下にCをほとんど知ることによって得ることができます。

ただし、iOSのオーディオ、ビデオ、画像(など)の処理または分析を実行する場合、使用する可能性のあるAPIと参照サンプルコードはほとんどCで記述されており、Cの慣用的です。

しかし、Objective CはCの厳密なスーパーセットであるため、タイプミスやバグは言語環境のどのレベルでも現れる可能性があります。コードにバグがある場合、クラッシュを分析してデバッグするために、Cポインター、データ型、ヒープレベルの詳細を知る必要がある場合があります。Objective Cは「管理」されていないため、記憶または目的のいずれかで、または完全な事故として、節くれだった混乱を作成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.