1 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:18:31 ] Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より) 前スレ pc11.2ch.net/test/read.cgi/tech/1106983092/ 前々スレ pc5.2ch.net/tech/kako/990/990574267.html
382 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:42:10 ] そもそも言語仕様の規格とかないんだから現存する「特定の実装の言語仕様」しか 語ることができないような… 議論そのものがナンセンスじゃね?
383 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 23:58:59 ] しようがねえな
384 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:01:56 ] ところでこの議論の先には何があるんだ?
385 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:20:13 ] >>381 多分そうなんだと思う。 別に今更、Obj-CとApple独自の実装を分けて考えろとは思わないけどさ、 >alloc、init、finalizeは、普通にObjective-C言語の一部として定義されてるメソッドです。 >逆に、valueForKeyはObjective-Cの一部として定義されていません。 >一緒にしてはいけません。 とか言われるとちょっと意地悪してみたくなるじゃない? 君こそ一緒にしてるじゃん?て。 あまつさえ、 >NSFastEnumerationは、それに関連して文法が拡張されてるぐらいだから、ObjC2.0の一部なんじゃない? >あと、インスタンスを生成するときは、[[MyClass alloc] init]ってやるって、決まってるし。これは、Cocoaだからじゃなくて、ObjCだからそういう仕様になってるんです。これらのメソッドは、Objectクラスにも定義されてるし。 なんて意味不明な事言い出す始末だし。 普通は規約が改定されたからそれにあわせてAppleはNSFastEnumerationを実装して対応した。 って考えるでしょ。 なんで、一部になっちゃうかな? 分けて考えるなら、徹底して分けて考えろって思う訳よ。 書いてるうちに、先書かれちゃった。 問題はそこなんだけどねw >382 ANSIかISOで管理してるって話も聞くんだけど、全く見当たらないんだな、これが。 developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/ これだって、Apple実装を例にしたObjective-Cのお勉強資料だしね。 >>384 [self release]; // 自身の解放?
386 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 08:01:32 ] alloc, initで生成と初期化を行うのはただの慣習であってObjCの仕様じゃない。 逆にfinalizeやFast Enumeration系はランタイム側で定義された仕様。
387 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 08:21:00 ] ほんとつまんない事にこだわる奴らだな。 タクシーのエンジンの構造や燃料の効率について、なんも知らなくったって、 運転手さんに行き先を言えば望んだ場所に連れて行ってくれるというのに。
388 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 08:30:09 ] いや、一応ここ専門板だし。俺はもう寝るけど。
389 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 08:56:01 ] >>388 というか、ISO / ECMA 規格がないのにどこまでが言語でどこからがライブラリかという話をしても仕方がないのでは。
390 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 09:12:05 ] 多分それでFAだろね それ以上はAppleがどう認識してるか調べるくらいが関の山かと
391 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 13:01:36 ] コンパイラが認知する部分は言語仕様 ランタイムが認知する部分はランタイム仕様 コンパイラやランタイムを変えなくても変えられる部分は慣習・規約
392 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 13:31:57 ] じゃあ、コンパイラが @"hogehoge" でNSStringオブジェクト定数を生成してるわけだから、 NSStringは言語仕様に含まれてるんだ。 NSCFStringだと主張するならNSCFStringもまた言語使用に組み込まれている。 で、まだ続けるの? もう不可分で良いじゃん。
393 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 14:09:41 ] そうだよ。java.lang.StringがJava言語、System.StringがC#と結びついているのと同じ。特別扱い。
394 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 14:22:09 ] 「@"hogehoge"がNSStringだ」というのは言語仕様 NSStringの具体的な中身はライブラリの仕様
395 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 14:23:47 ] じゃあ、コンパイラの不可思議な動作も言語仕様のうちだ。 @"hoge" "fuga" @"hogera"; が正しく連結されたりね。
396 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:01:25 ] >>391 Obj-C のどこからどこまでが言語仕様かという話をするために、 >コンパイラが認知する部分は言語仕様 というわけだけど、 「コンパイラが認知する部分」は「言語仕様」という定義をしてるのは誰?
397 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:05:08 ] >>394 >@"hogehoge"がNSStringだ」というのは言語仕様 そうだったのかー。じゃあ GNU実装の gcc -fconstant-string-class オプションでの 文字列リテラルクラスの変更は言語仕様違反ですね… -fconstant-string-classのデフォルトは NXConstantString だから変更しなくてもやっぱり 言語仕様違反ですか…GNUの実装はひどいですねー # その言語仕様とやらがどこに存在してるのか知らんけどw
398 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:27:08 ] >>397 それは間違いでしょ? だって、「コンパイラが認知する部分は言語仕様」とされている訳だから、 Apple拡張されていないgccのコンパイラが認知するものだって言語仕様だよ。 つまりObj-Cの言語仕様はコンパイラの数だけあるってことでしょ。
399 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:30:23 ] ほんとは実装依存って言うんだろうけど 皮肉に皮肉で返しあってgdgd
400 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:32:58 ] /ヽ /ヽ / ヽ / ヽ ______ / ヽ__/ ヽ | ____ / :::::::::::::::\ | | // \ :::::::::::::::| | | | ● ● ::::::::::::::| ・・・ | | .| :::::::::::::| | | | (__人__丿 .....:::::::::::::::::::/ | |____ ヽ .....:::::::::::::::::::::::< └___/ ̄ ̄ :::::::::::::::::::::::::| |\ | :::::::::::::::::::::::| \ \ \___ ::::::::::::::::::::::::|
401 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:44:38 ] >>398 >コンパイラの数 Obj-CのコンパイラってAppleのgcc,GNUのgccとPOCぐらいだろ
402 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 15:47:38 ] >>401 それに何の問題が?
403 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 16:44:53 ] しょうもない話題をいつまでひっぱってんだ
404 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 18:45:14 ] alloc と init がObjective-C 言語仕様に規定されているという人がいるからしようがない。 もしくは、 Objective-Cの言語仕様はそのコンパイラが規定すると言い張る人がいるからどうしようもない。 Objective-Cには公開された言語仕様が存在しない。 ってことをどうして認めようとはしないの? それとも僕はとんでもない勘違いをしていて、 これこれは言語仕様と断言している人たちは、 非公開な言語仕様を閲覧できる立場の人たちなの?
405 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 19:08:29 ] 標準規格がない言語には言語仕様がないと?
406 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:30:53 ] さすがにもう飽きてきた。w >405 じゃあそれ、これこれは言語仕様です。これこれは違います。 って自信満々に言ってる人に言っといて。 標準がないのにそんな自信たっぷりに言われてもねぇ、って。
407 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 21:23:01 ] 皆さん熱弁を振るってますが、 「どこからが美人でどこまでがブスか。」 という議論に近い不毛なものを感じますた。 以上、通りすがりの私の感想でした。
408 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:37:47 ] だよな どこからAPIの機能でどこから言語の規格が議論して何か意味あるのかね。 C++でもAPIがなけりゃ文字列処理もでない屑言語だが
409 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:45:04 ] >>405 > 標準規格がない言語には言語仕様がないと? そりゃ標準規格がない言語には、どこまでが標準言語仕様でどこからが標準ライブラリでどこからが独自ライブラリかの違いなんてないだろうよ アホ?
410 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:14:55 ] 標準ライブラリも含めて言語仕様でしょ NSObjectがなければ何もできないんだから
411 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:23:09 ] 「仕様」を「規約」と解釈する人と「実装の裏にある本質」と解釈する人が争ってる感じ
412 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 08:59:06 ] この流れは…iPhoneのお陰かな。
413 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:03:29 ] >>410 NS〜は「de fact」標準ライブラリです。
414 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:11:29 ] >>413 de facto ですよ正しい綴りは。
415 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:15:43 ] >>414 どうも。
416 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:04:21 ] >>410 objc/Objectじゃだめですか><
417 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:17:44 ] >>411 仕様は仕様でしょ? それがあって始めてApple方言とかGNU方言とか言える訳で。 一番近いのは、 developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_951_section_1.html これ。文書全体じゃなくてこの章だけね。 >>412 おれは茶化してるだけのCocoaがなかったら死ぬタイプの人間ですw
418 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:33:50 ] developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_950_section_1.html こっちもそうだった。 こっちはコンパイラのディレクティブのところにNSStringと明記されてる。 これが要求仕様なのかどうかは不明。
419 名前:デフォルトの名無しさん [2008/07/10(木) 17:48:03 ] アップルは、Objective-CとCocoaを別々に開発している。 当然、仕様も別々に存在している。 特に、Objective-Cに関しては、Darwinプロジェクトの中で開発されているのだから、どこまでがObjective-Cなのかは明確になっているんじゃないのか? Objective-Cの仕様に合わせてCocoaを作る事はできても、Cocoaの仕様に合わせてObjective-Cを作ることはできないのだから。
420 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 23:13:07 ] >>419 アップルにしてみればObjective-Cの言語仕様とCocoaライブラリの境界をはっきりさせなくても別に困りはしないでしょ。OpenDarwinも終わっちゃったし。 >Objective-Cの仕様に合わせてCocoaを作る事はできても、Cocoaの仕様に合わせてObjective-Cを作ることはできないのだから。 Objective-C文字列リテラル、メッセージの転送、例外処理、@synchronized、ObjC 2.0のプロパティ、高速列挙。Cocoaを前提とした機能はずいぶんと追加されてるよ。
421 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 23:27:38 ] >当然、仕様も別々に存在している。 その自信はどこから来るわけ? Apple 社員で社外秘の仕様をみられるというの? 社外秘の仕様があるばあいは社外の人には仕様はあることになるのないことになるの?
422 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:18:39 ] >>420 > アップルにしてみればObjective-Cの言語仕様とCocoaライブラリの境界をはっきりさせなくても別に困りはしないでしょ。 困ると思うよ。 「分割して統治せよ」って言葉聞いた事あるよね? 大規模なシステムを設計する場合は、全体が一枚岩のようになると、とても保守が面倒になるので、複数のコンポーネントに分割して管理するものなんだよ。 Cocoaだって、あえてAppKitとFoundationに分かれているのもそういった理由があるからだと思うよ。 NSStringがFoundation側で定義されていて、-[NSString drawAtPoint:withAttributes:]があえてAppKit側にカテゴリーを使って定義してあるのも、そういった理由があるからでしょう。 Objective-Cも同じようにCocoaから分割されていると思う。
423 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 00:48:59 ] Appleの場合、仕様はJobs(笑)ってのもあるから。 最近、GPGPUに興味を持ってるみたいだから、「Snow Leopard」公開後は新しい言語 「OpenCL(open computing language)」を使用するように仕様が変更されるかもしれない。
424 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 01:08:20 ] Rubyの仕様がまつもとひろゆきみたいなもんだね
425 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 02:25:22 ] Jobs本人がOpenCLについてなんか言及してるん?
426 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 02:26:24 ] >>422 システム全部大雑把でいいなんて書いてない。あくまで言語仕様とライブラリの境目の話。拡大解釈しないでおくれ。 >Objective-Cも同じようにCocoaから分割されていると思う。 文字列リテラルとかプロパティとか高速列挙とか、いろいろ挙げたのは無視? Objective-Cの権利は全部アップルが持ってるし、自社OSのためにコンパイラもランタイムも開発してるんだから、Cocoa前提の機能を言語仕様に含めたほうがアップルにとって楽なこともあるでしょ。
427 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 07:42:15 ] 文字リテラルもプロパティも高速列挙もCocoaなしで使えるし
428 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 09:37:12 ] >>423 >新しい言語 >新しい言語 >新しい言語 >新しい言語 >新しい言語 >新しい言語 >新しい言語 >新しい言語
429 名前:デフォルトの名無しさん [2008/07/11(金) 12:05:41 ] まずは自分でコンパイラ程度を作れる技術をつけてからじゃないか? 言語仕様がどうとか言う奴は、どうせ素人だろw
430 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 12:57:08 ] コンパイラなんて、誰でも作れる基礎技術じゃん。 大学生が授業でやるくらいのはなし。
431 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:15:29 ] OpenCLってObjective-Cから簡単に呼び出せるなら問題ないんじゃね? FFI(Foreign Function Interface)とか経由するのかな?
432 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:22:24 ] 今議論している内容を小学生1年生でも分かるように 説明しなさい。
433 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:35:54 ] >>432 人にモノを頼むときにはそれなりのw
434 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 21:41:24 ] >>432 つくえの上にりんごが一つあります。 さて、このりんごはなぜここにあるのでしょう。 1.りんご農家のおじさんがりんごを育てたから 2.お母さんがかってきたから 3.まさしくんがつくえの上においたから 4.言語仕様 5.苺も食べずにりんごとか素人だろw
435 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 00:46:40 ] >>434 私という自我がリンゴを個体としてのリンゴをそこに存在すると認識したからそこにあるのです。
436 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 01:21:47 ] >>434 という他者が「そこにりんごが一つある」と主張 しているだけだから、正確には>>435 は信用した上で認識「することにした」段階かと
437 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 16:26:01 ] みなさんは変態さんですか?
438 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 18:43:08 ] 多態です。
439 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 23:30:11 ] >>431 ttp://www.apple.com/pr/library/2008/06/09snowleopard.html >OpenCL is based on the C programming language and has been proposed as an open standard. ttp://en.wikipedia.org/wiki/OpenCL >The initial OpenCL implementation is reportedly built on LLVM and Clang compiler technology.[citation needed] 参考になりそうなのは、これくらい。。。
440 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 04:38:19 ] OpenCLはCUDAらしい。CgではなくCUDAベースだから見かけほどC言語には似てない気がする。
441 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:09:50 ] Cocoaラッパ待ち
442 名前:デフォルトの名無しさん [2008/07/15(火) 18:42:43 ] >>440 >OpenCLはCUDAらしい らしいという話はよくでるんだが ソースって見たことがないんだよな。
443 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 17:13:14 ] プログラム初心者がobjective-Cから入るのってマズい?
444 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 17:29:51 ] >>443 マズくはないけど資料は少ないから初心者にとっては最初の学習曲線が急勾配になってしまう。 JavaやC++で基本的なアルゴリズムやデザパタを学んだ方が資料が豊富だから楽に勉強できると思う。 ダイナミックな部分を勉強するにはSmalltalk(Squeak)が適している。あとRubyやPythonも。 そういったことを承知の上でどれで始めるのが良いかを選べばいいんじゃないかな。 あとは好みの問題。
445 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 17:30:36 ] >>443 あんまりまともなプログラムを書いた事のない俺が思う程度だけど、 他言語をちょっと囓っている+英語の情報も読んでいけるのならアリだと思う。 ただ、全く分からない人がいきなりObjective-Cからだと ・最近は増えてきたものの日本語の情報(Web&書籍)が少なめ。 ・AppleのドキュメントもC言語の基礎知識とかを前提にしている感あり。 この辺でちと大変かも。 基本的には意欲だと思う。逆に言えば意欲が弱いとJavaだろうがC言語だろうがPHPだろうが関係なくだめだと思う。 ベストな環境はリアルでもメールでも掲示板でもいいけど疑問に答えて教えてもらえるような人間がいると覚えは早いと思う。
446 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 17:40:36 ] >>444 サンクス 各言語の違いが全くわからないのでググって検討してみます C#よりC++の方がいいんですね >>445 サンクス 意欲・・・きっかけがそもそもiPhoneという厨な理由だからどこまでいけるか わかりませんが・・・ >AppleのドキュメントもC言語の基礎知識とかを前提にしている感あり やっぱりC関連から入った方がいいのかもしれませんね
447 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 17:51:48 ] >>446 そういう動機であれば最初はRuby on RailsとかでWebアプリを作成してiPhoneから利用すれば簡単だと思う。 そういう資料はネット上に沢山転がってるからググって見るといいよ。 ある程度プログラミングに自信が付いてからObjective-Cに移行すればスムーズに学習できそう。 こういう順番でやれば、サーバーサイドとクライアントサイドの両方の知識が得られる。 両方の視点でプログラミングできればiPhoneに負荷をかけないプログラムを作成するノウハウも見つけられると思う。
448 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 18:22:14 ] >>447 ありがとう。なんて親切なんだ(つД`)・゚・ Ruby on Railsを調べてみます
449 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 18:46:27 ] ObjCの前にCはやっといた方が良いけど、C++は覚えなくてOK. (C++専用のライブラリを使いたいのでもなければ) C#はiPhoneでの開発には全く不要。 iPhone用プログラムならまずWebアプリから作ってみるというのには賛成。 PHPでベタ書きか、Python + DjangoかRurby + Railsあたりがおすすめ。
450 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 18:58:24 ] >>449 dクス。感涙で前が見えない。゚(゚´Д`゚)゜。 うーむ、C++でもC#でもなく初代Cがいいのか・・・ iPhone用ゲームの開発が主目的なんですが、やはりWebアプリから学んでいったほうが いいんですかね?
451 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 19:21:49 ] 明確にiPhone開発がしたいならObjCから始めるべきだと思う. モチベーションは全てに優先するよ.
452 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 19:32:08 ] うむ、iPhone Application Tutorialからど〜ぞ。
453 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 20:03:11 ] 皆さんありがとう 明日Amazonから萩原本が届くのでとりあえず読んでみます(`・ω・´)
454 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 20:33:13 ] まてまて、荻原本はプログラミング初学者には敷居が高いぞ。 他言語でokなので、何かしらの入門本を読んでからの方が良いと思われ。
455 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 20:43:01 ] 初めてで萩原本読むくらいなら、 英和辞書片手にヒレガス本第3版読んだ方が良さそうだな。 平易な文体だから高校生以上なら辞書なしでも 大体のフィーリングは掴めると思うし、スクリーンショットや挿し絵も多いしな。
456 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 20:46:52 ] >>454 >>455 Σ (゚Д゚;) そ、そうなのか・・・ では上で教えてもらったCとか、Ruby on Railsとかの入門書から挑戦してみます ヒレガス本第3版というのも見てみます(洋書は気おくれしそうですが・・・) ありがとう ってか皆さん滅茶苦茶お詳しいっすね・・・(;´Д`)
457 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 20:50:31 ] 個人的な趣味としてRubyと Railsを押すけど、webアプリを作って外部に公開する場合レンサバ借りるときにいろいろ困ることがあるよ。 英語が得意なら海外でRails向けのホスティングサービスがあるけどね。 iPhoneアプリを作りたい位だからLeopardユーザだと思うけど、 TextMateってテキストエディタをDLしてきて p "Hello World" って書いて拡張子を rb 保存して Command+Rをするだけで実行できて楽だと思う。 ってスレ違いになるからこのくらいにしておく。 その心意気はすばらしいけど、荻原本はまったくもってプログラミング初心者が読む本じゃないよ。
458 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 21:25:47 ] でもObjective-Cの仕様なんてCに毛が生えたようなもんだし、 Objective-Cの書籍として荻原本はベストな選択の一つなのは間違いない。 強いて言うなら、Cの入門書とCocoaフレームワークやInterface Builderに ついての本を一冊ずつ買っとくといいと思う。
459 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 22:16:38 ] >>457 >>458 アドバイスサンクス 道は一本じゃなさそうなのでいろいろ齧ってみます しかしプログラムの道は高く険しいなぁ・・・
460 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:21:38 ] >>459 あと、iPhone プログラムを突然はじめるより、いちど OS X 用の小さいプログラムを書いてから iPhone にいったほうがわかりやすいかもしれない。 大体構造いっしょだし、OS X 用プログラムの書き方のほうがネットに沢山ころがってます。
461 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:25:19 ] >うーむ、C++でもC#でもなく初代Cがいいのか・・・ Obj-C は C++ と同時期に(80年代) C から派生した言語なので、まあ並列だよ。 べつに C++ を勉強したから Obj-C がわかりやすいとかその逆ということではないです。 両方ともオブジェクト指向だけど、毛色が360度違います。 C# は Java のクローンだよね。Java 自体が C, Obj-C, C++ を参考に開発されたものだし。
462 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:49:02 ] C#、特にC# 3.0はJavaより強力な言語になってるよ。 ただ実質的に実行環境や開発環境がWindowsに限られるのが難。(Monoもあるけど) MS製の環境にどっぷり浸かるならば良いとは思う。VS.Netも強力だし。 ただiPhoneの開発には使えないし、応用できるテクもおそらく無いw
463 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:53:15 ] 勘違いさんいらっしゃーい >>462 はいさようなら。
464 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:55:19 ] >>460 >>461 >>462 俺みたいなクレクレ厨にここまで親切にアドバイスしてくれるなんて・・・ みんな優しいな。゚(゚´Д`゚)゜。 よその板なら「ググれやカス」で終わっても不思議じゃないのに・・・ ありがとう、このご恩は忘れませぬ ノシ Windowsのゲーム作りならC#がいい、って聞いたことあるので いつかC#も触ってみます
465 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:58:27 ] >>464 >このご恩は忘れませぬ 検討を祈る。成功したら後輩に優しくな!
466 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:59:10 ] 自作er乙
467 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:14:15 ] iPhoneアプリに関しては正式に配布できるような形のプログラムのTipsとかは現時点ではNDAがあるからないに等しい。 Appleのサンプルプログラムくらいしかソースも読めない。 Objective-Cをやるなら >>460 が言うようにMacアプリからやった方が現時点ではいいだろうね。
468 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 13:19:01 ] Mac用だけどObjective-Cの入門記事です。 journal.mycom.co.jp/column/objc/index.html
469 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 13:36:38 ] Objective-CってVisitor Patternが使えないの?
470 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:39:27 ] え?
471 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 19:03:20 ] そもそも visitor pattern なんて使わないだろ
472 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 19:03:52 ] Visitor Patternを使うのに、何か問題でも?
473 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 20:49:15 ] Visitor Patternといえば木構造の処理系作成に使ったことがある。 でも、Objective-Cはメソッドオーバーロード出来ないから特殊な方法でやった。 普通の意味でならVisitor Patternが使えないのは本当。
474 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 21:05:42 ] Visitor Patternって、メソッドのオーバーロードができないと、実装できないんだっけ? オーバーロードって、引数の型によって「静的に」同じ名前のメソッドを区別するためのものなんだから、プログラムの構造に影響しないように思えるけど。 単純に複数の名前のメソッドを使い分けるだけでは?
475 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:08:31 ] >単純に複数の名前のメソッドを使い分けるだけでは? そんなメンテナンス性の悪いコーディングしてどうする
476 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:41:48 ] ようするに void action(A obj) void action(B obj) と定義されていたものが、 void actionWithA(id obj) void actionWithB(id obj) となるだけだから、ソースコードの見た目の問題はあるけど、Visitor Patternが実装できない理由にはならないよね?
477 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:55:39 ] 今帰宅 萩原本届いてた ちょっと読んでみた (´;ω;`) ・・・。 やっぱりCの入門書から読みます >>467 >>468 ありがとう 心折れかけたけど地道に頑張ります
478 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 23:13:32 ] >>477 まあプログラミングにも王道は無しだよ。あなたの今のように謙虚な気持ちを忘れなければきっとできるようになります。 あと、C のポインタのあたり、文字列操作の細かい話は あまり勉強しなくても大丈夫なので読み飛ばしてください。
479 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 23:23:20 ] おいおい、ポインタはいるだろ。 Cocoaだって最近のAPIはNSError **が大量にあるだろ。
480 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 23:26:42 ] ポインタってみんなどういうところでつまづくの? 「変数を入れてるメモリエリアのアドレスを渡す。」 それ以上になにか必要か?
481 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 23:32:40 ] 478 ですが、全然いらないというつもりはないんだけど。 >>480 さんの言ったことを言いたかったです。言葉が足りませんでした。 & と * はわかっておいたほうがいいけど、Objective-C ではそれで充分だよね。 malloc / free は要らないし、ポインタ演算 (足し算引き算) は要らないでしょ。 あと、配列は知らなくてもいいし、配列とポインタの等価性も要らないし、 文字列が char* 配列だということも知らなくてなんとかなるのでは。
482 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 23:56:38 ] >>476 >ソースコードの見た目の問題はあるけど、Visitor Patternが実装できない理由にはならないよね? それで多重継承や多重ディスパッチを出来ると強弁するならご勝手にw