1 名前:デフォルトの名無しさん mailto:sage [05/01/29 16:18:12 ] ほんとプログラマにとってはMacって 本当に興味が無いOSだよねw Macでの標準的な言語であるObjective Cのスレすら無いし。 過去にはあったんだろうけど。
744 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 22:26:27 ] Java出身ですが、objcに興味津々 てかcocoaとかのライブラリーに興味あり 今とりあえずCを勉強中。preprocessorってコード読みにくい。。。 で、Cをひとまず覚えたらobjcの本とかPDFとか何を読むのがおすすめですか? 英語でかまいません。むしろ英語がよい。
745 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 22:45:17 ] Apple のサイトに一杯あります。 あと、Cをそんなに勉強する必要はないと思う。 developer.apple.com/documentation/Cocoa/ から好きなだけ読め。 言語自体は developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ それをさっと眺めたら developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/ で実際にappをかいてみて、そのあと developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/ で基本を学ぶのがいいと思う
746 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 22:54:10 ] >>744 自作のCでやるクラス・ライブラリーは完成したんですか?
747 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 01:17:36 ] >>746 すいません。よくわかりません。 >>745 サンクスです。本とかよりappleのpdfで十分ってことですね。 とりあえずcは基礎だけは勉強しておこうと思ってます。 structすらまだ学んでないので。。。
748 名前:744 mailto:sage [2006/10/04(水) 01:31:01 ] cocoaのこの辺りがいけてるとか、充実してるとかってありますか? CやJavaに比べて ぱっとみCoreAudio, CoreImageは凄そうと思いました
749 名前:デフォルトの名無しさん [2006/10/04(水) 02:39:43 ] Cocoaっつーか、IBが面白い。
750 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 09:28:13 ] Objective-C のいいところは、C++/Java とちがって 非常にダイナミックなところでしょう。 binding 多用しだすともう殆どスクリプト言語状態だと思います。
751 名前:745 mailto:sage [2006/10/04(水) 09:30:31 ] >サンクスです。本とかよりappleのpdfで十分ってことですね。 充分かどうかは... 本もいいのがいろいろあるよ。 ヒレガスとか。 www.cocoadev.com/index.pl?CocoaBooks に書評があるのでみてみてね。
752 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 20:57:38 ] >>751 ひれがす?
753 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 06:36:37 ] >>744 はCocoaとObjective-Cを混同している予感
754 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 08:20:41 ] 混同してるようには見えんが
755 名前:744 [2006/10/05(木) 12:38:03 ] >>753 Cocoaはobjcのライブラリーでしょ? >>751 ありがとうございます。参考にします。
756 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/06(金) 06:37:45 ] Obj-C自体実質MacOS X専用言語だからなー
757 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 11:40:45 ] はつみみです
758 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 14:38:05 ] はなしし?
759 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 15:35:07 ] Mr.ダンゴリオン・・・あなたは一体何者なんですか?
760 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 15:37:17 ] お団子ちゃんの退化系
761 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 15:46:14 ] ウソップとそげキングみたいなものでつか?
762 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 00:37:38 ] ってか Mac 以外の環境で Objective-C 触ってる物好きなヤツっているの??
763 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 00:39:14 ] いまだにOpenStep使ってる椰子とか
764 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 01:16:13 ] 白豚さんとか
765 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 01:52:05 ] GNUstepではだめ?Windows環境で学びたいんだが... つーわけで、とりあえずcygwinでApacheモジュール作ってみた
766 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 10:18:53 ] Objective-Cのソースコード整形ツールってあるん? 人から渡されたコード読んでるけど汚くってかなわん。 両刀使いだからWinでもMac用でもかまへん。
767 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:11:40 ] ObjC 2.0でますますCocoa専用言語な印象が強まったんですが。
768 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 21:41:54 ] GNUstepの中の人たちが頑張ってくれるだろう。 もしくは中の人になれ。
769 名前:デフォルトの名無しさん [2006/10/10(火) 01:00:55 ] >>766 汚いソースの例が見たい
770 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 01:53:17 ] WinとMacで両刀使いか ならばMonaも使ってると三所責めだな
771 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 20:42:55 ] ObjCをコンパイルできる無料のコンパイラってgcc以外にある?
772 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:09:03 ] POC 使えば、原理的にはどんな C Compiler でもコンパイル出来るはず。 users.pandora.be/stes/compiler.html
773 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 13:31:16 ] >>772 ちょっくら読んでみたけど、これってObjc -> Cに変換するプリプロセッサ?
774 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 14:08:58 ] うn、中々面白いよ、でも癖があったりするからちょっと困る
775 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:38:16 ] macでプログラミングをしてみたいのです mac関連のプログラミング本はほとんどObjCで書かれていますが この板ではObjCはあまり人気がないように見えます。 みなさんはぶっちゃけどの言語をお勧めしますか
776 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:44:33 ] ぶっちゃけObj-C
777 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 23:21:46 ] ObjCスレで聞いてObjC以外の答えが返ってくると思うのかい?
778 名前:デフォルトの名無しさん [2006/10/17(火) 00:30:34 ] Obj-C最高! とまで言わないがかなりイイ!
779 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 06:51:47 ] Macでのプログラミングの話題は新Mac板の方が活発。
780 名前:デフォルトの名無しさん [2006/10/17(火) 10:12:35 ] >>777 このスレできいて、違う言語があがればそれこそObjCを見限ろうと 思ってました
781 名前:デフォルトの名無しさん [2006/10/17(火) 10:40:03 ] う〜ん、言語の善し悪しというよりはライブラリの善し悪し、そのライブラリを使うためのObjC、かなぁ? Cは好きだけどCarbon onlyで書こうとは思わんし、Cocoa-javaも付け焼き刃の印象しかない WebObjectsみたいに気合いが入ってなさそうだし>>Cocoa-Java
782 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 11:41:21 ] 見限るとか見限らないとか、そんな大層な問題じゃないような… 気になったら遊んでみればいいし、飽きたら忘れれば良い
783 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 13:23:53 ] というか ObjC は C とオブジェクト指向を知ってたら文法は屁でもない。 C++ 知ってたらとりあえず一日でだいたい使えるようになる。 Cocoa の API をつかむのは案外時間いるかもだけれども。
784 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 13:38:36 ] ObjC→C++はどうでつか?
785 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 14:40:34 ] C++ はとんでもない機能が沢山あるので、そこまでやりたければじかんがかかるでせう
786 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:06:24 ] >>781 WebObjectsも気合いは入ってない
787 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:53:38 ] ていうか Cocoa-Java はとうとう deprecate された
788 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 17:31:08 ] もうだめぽ
789 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/17(火) 18:31:34 ] Cocoa-Ruby まじでおすすめ
790 名前:-○◎○ mailto:sage [2006/10/17(火) 19:01:04 ] この道を行けばどうなるものか、危ぶむなかれ。 危ぶめば道はなし。踏み出せばその一足が道となる。 迷わず行けよ。行けばわかる ありがとう、ダンゴリオンさん Cocoa-Ruby でいってみます
791 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 22:33:56 ] ちなみに RubyCocoa だと思ふ... あと、RubyCocoa は Objective-C+Cocoa をやってから やっぱスクリプトがいいや〜、と移行するものであって それではじめるものではないと思うけどどうでせう。 Obj-C 有る程度わかってないと Cocoa のドキュメント読めないでそ。
792 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:58:29 ] Smalltalk、Objective-C、Ruby メッセージ指向なオブジェクト指向言語の方がCocoa向きだよね
793 名前:デフォルトの名無しさん [2006/10/22(日) 15:02:51 ] >>792 >メッセージ指向 なんだそれ?
794 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 15:06:33 ] >>>792 Ruby は違うでしょ。単に動的なだけ。
795 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 20:38:38 ] >>793 アラン・ケイのオブジェクト指向。メッセージングという考え方を表現や問題解決の中心に据える。 対して、C++、Eifflel、Java などが立脚しているのは「クラス指向」なビアルネ・ストラウストラップの オブジェクト指向。抽象データ型を(Simulaの)クラスという機能を用いて実現するという考え方。 >>792 ,794 Ruby のポリシーは、「いろんな言語のいいとこどり」なので、オブジェクト指向についても どっちつかず。
796 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/22(日) 20:43:12 ] メッセージ指向っていえばWin32のウィンドウクラスの考え方がそうだ 汚いが。
797 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 03:35:31 ] caseの化け物のことか
798 名前:デフォルトの名無しさん [2006/10/23(月) 07:08:43 ] >>795 解説アリガォ。 結局動的か静的かになるんだろうけど、どちらもオブジェクト指向つーのは分かりづらいな。 オブジェクト指向メッセージ指向? オブジェクト指向クラス指向? 指向指向うるさいなw
799 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 09:51:02 ] メッセージ指向とクラス指向って排他なの? あとクラス指向って本当にStroustrupがベースなの?
800 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 21:03:11 ] >>798 ケイのオブジェクト指向、ストラウストラップのオブジェクト指向でおk 動的か静的か…のくくりだと語弊があるかも。 ケイは静的型チェックを否定しているわけじゃなく、ストレスなしに使える 静的型チェック機構の存在を知らない…と言っているだけだし。 >>799 排他ではない。けれど、前提となるもの、視点が違うから適所でうまく切り替えるべき。 たとえば、ストラウストラップの…は抽象データ型に軸足をおいているから、 クラスやオブジェクトの中身の設計や見せ方に重きを置くけれど、ケイの…は そういうことには頓着しない、とか。 別の例では、ストラウストラップの…は基本データ型との混在を許すが、ケイの…では論外、とか。 抽象データ型を SIMULA のクラスを使って…というアイデアは、ストラウストラップが C++ の前身である C with Classes で試したのが最初。メイヤーは、C++ にあれこれ いちゃもんを付けたり、ストラウストラップの主張を黙殺したりするけど、言っていることは ほぼ、ストラウストラップ+α(契約によるプログラミング)の類で、新機軸を打ち出しているわけではない。 まあ、ストラウストラップ自身は「クラス指向」という言葉を使っているわけではないので、 (彼は、「抽象データ型のスーパーセット」、「継承によるプログラミング」と称している) 799が疑問を呈しているその「クラス指向」がなにかにもよるけれど…。いずれにせよ、 よく言われる「カプセル化・継承・多態性」とかのオブジェクト指向は、ストラウストラップので、 ケイのじゃない。
801 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 01:24:11 ] >>800 ん、そうだっけ? Smalltalk78の時点で継承という概念は導入されているし、メッセージを飛ばすSmalltalkはそもそも多態性だろう。 カプセル化については、オブジェクトを作るという行為そのものがカプセル化ではないのか。
802 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 01:49:39 ] カプセル化はアクセス制御出来ないとダメなんじゃないの。 クラス指向とオブジェクト指向は、何を本質とするかであって、 単にマッピング出来るかどうかの問題じゃないんじゃないかな。
803 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 02:03:45 ] >>801 いや。それは Smalltalk がその三点を満たしているかと問われれば、たしかにそうなるけど…。 でも実際のところ、ケイは彼のオブジェクト指向において、そういうことは言っていないし、目指してもいない。 本気でそう(「カプセル化、継承、多態性」がケイのオブジェクト指向においても要件である…) と信じているなら、下のにひとおとり目をとおしてから出直してきてくれると助かる。 www.purl.org/stefan_ram/pub/doc_kay_oop_en lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html もちろん、こうしたケイの意向があったとしても、Smalltalk ユーザーがそれを無視して、 ストラウストラップのオブジェクト指向を(部分的ながらも) Smalltalk を用いて実践したいと思ったとしても、 それを妨げるものは何もないわけだけれども…。 たとえば、この人なんか Smalltalker として有名だけど、典型的なストラウストラップの オブジェクト指向実践者(の、わりに C++ には批判的なのが笑える)。 www.sra.co.jp/people/aoki/IntroductionToOOAOOD/chapter1/Chapter1.htm
804 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 02:20:10 ] >>802 ダメってことはない。なぜなら、カプセル化、継承、多態性というのは、Smalltalk にも 当てはまるようにデフォルメされているから。Smalltalker はケイをないがしろにした上に、 ストラウストラップの考えも都合よく骨抜きにしてしまった。じつに傲慢な奴らだ。w ただ、802 のいうことは当たらずとも遠からずで、ストラウストラップが要件としてあげた ものは、抽象データ型、継承、仮想関数を用いた動的性…に加えて、静的型チェック、 多重継承、アクセス制御…なので、これにはちゃんと含まれている。 portal.acm.org/citation.cfm?id=679041 www.research.att.com/~bs/whatis.pdf (上の '90 改訂版。内容はほぼ同じ) だから、真にストラウストラップのオブジェクト指向を実践するには、ほんとうは、 Smalltalk ではダメ(だからデフォルメして対応せざるをえなかったわけだけれども…)。
805 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 13:45:01 ] Smalltalkの多態は継承ツリーがどうこうという話ではなく、 呼ぶメソッドを実装されてるか、という1点にかかっているあたりクラス指向 というよりメッセージ指向な感じがするわけだけど、 Simula の末裔の C++ が template で似たようなスタイルを実現している(しかも それが標準ライブラリとして広く使われている)あたりとか面白いですよね。
806 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:27:12 ] gccがこんなエラー吐いてくれるぜwwww In file included from linking.m:28: objc/Object.h:38: error: 構文解析エラー before '{' token objc/Object.h:43: fatal error: method definition not in class context
807 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:42:49 ] ただ単にObject.hが壊れてるだけじゃね?
808 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 20:28:49 ] developer.apple.com/jp/releasenotes/DeveloperTools/GCC40PortingReleaseNotes/GCC40PortingReleaseNotes.pdf の32ページに、 Objective Cでは、インスタンス変数にデフォルトで@protectedというラベルが付きます。GCC 4.0 では、これを明示的に警告するようになりました。また、将来のコンパイラではこれをエラーとし て取り扱います。この問題を修正するには、Objective-Cインターフェイスでインスタンス変数のス コープを明示的に指定してください。 ってあるんだけど、これってインスタンス変数を定義する時に今までは省略していた@protectedを書かなければいけなくなるってこと?
809 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:55:46 ] デフォルトで~っていうのは、書かなくても @protected 扱いになるということだと思われ エラー/警告が出るのは、他の class からインスタンス変数を @public として操作した場合の話じゃないかな
810 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:03:19 ] 220度くらいズレてる気がする
811 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:09:34 ] 適当な事を行ってすいませんでした m(__)m
812 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:41:11 ] >>808 いつの間にか翻訳、英語版に追いついてるな。 ObjC 2.0でまた置いて行かれそうだが。
813 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 02:24:57 ] インスタンスメソッドから、インスタンス変数と同名のグローバル変数へアクセスすることはできないのでしょうか? 早い話、 グローバル変数 const int foo = 100; - (id)init { [super init]; self->foo = foo; return self; } 上記のような感じでグローバル変数でインスタンス変数を初期化したいのです。 何か良い方法は無い物でしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 02:40:51 ] そのことやるくらいなら、マクロで初期値設定した方がいい
815 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 02:49:14 ] すみません、正確には変数じゃなくて配列なんです。 元々はC++のソースで、namespaceで対応されている部分なのですが……。 やはり同名のグローバル変数にはアクセス出来ないのでしょうか?
816 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 04:25:59 ] static int global_foo() { return foo; }
817 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 04:30:18 ] Objective-C++ にして、普通にnamespace::varじゃいかんの? 手元で確かめずに言ってすまんけど。
818 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 20:16:00 ] >>817 なるほど、Objective-C++という逃げ道がありましたね……。 何の問題も無くクリア出来ました。ありがとうございました。
819 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 09:26:41 ] >>813 Objective-C++ じゃない場合でも以下でいけるんじゃね? const int foo = 100; static int getFoo(){ return foo; } - init{ self->attr = getFoo(); return self; }
820 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 12:48:51 ] こんなのがあったべ。 www.informit.com/articles/article.asp?p=665128&seqNum=3&rl=1 GCC のテストスートにObjC2.0のサンプルコードがあるらしい gcc.gnu.org/viewcvs/branches/apple/trunk/gcc/testsuite/objc.dg/
821 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 17:06:10 ] がー。 Windowsで使えるObjCコンパイラってないの?Cygwin+gccは面倒い。
822 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 20:38:03 ] つMinGW
823 名前:デフォルトの名無しさん [2006/11/15(水) 14:48:56 ] >820 クロージャが無いって明言されてるorz
824 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 19:08:38 ] ObjCって今でもプリプロセス段階でCに変換されてるの?
825 名前:デフォルトの名無しさん [2006/11/15(水) 21:46:05 ] してないでしょ、多分>>プリプロセスでC変換 もししてたらインテルのコンパイラも使えるの?
826 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:56:07 ] GCCとかではCに変換したりせずにそのままコンパイルしてるはずだけど、 Cに変換するプリプロセッサも出回ってるからそれ使えばIntelのC/C++ Compilerも使えるかと。
827 名前:デフォルトの名無しさん [2006/11/15(水) 22:05:50 ] クロージャー無いのか、残念だ Smalltalkでdo:メソッド見たときは感動したんだよな
828 名前:デフォルトの名無しさん [2006/11/15(水) 22:19:07 ] ifTrue:メソッドとかやりすぎw>>SmallTalk
829 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 22:33:37 ] 確かにw でも至るところにデザインパターンを見ることができて面白いよね Booleanクラスに何もしないifTrue:とifFalse:を定義して TrueクラスのifTrue:がクロージャーを評価し、 FalseクラスのifFalse:がクロージャーを評価する ここまでObjective-Cに求めるつもりはないけど クロージャーを導入するとどうしてもよりSmalltalk化しちゃいそうだね
830 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 23:39:48 ] >>828 アラン・ケイもそんなふうに言っているよね。彼の手を離れてからずいぶんとLISP化しちゃったから。
831 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 23:44:56 ] ケイは message passing style の発案以外で Smalltalk に対して何かしたんだっけ? クロージャは今回入らなかっただけで、いずれ入ると思うよ。
832 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 00:22:53 ] >>829 茶々入れでスミマセン。 厳密には Boolean に定義されている #ifTrue: と #ifFalse: はあくまで仮想メソッド、 つまり、サブクラスで再定義されることが期待されるメソッド…という位置づけになっていて (C++ のオブジェクト指向の影響)、引数ブロックを無視する #ifTrue: や #ifFalse: は False、True クラスにそれぞれ普通に再定義されています。現実は、あまりおもしろみがないですね。 もっと夢のない話をすると、メッセージ ifTrue: [] や ifFalse: [] はコンパイル時にはインライン展開されて しまうので、実際にはメソッドとしての #ifTrue: や #ifFalse: がコールされることはなかったりもします。 (なので、#ifTrue: や #ifFalse: の定義を書き換えるイタズラをしても、実際には何も起こせません)。
833 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 18:12:51 ] ja.wikibooks.orgにはObjective-Cの記事がないのな。
834 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 21:16:51 ] 抽象クラスとプロトコルってどう使い分ければいいの?
835 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 01:12:06 ] 抽象クラス(Objective-Cに抽象クラスという仕様はないから、単なるクラスだが)は継承しないと使えない。特定の実装を強制させるなら抽象クラス。 実装は各クラスで好き勝手にしていいか、すでに他のクラスを継承していて抽象クラスを使えない場合はプロトコル。利便性を考えて、プロトコルの参考実装として抽象クラスを用意することもある。 使い分けようとしなくても、実装を何度も見直すうちに自然と使い分けられるようになると思うよ。
836 名前:デフォルトの名無しさん [2006/12/03(日) 00:19:53 ] gdbでObjCのメソッド名指定でブレイクはることは、できないのでしょうか? ライン指定は出来ます。 gcc 4.0.1-Apple gdb 6.3.5-Apple
837 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 07:06:16 ] ttp://developer.apple.com/technotes/tn/tn2032.html > Objective-C method: b -[Foo bar], or for an action method example, b -[Foo bar:]
838 名前:デフォルトの名無しさん [2006/12/04(月) 22:16:51 ] 返事できなくてすみません。 メッセージ呼び出しとおなじ書式なんですね。 失礼しました。
839 名前:デフォルトの名無しさん [2006/12/31(日) 01:55:01 ] 書き始める前に何重のネストになってるか明確でないとダメなのがイマイチな気がする。 見た目だけでも、メジャーな言語風だったら、かなり敷居が下がると思うんだけど。 この書き方のメリットって、何かあるの?。
840 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 11:43:19 ] まあ、Objective-C が出来た頃はどのオブジェクト指向言語もメジャーじゃなかったので、ね... そんなに見た目って敷居になるのかな?Cocoa と他のクラスライブラリの違いのほうが余程問題だと思うけど... たとえば Cocoa Java があったけど、だからといってそんなに書きやすかったかというと疑問。 [[[ の数がはじめに判らないのが面倒なのは同意。メリットは、つねに引数に名前が書いてあるので、あとで読んだときになにをやっているかが分かりやすい、かな。
841 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 17:33:20 ] Smalltalkという超メジャーなオブジェクト指向言語風の書き方じゃないか。
842 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 18:25:56 ] Smalltalk は [ ] はなかったんじゃなかったっけ? というか、[ ] はあったけどそれはクロージャだったので、用途が違ったんでは...
843 名前:デフォルトの名無しさん mailto:sage [2006/12/31(日) 23:52:38 ] Objective-Cってリフレクション以上に動的な事できるよな?
844 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 00:04:54 ] ポージング (Posing) とかできますよ journal.mycom.co.jp/column/objc/012/ メソッドスウィズリング (Method Swizzling) とかも。 www.cocoadev.com/index.pl?MethodSwizzling まあランタイムのAPI呼べば何でも出来ます。
845 名前:デフォルトの名無しさん mailto:sage [2007/01/01(月) 00:18:35 ] >>844 ありがとうございます。ランタイムの弄りかたさえわかれば何でも出来るのか。
846 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 01:57:16 ] >>842 [ ] はなかったけど、 receiver selector:arg って形は同じでしょ。
847 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 06:22:38 ] 見かけだけはね
848 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 08:22:31 ] 見かけは重要だ。つか、内部的にも一緒なんじゃないの。 動的言語のメソッド呼び出し方法なんて一種類しか無いような。
849 名前:デフォルトの名無しさん [2007/01/03(水) 22:45:09 ] emacかXcodeつかって仰山のソースコードのインデントを一括で行う方法ってありませんか? いっこいっこ開いてメニュー選ぶのかったるいです。
850 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 23:23:38 ] emacsならelisp書けばよか
851 名前:デフォルトの名無しさん [2007/01/03(水) 23:37:09 ] >>850 emacs elisp インデント などとGoogleで検索してみましたがよくわかりませんでした。 当方少しのコマンドラインなら打てます。例えば find . -name *.m -exec emacs -batch -indent {} ¥; などといった簡単なやり方ではなくて、何か特殊な方法なんでしょうか?
852 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 02:00:27 ] スレ違いだボケ
853 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 05:56:55 ] emacs インデント でぐぐればいいんじゃないかな。 www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_21.html もちろんObjective-Cモードにしてね。
854 名前:デフォルトの名無しさん [2007/01/04(木) 11:44:55 ] >>853 ありがとうございます。 それみても私の理解不足で、エディタ内で行う編集作業のコマンド集にしか見えないです。 >>852 ごめんなさい。 すれ違いとのことで以降はemacsスレッドを探してそこで聞いてきます。
855 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 22:07:54 ] Objective-C に対応したソースコード整形ツールって無いのか。
856 名前:デフォルトの名無しさん [2007/01/04(木) 22:11:43 ] >>855 NeXT Step には独自改良版の GNU Indent が対応していたそうですがそれ以外だと単体の整形ツールは存在しません。 現状私の知る範囲ですとXcode、emacsなどの「エディタ」のソース整形機能を引っ張ってくるほかないです。
857 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 23:15:25 ] >>856 NeXTが独自改良したならばソースがどっかにころがってんじゃねーの? GNUって逝ってんだから。 ぐぐっても出てこなかったけど(w
858 名前:デフォルトの名無しさん [2007/01/04(木) 23:56:07 ] だれかこれを改造してObjective-Cでも使えるようにしてくれ 動的な言語だと難しいかもしれんが ttp://www.tamacom.com/global-j.html
859 名前:デフォルトの名無しさん [2007/01/08(月) 14:16:12 ] MacPortsで試しにGNUStepを入れてみたけど、これってなんとなく手作り感が 出てて良いね。 でも、ProjectCenterの*.gormをクリックしても、Gormの起動に失敗してしまう。 何か設定とかあるのかな。
860 名前:デフォルトの名無しさん [2007/01/13(土) 00:09:59 ] >>859 です。 */System/Applicationsにパスを通してできました。 一応簡単なサンプルを作ってみたんだけど、 あまり期待してなかったのもあったから、使ってみてxcodeとほとんど同じような感じで使えて 予想以上に便利なんでびっくりした。 これってLinux等のGUIアプリの作成でもうちょっと普及してもよさそうだけどな。
861 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 12:35:54 ] xcodeってjavaはどの程度サポートしてるの?
862 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 17:58:12 ] Xcode part4 pc9.2ch.net/test/read.cgi/mac/1149300142/
863 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 18:23:40 ] thx
864 名前:本田 [2007/01/25(木) 19:47:35 ] >ディベロッパー:Windows環境下でMacのAPIによるコーディングを可能にするCocotron opentechpress.jp/developer/article.pl?sid=07/01/23/0121247 >COCOTRON www.cocotron.org/
865 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:04:50 ] Cocoaスレでとうの昔にガイシュツ
866 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 20:50:41 ] oneway voidって別に メソッドを別スレッドで実行するわけではないよね?
867 名前:デフォルトの名無しさん [2007/02/23(金) 08:29:29 ] 使ったことないけど、そういうことじゃないんじゃない? リモート側の応答を待たないだけということじゃないかな。 実は別スレッドで受信待ちして、デリゲートで通知とかあるのかもしれないけど。
868 名前:デフォルトの名無しさん [2007/02/23(金) 14:35:39 ] そういうことじゃないんじゃないんじゃないかな?
869 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 16:25:24 ] 分散オブジェクトのときのみ使用されます。 NSConnection 使わなければまったく意味はないです。
870 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:28:13 ] Apple Inc.、Objective-Cの商標登録出願 www.appleinsider.com/article.php?id=2519 これまた問題にならないかね。
871 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:04:22 ] なんでそういうわけ解らんことするんだろうねアップルは
872 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2007/02/24(土) 21:41:36 ] DRM反対を唱える一方で自らも版権ゴロか
873 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:15:01 ] 糞ダンゴは去ね。
874 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 02:04:30 ] わざわざ商標なんて取らなくたって、 誰もObj-Cなんて名前の製品出さないってば。
875 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 11:13:24 ] 実質的にまともに商用利用してるのAppleだけだしね まぁコンパイラはgccだし将来的に使うやつが万に一つくらいで 出てくるかもしれないとかで取ってるのかねぇ…
876 名前:デフォルトの名無しさん [2007/02/26(月) 12:49:51 ] 1995年に、開発元のStepstone社から、NeXT社が言語と商標を買い取ってる。 Appleが商標を取得しなおす理由はよく判らない。 ja.wikipedia.org/wiki/Objective-C
877 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 15:45:11 ] >>876 www.apple.com/legal/trademark/appletmlist.html "Objective-C"は登録されていない商標。
878 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 01:21:47 ] でも、例えばボーランドがObj-Cコンパイラを作ったら、 "Borland Objective-C (TM) Compiler" みたいな名称になるんでしょ。
879 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 02:03:45 ] 「Redmond, start your photocopies.」 なーんて言ってたら、マジでVistaでCore Audioをまんまパクられたから 焦って商標を取得したとか?
880 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 15:07:39 ] そもそも言語名って商標として登録できんの? よくわからんのだけど、SunがJavaの商標を持ってたりMSがC#の商標持ってたりするの?
881 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 16:42:13 ] いや、そりゃ持ってるだろ。MSは知らんけど昔のSunはJavaをかなり厳格に管理してた。
882 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 18:37:41 ] Objective-CでWin32アプリ書こうかと思ったんだけど、 そもそもWindowsで使えるObjective-Cの処理系ってある?
883 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 18:51:42 ] GNUstep
884 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 21:17:48 ] Objcの処理系って意味なら gcc でOK。 # ってか他にまともに動く処理系ってある?
885 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 21:19:16 ] MinGWのObjective-CでWin32API使って書いたほうが 今のところは実用的だと思うけど
886 名前:・∀・)っ-○◎● mailto:sage [2007/03/29(木) 01:28:09 ] Cで十分ってことじゃんそれ Win32のメッセージAPIまわりがObj-Cのメッセージに綺麗にラップされてるならまだわかるが
887 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 02:48:14 ] >>886 まぁまったくその通りだと思うのだが>>882 がラッパを書いてくれればOK
888 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:18:45 ] 文字列オブジェクト定数に使われるクラスに自作のクラスを使えない? コンパイラオプションにあるあらかじめ用意されたクラスしか使えないの?
889 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:18:05 ] >>888 www.mhatt.aps.anl.gov/dohn/programming/gcc/gcc_7.html#SEC158 こういう話?
890 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 20:17:50 ] >>889 それそれ! どうもありがとうございます!
891 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 12:39:32 ] Cocoaプログラミングの無料セミナー開催 今月4月にCocoaプログラミングの無料セミナーの初級・中級・上級を東京初台 のアップルセミナールームで開催し ます。次期OS Leopardには、Objective-Cの APIのみで提供される新機能がたくさ んあります。今後、Cocoaの習得はMac OS ソフトの開発に必須となります。是非 この機会をご活用下さい。講師はHMDTの 木下誠さんです。 developer.apple.com/jp/rss/adcjapan.rss
892 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:16:44 ] 今更の質問かもしれないですが、NSURLConnectionで2chデータの差分を取得しようとした時に416エラーが返ってくるのをどう解釈して良いのか分からず困っております。 NSURLRequest内容: { Accept = "text/plain"; "Accept-Encoding" = "gzip, deflate"; "Accept-Language" = ja; "Cache-Control" = "no-cache"; Connection = close; Host = "news21.2ch.net"; Pragma = "no-cache"; Range = "bytes=6198-"; Referer = "news21.2ch.net/namazuplus/subject.txt"; "User-Agent" = "Monazilla/1.00 (Jane/0.01)"; } NSURL内容:news21.2ch.net/namazuplus/dat/1177098491.dat 他方、cURLで取得しようとするときちんと差分が取得できます。 curl -H 'Range: bytes=6198-' -v -A 'Monazilla/1.00 (Jane/0.01)' -H 'Accept: text/plain' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Connection: keep-alive' news21.2ch.net/namazuplus/dat/1177098491.dat
893 名前:デフォルトの名無しさん [2007/04/23(月) 08:06:01 ] NSURLConnectionではヘッダー部分の、特にHTTP/1.1とかのパラメーターが触れないので、 この辺が原因なのでしょうかね、ほかに何かおかしな事をやってるのでしょうか、 NSURLConnectionのバグ?
894 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 16:50:01 ] NSURLRequest の内容と curl に渡している物が違うのはわざとですか? ステータスコード 416 の意味は何かご存知ですか? Accept-Encoding : gzip の場合は何が起こりますか? NSURLConnectionのバグだと思うのでしたらバグレポート出せばよいと思いますよ。
895 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 20:05:10 ] 416は範囲がそれているという意味でしょ、んでConnection = closeでもConnection = keep-aliveでも ストリームで受け取る場合に挙動はかわらないっぽいです。 curlでAccept-Encoding : gzipを付けなかったのは-vで出されるヘッダフィールドはzipがかからないと考え、 gzip に渡して解読できないかもと思ったからで、416の本筋ではないです。 ヘッダを全くそろえても、NSURLConnection側のみ416エラーが出てます。 ただし、Range設定しない場合はきちんとダウンロードできます…。 今はとりあえずCore Foundationで直読みできるかどうか試してるところです。
896 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 20:12:25 ] >>894 つまりcurlのverboseを見るため、意図してAccept-Encodingヘッダを飛ばしてます。 416とはRange指定範囲が本体の範囲から外れている事を意味していると思うのですが、 もし違う解釈があるのなら指摘いただけるとありがたいです。 curlでは正常に範囲指定が受け付けられているのに、NSURLConnectionでは範囲外と返ってくる。 ヘッダ情報が微妙に違うのか、何が原因なのかよくわからないのです。
897 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 22:37:46 ] tcpdumpとかでヘッダを覗いてみたらすぐに解決するんじゃない?
898 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 12:55:18 ] Accept-Encoding : gzip に答えてサーバーが gzip してコンテンツを返す かつ レンジ指定の場合 そのレンジは”何に対して”のレンジでしょう? 元のコンテンツですか?違いますか? 違う場合は、何に対してですか?
899 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 08:09:24 ] >>898 curl -H 'Range: bytes=6198-' -A 'Monazilla/1.00 (Jane/0.01)' -H 'Accept-Encoding: gzip, deflate' -H 'Accept: text/plain' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Connection: keep-alive' news21.2ch.net/namazuplus/dat/1177098491.dat | gzip -d -c curl: (18) transfer closed with outstanding read data remaining あれ、zip元のデータ長ではないのですね…
900 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:09:45 ] 2ch の dat を差分取得しようとするときに誰もがはまる罠です。 不意のコネクション切断等のときに、 その続きを取得する時のことを考えれば、 この動作が”正しい”ことが分かると思います。 http コンテンツで 2ch の dat の様に差分を取得できる物って そんなに無いと思いますよ。
901 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 22:42:59 ] selfでないインスタンスオブジェクトに対して->を使って @protectedまたは@publicなインスタンス変数にアクセスするのって お前ら的にはどうなの?
902 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 22:48:35 ] そういうおまえはどうなのよ
903 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 23:40:48 ] インスタンス変数fooがあったとして、 メソッド内でselfを書き換えるとself->fooはもちろんとして 修飾なしのfooも実体が書き換えた後のインスタンスのインスタンス変数になるみたいなのですが、 これって処理系(gcc)依存の挙動でしょうか?それとも言語規約通りの挙動でしょうか? すなわち、メソッド内において(& foo == & self->foo)が常に成り立つのでしょうか?
904 名前:デフォルトの名無しさん [2007/05/05(土) 03:16:03 ] 《プログラミング言語の本来あるべき正しい進化》 C言語→Objective-C→D言語 《忌まわしき現実》 C言語→C++→JAVA→C#
905 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 04:36:28 ] >>904 《忌まわしき事実》 C++(膨張した言語仕様への反省)→Java(もっと簡素・洗練しろ!)→C#
906 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 06:41:41 ] 《とりあえずそれなりの仕事になった順番》 C → C++ → Perl → ASP → PHP → Ruby → Java
907 名前:デフォルトの名無しさん [2007/05/05(土) 09:17:03 ] そしてNemerleの時代へ
908 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 13:28:30 ] Visual Objective-C出たら考える
909 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:26:33 ] そんなものでたらCに戻る
910 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 19:08:06 ] >>909 まじで、最近は一部C言語に回帰しているね。 プレゼンテーションはJavaとC#に収束。 Web系以外のサーバーサイドは、C言語がいい場合がある。
911 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 20:05:24 ] Objective-C.NET
912 名前:デフォルトの名無しさん [2007/05/05(土) 23:41:59 ] 言語仕様はObjective-CよりもC++のほうが優れている。 多機能という意味では。 しかしC++プログラマーの大半はC++を使いこなせていない。 大抵はベターCとして使っている。 だからほとんどのプログラマーにとってObjective-Cの機能は十分なんだ。 BorlandのVCL並のRADツールを備えたWindowsで使える統合開発環境さえあれば Objective-Cは即座にC++を駆逐するだろう。 C++が普及したのはひとえにVisualC++の存在が大きい。
913 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:16:26 ] >>912 まあ、C++はC and ++だからな。 C++をフルに使いこなすには、C標準ライブラリ使用禁止、非クラス関数禁止でもしないと 追加機能付きCとして使ってしまう。
914 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:43:54 ] ObjC は C++ に比べて動的型決定なのも受け入れられない理由の一つかと
915 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 07:50:01 ] しかし動的型決定のないObjCなんて・・・
916 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 17:52:53 ] >>912 >BorlandのVCL並のRADツールを備えたWindowsで使える統合開発環境さえあれば Mac OS XならXCodeとInterfaceBuilderがある。 ただObjective-CやれるのAppleぐらいだしWindowsへの進出はなさそうだな。
917 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:10:57 ] InterfaceBuilderのIntel版はあったんだけどね
918 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:29:25 ] そりゃ、MacOSXはIntel上で動きますから。 と釣られてみるテスト。
919 名前:・∀・)っ-○◎● mailto:sage [2007/05/07(月) 00:05:15 ] NeXT OSのIntel版じゃないの いや、Windows進出の野望はあったにはあったみたいだよ。 YellowBoxってのが。 ポシャったけど。 APIとしてのQuickTime for Windowsを提供する予定は 無いようだしな。
920 名前:デフォルトの名無しさん [2007/05/07(月) 01:47:52 ] こんなん? QuickTime 7.1 SDK for Windows (ZIP) developer.apple.com/quicktime/download/
921 名前:・∀・)っ-○◎● mailto:sage [2007/05/07(月) 02:03:32 ] どっちかというとそれプレイヤーのプラグイン書くためのSDKのような MacのQuicktime APIって、WindowsでいえばDirectXみたいな もんじゃなかったっけ。
922 名前:デフォルトの名無しさん [2007/05/07(月) 06:03:08 ] WinAPIってこの先どうなるのかね? それがわからんとWin対応のObjective-Cなんておいそれと作れたもんじゃない。 Obejective-CってのはC言語にオブジェクト指向とかGCとかをマクロ機能を使って搭載したやつだ。 だから言語そのものに機能を組み込んでいるC++とは違うんだな。 ただあれだよね。 常に機能を追加するという発想。 そこはC++と同じ。 JAVAやC#みたいに機能に制限を加えるという発想はない。 Objective-Cを普及させるならば案外その辺がポイントなのかもしれんと思った。
923 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 07:05:08 ] という話は15年くらい前から何も変わってない訳で
924 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 13:51:05 ] マクロ機能というのは言い過ぎでは... まあ runtime の上の syntactic sugar であるのは事実だけども。
925 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:35:53 ] もともと C の思想はプログラマを信じる事だから、C の延長上に機能制限なんてものは無い。 間違いのように見えても、プログラマ様がお書きになられたコードは絶対なのです。
926 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 01:19:43 ] まあマシン語も埋め込める最強の言語だし、なんでもできる。 OSを作るための言語だけの事はある。
927 名前:デフォルトの名無しさん [2007/05/08(火) 06:52:22 ] 安全性と柔軟性は両立しないと。
928 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:50:53 ] 女は両方好む
929 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:09:08 ] ちょっと入り組んだ書き方するとLispも真っ青な括弧の入り組み方になるなぁ カスケード記法があればいいのに Lispと違ってうまくインデントスタイルが組めないから読みにくい
930 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:30:27 ] Lispほどネストする必然がないと思うのだが…
931 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 22:36:27 ] カスケードくらい追加できる気がするけど、何か文法的に問題があるのかな
932 名前:デフォルトの名無しさん [2007/05/14(月) 11:33:35 ] Objective-Cのオブジェクトシステムの部分はSmalltalkの影響を受けているわけで、 そのSmalltalkはLispの影響を受けているので、括弧が多くなるのはそういう理由からでしょう。
933 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 12:01:36 ] ふーん
934 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 12:37:10 ] >>932 すごい三段論法だな。w というか、どうして lisp や smalltalk をろくに知りもしないのに そういう見てきたような嘘をつくかなー。 objc が smalltalk の影響を受けているのは [ ] の中だけ。 というか、objc の [ ] の中は、smalltalk の世界。 objc は smalltalk のコードを C コンパイラに通すためのプリプロセッサとして 開発された経緯がある。そんなわけで、[ ] のネストの多さは objc の勝手な事情で smalltalk とは無関係だよ。 あと、smalltalk への lisp からの影響は、everything is an object のポリシーや クロージャ、ブロッククロージャメソッドのたぐいで、 S 式(つまりこの文脈でいうところの括弧の多さ)じゃあない。 ちなみに残念ながら objc は、これら(lisp からの影響)の恩恵の外にある。 メタクラスやメソッドはオブジェクトじゃないし、ブロッククロージャメソッドはおろか、 ブロック(クロージャ)すら使えない。これらは objc の言語拡張のやりにくさや イントロスペクションの貧弱さ、コレクションの扱いにくさとして出てくる。
935 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:19:56 ] ま〜たそんなマジレスしちゃって。
936 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:53:23 ] >>934 がマジレスしてくれなかったら俺がマジレスする所だったわ 危ない危ない…
937 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 16:53:09 ] >>934 > ブロック(クロージャ)すら使えな 使える処理系もあるけどね。
938 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 19:43:36 ] poc poc チーン
939 名前:デフォルトの名無しさん [2007/05/14(月) 21:09:12 ] 説明していただきありがとうございました。 おかげでOjective-Cの勉強を諦めることが出来ました。 感謝します。
940 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:24:24 ] まだ ObjC にクロージャ入らないんだっけ?
941 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:01:30 ] クロージャを入れるのは一苦労じゃけん
942 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:05:46 ] ふーん
943 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:29:33 ] そこでRubyですよ
944 名前:デフォルトの名無しさん [2007/05/15(火) 00:52:11 ] Objective-Cやっている人はそれがC++よりも優れていると思う? それともMacについてきたからやっているの?
945 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:59:06 ] 優れているところもあるし劣っているところもある ちなみにMacOSXについてるのは Objective-C じゃなくて Objective-C++ だから
946 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:34:24 ] > ちなみにMacOSXについてるのは > Objective-C じゃなくて Objective-C++ だから ちがいます
947 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:14:25 ] >>944 C++より先にObjCを学んだからC++使ってると違和感を感じることがある。 多分C++が先な人は逆なんだろうけど。
948 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:40:39 ] 俺はどうもC++の変数の型の縛りが苦手だなあ。 virtualとか、何種類もあるキャストとか... そんなわけで最近はruby。Cocoaも呼べるし。
949 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 22:01:25 ] 使いやすいのでいいんじゃない
950 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 21:02:32 ] ほしゅ
951 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 04:34:52 ] ttp://ja.doukaku.org/lang/objectivec/
952 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 09:40:00 ] >>947 先にC++だったけどC++使ってると違和感を感じる やっぱりObjective-Cの方がいいよ
953 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 09:50:28 ] >先にC++だったけどC++使ってると違和感を感じる これって、MFCじゃね? MFCとCocoaを比較したらCocoaがマシかもしれない。 でもMFCのトンデモ設計とちょーサイアクGUIビルダーよりましといった事に意味は無い。
954 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:22:06 ] 何で C++ == MFC だと思ったのかな?
955 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 02:14:36 ] かな?
956 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 08:50:11 ] だって、C++Builderなんて使ったらCocoaの変にIDEにコントロールされて 逆にMVCを開発者側が制御できない変なもの使ってられないよ。 MVCを変に制御して困るものでC++といえばMFC。
957 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 09:52:47 ] どっからMVCなんて出てきたんだか。
958 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:20:20 ] ttp://developer.apple.com/jp/documentation/cocoa/Conceptual/CocoaBindings/Concepts/WhatAreBindings.html#//apple_ref/doc/uid/20002372/175802
959 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 20:00:51 ] 日本語でok って言うトコロなんだと思う
960 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 11:22:30 ] プロトコルと抽象クラスってどういう風に使い分ければ良いのよ
961 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:07:29 ] Objective-C 2.0 には抽象クラスがあるの?
962 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 12:32:23 ] いや、言語仕様にはないけどさ…
963 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:38:33 ] どっちも使わない。ふつうは informal protocol というか単にセレクタの名前を取り決めておくだけ
964 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 11:05:51 ] もうObjective-C廃止にしない? Mac OS XとC++でポトペタ開発しようよ。
965 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 11:14:55 ] C++なんてクソ言語使ってられるかっつーの
966 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:01:59 ] というか Interface Builder はポトペタの元祖なのでは?まあ癖はあるような気がするけど。バインディング可なパレットきちんと作っておくと殆ど IB だけで出来るべ
967 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:07:23 ] 出来るってだけで、GUIの凝ったコントロールを作る事が不可能だお。
968 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:49:00 ] ポトペタってなんですか>< インターフェースビルダーよりどこが凄いのか押しえて下さい!!!!
969 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:03:28 ] コンポーネントを派生して、差分コーディングで処理を足して、画面に"ポトペタ"貼る事でつよ。 他人のハイパーなコンポーネント使ったり、ネットに派生コンポーネントが溢れたりするお。
970 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:16:29 ] それはまさに IB でパレットから D&D して、カスタムクラスを設定することだとおもうんだけど、どっか違うの? Apple が提供してる以外の新規パレット自体をつくることもできるよ。 www.bignerdranch.com/palettes/ 確かにネット上にカスタムパレットが溢れてはいないが ...
971 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 13:26:51 ] 派生前クラスのソースコードって公開されてる? やっぱ、クラス派生する場合にはそれが無いとスゲー足かせだお。
972 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:07:21 ] というか、Cocoa のプログラミングは 1) view はパレットから D&D してカスタムクラス 2) controller も最近はバインディング用のをパレットから D&D 3) model は手で書いても良いし、CoreData でも良い だとおもうんだけど。 Apple 提供のパレットはソースコードは流石にないよ。でもドキュメントは(英語なら)完備してる。まあ GNUStep が 8割方再実装してるから読みたけりゃよめばいいけど。 ネットにころがってるのは、そもそも数が少ないけども、ころがってるやつはソースも配ってると思うよ あと、Objective-C はカスタムクラスが面倒だったら、元クラスのソースコードもってなくても元クラスにメソッドを追加できるよ。これは非常に便利。
973 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:12:17 ] >1) view はパレットから D&D してカスタムクラス やっぱ、そうだよね。 プロジェクトと強く結びついたカスタムクラスであって、 クラスライブラリのベースクラスが派生したハイパークラスで溢れる、 というイメージじゃないだよね。
974 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:21:49 ] 別にプロジェクトと強く結びついてんくても良いんだけど。
975 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:25:37 ] まあハイパークラスなんて配られてないからね。 Apple 謹製の NSTextView, WebView は充分 Hyper な気がするけど。 あと、Cocoa ではクラス派生をする前に大抵の処理は delegate で済む気もする。 (コントローラが標準 view の機能を拡張できるみたいなかんじ) ポトペタでハイパーなコンポーネントののってるページの例をなんか URL おしえてください
976 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 14:33:25 ] ttp://hp.vector.co.jp/authors/VA015730/vcl/vclworld.html ttp://norg1964.hp.infoseek.co.jp/delphianworld/
977 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 00:43:11 ] o ひとつめの URL にあがってるような機能は Cocoa /Carbon API にある気がする o ふたつめのにはいっぱいカスタム GUI コントロールがのってるけど、 あんまり Apple はカスタムコントロールをつくるのは推奨してない気がするし、 そういうことすると OS X ぽくないソフトになりがちで嫌われがちだと思われる
978 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 00:45:43 ] shiira.jp/hmblkappkit/ こういうカッコいいコントロールもあるよ。まあ Apple がまだ公開してない API を再実装した奴だけど、Interface Builder でふつうに配置してクラスの名前をこれにかえるだけで使える
979 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:38:51 ] MacのプロアプリのようなUIにしたければカスタムするしかないよね。 スライダーとか機能的にも不十分だしIBにあるパーツだけじゃ足りなくなってきたからパーツの作り方勉強しなきゃ。
980 名前:・∀・)っ-○◎● mailto:sage [2007/08/08(水) 02:12:08 ] リストボックスをオーナーデータ化するにはどーすりゃいいんだ?
981 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 08:48:20 ] >あんまり Apple はカスタムコントロールをつくるのは推奨してない気がするし、 これが今の時代の開発ではネック。 >そういうことすると OS X ぽくないソフトになりがちで嫌われがちだと思われる だからコントロールを派生して元々OS Xの描画の上に描画を足したり処理を足したりするわけじゃん。
982 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 11:16:36 ] >>979 ProKitでなんとかなるかもしれないけど。
983 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 11:40:52 ] >>981 まあ確かに、機能豊富で、ちゃんと Cocoa の window にマッチするパレット集が一杯おちてたら便利だろうね。 もうちっとデヴェロッパ層が厚くならないとだめかな。
984 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:11:56 ] ええと、そろそろCocoaスレに行ってくれません?
985 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:20:11 ] >>978 この黒パネルはLeopardのIBで実装されてる。
986 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:25:15 ] 次スレ pc11.2ch.net/test/read.cgi/tech/1186543111/
987 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:29:14 ] >>984 Cocoa の話が駄目とすると GNUStep も駄目?
988 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:37:22 ] 漢は黙って objc/Object.h をインポート
989 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 13:39:09 ] >987 AppleがCocoaで新たに組み込んだ関係がうぜ〜って事じゃね? IBの話すんならGORMの話しろや!ってきっといいたいに違いないと思ってるのだが(w あ,クラスライブラリはどうでもいい言語そのものの話をしたいって人だったのかも>984
990 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 14:22:59 ] OOP言語ならクラスライブラリと切り離して話できんわ。
991 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 15:24:09 ] そこでObjective-C標準クラスであるObjectを…
992 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 18:27:56 ] Object.hと同じディレクトリにList.hってのもあるんだけど、 ListもObjective-Cの標準クラス?
993 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:29:02 ] 純粋に Objective-C の話ってなかなか難しいのでは ... Apple の独自拡張も多いし。 Object と NSObject がどっちが「標準」かというと、 一社/一グループの実装だけじゃなくて、 標準を定めた文書が別個に存在するかという意味では Openstep のほうが「標準化」されているのではないかと思わなくもない GCC もせめて GNUStep の non-GUI 部分を一緒に配布してくれればいいのに。
994 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:38:23 ] 基本Java厨で、現在C++で食っていきながら、 Rubyが一番好きかも知れないという俺ですが、 Objective-Cに興味を持っています。 他のOOPLとくらべてどうでしょうか。 メリットとかデメリットとか。
995 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:44:25 ] 実際に運用する上で言語使用だけを他の OOPL とくらべるのは難しい... Cocoa つかうぶんには非常に便利ですよ。 RubyCocoa も Leopard から標準になるので Ruby が いいならそれでいいけれども、API の仕組みはかなり Objective-C に影響されているので、 RubyCocoa を使うための基礎として Obj-C を学ぶのは悪くないと思う GNUStep はちゃんとつかったことがないのですいません C++ を知っているひとのための、C++ と Obj-C の文法の比較は ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf が簡単にまとまってる。英語だけど。
996 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:49:00 ] >>994 CとJavaが使えるなら30分で覚えられるからとりあえず使ってみれ
997 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:51:58 ] ご丁寧にどうもありがとうございます!! Cocoa使ってウハウハにも興味はあるんです。 Win32でどうのこうのに飽きちゃってですね。 言語としても興味津々なんでリンク先熟読します。
998 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:52:59 ] >>996 やってみます! で、998ゲットォ!!
999 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:55:59 ] そういう興味のある人なら Apple のこのあたり Objective-C Language developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html Cocoa Fundamentals Guide developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/index.html が面白いかも。あと他にもいっぱいあるよ: developer.apple.com/documentation/Cocoa/index-date.html いや、GNUStep にリンクはらんで済まんね ...
1000 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:03:19 ] 次スレ立てました Objective-C Part3 pc11.2ch.net/test/read.cgi/tech/1186581730/ 次スレでもみんなよろしく〜
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。