質問の本を 2 冊とも購入したので、言語と Cocoa フレームワークを学ぶ手っ取り早い方法として、Mac OS X 用の Cocoa プログラミングをお勧めします。これはおそらく、Cocoa で実際のアプリケーションの作成を開始するための最速の方法です。強くお勧めします。Objective-C 2.0 でのプログラミングは優れた参考書ですが、C を既に知っている場合は、他の本から習得できないことを教えてくれることはあまりありません。ただし、Objective-C のすべての予約済みキーワードのリストが必要な場合は、この本を参照してください。
すべてのユーザー インターフェイスはプログラムで生成できますが、XCode に付属の Interface Builder を使用してユーザー インターフェイスをレイアウトする方がはるかに簡単です。コードが大幅に減ります。バインディングを使用すると、インターフェイスのレイアウトに直接関係のないコードを削除することもできます。詳細は Cocoa Programming for Mac OS X book にあります。
私が Java に欠けている大きなものの 1 つは、コレクション API です。Cocoa では、NSSet、NSArray、および NSDictionary を取得するだけで、Comparable インターフェイスに類似するものはありません。これらのクラスも不変ですが、NSMutableArray などの可変バージョンがあります。
実際、Objective-C 2.0 のガベージ コレクションで遊んだことはありません。Objective-C の以前のバージョンでは、メモリ管理は、retain、release、および autorelease メソッドによって処理されていました。オブジェクトは保持カウント 1 で作成されました。保持するとカウントが増加し、解放すると減少します。オブジェクトの自動解放はもう少し複雑です。繰り返しますが、Cocoa プログラミングの本でよく説明されています。ガベージ コレクションはオプションであり、有効になっている場合、retain、release、および autorelease メソッドは何もしません。ただし、他のユーザーが使用するライブラリまたはフレームワークを作成している場合は、ガベージ コレクションがオフになっているかのようにプログラムする必要があります。そうすれば、ガベージ コレクションがオンになっているかどうかに関係なく、アプリケーションでそれを使用できます。
Web リソースに関しては、http://cocoadevcentral.com/は初心者向けのチュートリアルがある素晴らしいサイトです。http://www.cocoadev.com/の CocoaDev Wiki には、多くのトピックに関する詳細な情報が含まれており、通常、cocoa-dev メーリング リストhttp://lists.apple.com/で、いくつかの有用な情報や人々を見つけることができます。mailman/listinfo/cocoa-dev
iPhone の開発は少し異なり、詳細は NDA によって制限されています。ただし、Apple の承認を得て iPhone 開発者センターへのアクセスを取得した場合、Apple は相違点をまとめた優れたビデオ概要をいくつか提供しています。このビデオでは、Mac OS X から iPhone OS X プログラミングに移行するために必要なドキュメントを紹介しています。