[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 10/07 16:29 / Filesize : 229 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Objective-C



1 名前:デフォルトの名無しさん mailto:sage [05/01/29 16:18:12 ]
ほんとプログラマにとってはMacって
本当に興味が無いOSだよねw

Macでの標準的な言語であるObjective Cのスレすら無いし。
過去にはあったんだろうけど。

321 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 16:04:48 ]
仮想PCの上で動かしたらハードウェアもOKそうだね

322 名前:デフォルトの名無しさん mailto:sage [2005/12/31(土) 17:19:12 ]
Cocoa でゲームつくったらフレームレートがめちゃ低いので
「やっぱ Objective-C は遅いのか、動的バインドだし」とか思ってたが、
ObjectAlloc を使えるようになってただ一つのメモリリークが発見でき、
そこを直したらフレームレートが超改善した。

この場を借りて Obj-C の神様に懺悔しまつ。

323 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 02:12:00 ]
ン年ぶりにユニマガ買ってここにたどり着きました。
appleがdocumentをpdfで提供してるとは知らなんだ
このスレとあわせてこれから読みます

324 名前:デフォルトの名無しさん [2006/01/21(土) 00:44:31 ]
デスクトップの Mac が出るまでに ObjC 勉強しようとした。
Windows しかないので Cygwin の Gcc でお勉強。
…リンクができねぇ。
Cygwin Gcc では ObjC は含まれていないんだと。
cygwin.com/faq/faq.programming.html#faq.programming.objective-c

VMware 上の Linux で出なおします。

325 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 04:32:10 ]
>324
Mingwだっけ?
あっちはどう?
GNUstepのWin版に使われてる位だから動くと思うんだけど。

326 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 08:39:29 ]
GNUstepのWin版インストーラ使えばMingwも入って楽だよ。
まぁLinuxでProjectCenterとかGorm使った方が楽しそうだけど。

327 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 10:16:01 ]
>>320
当時でもドライバ類は困ったチャンだったから今のPCじゃ全滅でしょう。

>>321
VirtualPC上で問題なく動いてます。速度もそれなり。
NEXTSTEP/OPENSTEPなんて今のWindowsのUIから比べるとかなりクソですが。

328 名前:324 mailto:sage [2006/01/21(土) 12:38:00 ]
>325
>326

情報ありがd。
GNUStep でも同様のエラーでますた。

原因は gcc のオプション -lobjc を最後にしていなかったから… orz
オプションの類は前置きする癖がついていて、何度も何度も
gcc -o Sample.exe -lobjc Sample.m
としてました。gcc の使い方から出直しです。

-lobjc 最後にしたら Cygwin でもコンパイル・実行できました。
C をポインタで挫折して Java に逃げ込んだ私ですが、地道に出直します。

ありがとうございました。

329 名前:デフォルトの名無しさん [2006/01/24(火) 09:49:19 ]
Objective-Cの特徴を一言で言うとどんなだろうな。
C++のような複雑怪奇流動的なものじゃなければ
いいんだが。



330 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 11:31:48 ]
>>329
>Objective-Cの特徴を一言で言うと

(Smalltalk + C) / 2

331 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 11:38:14 ]
よく言われるのはこんな感じ。
ObjectiveC,smalltalk メッセージ指向
C++,Java クラス指向

メッセージ指向って何さ、メソッドとどう違うのさという意見もあり、
smalltalk派とC++派の喧嘩(という程でもないが)の種になったりする。

この辺も参考に
ttp://homepage.mac.com/mkino2/oop/messaging.html
ttp://sumim.no-ip.com:8080/wiki/725

332 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 13:40:08 ]
>>331
それは動的、静的と言い換えてもよくない?


333 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 18:13:14 ]
Cなんだけど、スクリプト言語っぽいユルさがある。
ただメモリは解放してあげないといけない
…のが良かったり、悪かったり。

カリカリには行けないけど、気はそんなに緩められず。
こんなんで良いのか?と思いつつ、楽に作れて動いてる。

とても微妙な感じのする言語ですね。


334 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 18:17:14 ]
C から ObjC のメソッドを呼び出すのはどうやるの?

335 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:43:35 ]
>>332
言葉遊びかもしれんが、動的、静的というより、
オブジェクトの結合が粗か密かという方が適切な気がする。
言語研究者や言語オタならうまく説明できるんだろうなあ。

336 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 19:47:19 ]
>>334
Appleの実装ならobjc_msgSend()とか

337 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 20:08:06 ]
>>336
ありがとう。Mac じゃないけど、gcc なんでちょっと試してみます。

338 名前:332 mailto:sage [2006/01/24(火) 20:14:43 ]
>>335
それはやっぱりバインディングが静的か動的かと言ってるように
見えるんだけど、違うのかな。
「オブジェクト同士の結合が疎 」
⇔ 「Cocoa BindingとかDuck Typingが可能」
⇔ 「動的要素大」と。

339 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 22:34:15 ]
オブジェクト同士がメッセージでやりとりしてる感じの言語を作ろう!結果動的に。
みたいな動機の部分と実際の実装(?)ってことじゃないのかな?



340 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 22:47:58 ]
>>339
まあそういうことだあね。どっちに注目するかの差でしかない。

動的ってのは結構なメリットだと思うんだけど、
なんでメッセージ指向は流行らないんだろうな。

341 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:35:14 ]
流行らない理由
・遅い(或は、見るからに遅そう)
・メモリ喰い(ランタイム情報いっぱいくっつける)
・実行時バグは見つけ辛い(静的ならコンパイル時に弾いてくれるのに)
・静的マニアが多い(こいつらが一番問題)

Objective-C はクロージャを捨てたのが間違いだよなぁ。
動的言語としては中途半端な感じ。

342 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:41:26 ]
>>295
亀レスだが、NSXML が使えるんじゃないかな...

343 名前:デフォルトの名無しさん mailto:sage [2006/01/24(火) 23:44:15 ]
>>341
>・実行時バグは見つけ辛い(静的ならコンパイル時に弾いてくれるのに)
OS X 標準だとクラッシュしたらスタックトレースが出て、
どのメソッドのどの行で死んだかすぐわかるのでそれほど問題ではないっす。


344 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 00:27:04 ]
テストが完全ならね。

345 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 01:15:14 ]
>>338
重要なのは言語ではない。その背景にある概念である。 by グラディ・ブーチ

実装面での話に置き換えようとした場合(きっとそれはたいてい成功しますが)、
もとの言葉の意図するところとは違ったところに着地するような気がします。

とりあえず、メッセージングについて知りたければ、その発案者であるケイの
書いたものを読むのがいいと思います。

lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html
www.purl.org/stefan_ram/pub/doc_kay_oop_en
gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html

それでもなお、そんなの「動的」でいいじゃん、と 332 が思うのならそれまでで。

346 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 01:22:54 ]
メッセージが静的に定義出来るなら、オブジェクト間の関係で例外を考えなくてもいいのになぁ。

347 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 10:45:09 ]
>>341
インスタンス変数の動的追加が出来れば、クロージャじゃなくてもいい。


348 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 01:10:35 ]
>>347
メソッドの動的追加も出来なきゃ嫌なんだが。あと、関数リテラルも。

349 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 10:10:38 ]
>>348
ランタイム関数で出来なかったっけ?



350 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 07:48:00 ]
インテル版の Mac では Objective-C ではなく C++ ベースの開発環境になるみたいでつね。
とても悲しい。  Objective-C サポートしてくれ〜>インテル


351 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 09:13:12 ]
>>350
日本語おかしいけど、どうせ ICC の話だろ。もう一回寝ろ。

352 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 04:56:07 ]
>>349
出来るなら、マジやり方教えて欲しい。

353 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 16:47:37 ]
>>350
本当に???
過去の資産とか、どうするつもりなんだろう1?

354 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 17:29:17 ]
>>353
騙されてんじゃねーよ。ちょっとは自分で調べれ。

355 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 20:12:10 ]
メソッドの動的追加は class_addMethods で出来そうだな。

356 名前:デフォルトの名無しさん [2006/01/28(土) 23:46:24 ]
>>354
非存在の証明は原理的に不可能
ソフトウエア開発者の常識

357 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 23:48:10 ]
ゴバクかな...?

358 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 19:10:20 ]
vorbisのコメントの読み出しは出来たけど書き込みってどうやったらいい?

359 名前:358 mailto:sage [2006/01/29(日) 19:34:51 ]
ごめん・・・誤爆した・・・



360 名前:デフォルトの名無しさん [2006/01/31(火) 01:22:05 ]
Objective-C で構文解析するときってどのライブラリ/ツールつかうんでしょ?
ぐぐったら GSANTRL なるものが出てきたんだけど、情報が少ないのとサンプルが全く無いのでどうしたもんかなと。

361 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 04:55:54 ]
C との違いがほとんどないので、自前で C に落とすプリプロセッサを書いて
生成されたコードをほかのツールにかけるとか?駄目か。

362 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 05:07:18 ]
GSANTLR ね。使った事は無いけど...

363 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 16:20:09 ]
GNU GLOBAL で使えるようにしてくれ>>だれか

364 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 00:26:28 ]
>361

アドバイスありがと。

> C との違いがほとんどないので、
=> Objective-C は C との違いがほとんど無いので、
==> Objective-C は C のコードも利用できるので

> 自前で C に落とすプリプロセッサを書いて
=> BNF などの構文定義から 自前で C に落とすプリプロセッサを書いて
==> BNF などの構文定義から、構文解析の対象を入力として適当な構造体を作る
   C のコードを、生成するプリプロセッサを自前で書いて

Objective-C は C のコードも利用できるので、BNF などの構文定義から、
構文解析の対象を入力として適当な構造体を作る C のコードを、
生成するプリプロセッサを自前で書いて、生成されたコードをほかの
ツールにかけるとか?

すまん、がんばったけどアドバイスを理解できんです。なんとなくだけど、
 Objective-C は C のコードを利用できるから、lex/yacc なり flex/bison なりで
 生成した C コードを Objective-C から利用すればいいんじゃん?
ってことですかね?

365 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 00:43:58 ]
>>361 は "Objective-C の構文" の解析の話をしてるんじゃないの?
俺もそういう質問だと思ってたけど。勘違いだったらスマソ。

Objective-C を使って構文解析するという話だったら、lex/yacc で
良いと思うよ。

366 名前:360 mailto:sage [2006/02/01(水) 01:04:39 ]
>365

すんません。言葉足らずでした。
"Objective-C を使って構文解析する" という話でした。
ありがとう。

>361
質問悪かったです。すまぬ。


367 名前:361 mailto:sage [2006/02/01(水) 02:32:50 ]
こちらこそ質問を誤解してすまそ


368 名前:デフォルトの名無しさん [2006/02/01(水) 03:43:04 ]
こちらこそただ見てるだけですまそ

369 名前:デフォルトの名無しさん [2006/02/09(木) 12:45:22 ]
生きててスマソ
しかも遅レスで超スマソ



370 名前:デフォルトの名無しさん [2006/02/10(金) 13:32:31 ]
Objective-Cって、例外(try-catch)がつかえないんだっけ?
クロージャはなくてもなんとかするけど、例外がないとちょっとつらい。

371 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 14:16:13 ]
素の Objective-C にはないよ。

NextSTEP 系列なら NS_DURING / NS_HANDLER / NS_ENDHANDLER
Panther 以降の Cocoa なら @try / @catch (/ @finally)

372 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 15:14:07 ]
#すれ違いスマン
クロージャってCommandパターンのことか?

373 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 17:17:40 ]
Objective-C は Apple のものじゃないの?
Stepstone -> NeXT -> Apple って権利が移ってると思ってたんだけど。

Apple が拡張した Objective-C のみが Objective-C って名乗れるのでは?

374 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 17:22:53 ]
>>371
さんくす。@try/@catch/@finallyか。あたらなディレクティブが増えてるんだな。
これって、Foundationでも使われているの?
つまりPanthor以降のCocoaでは@try/@catch/@finallyをふんだんに使っているのか気になる。
例外処理をつかう・使わないではプログラミングスタイルが大きく違うので。

>>372
違う。イメージはなんとなくわからなくもないが。
クロージャは手続きと、それがアクセス可能な変数をいっしょにしたもの。
クロージャを使うと、手続き(処理)をデータとして扱う事ができ、メソッドの引数に渡したりできる。
つまり引数として整数や文字列を渡すのと同じ感覚で手続き(処理)を渡す事が出来る。
LispやSchemeでは関数がクロージャ。RubyやSmalltalkではブロックがクロージャ。

コマンドパターンも処理をオブジェクトとするための手法ではあるんだけど、外の変数にアクセスできないため、クロージャとはふつういわない。
つか、クロージャは言語の機能、コマンドパターンはデザインパターンのひとつ。比較する対象が違う。

375 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 23:09:46 ]
>>374
Smalltalkのブロックは最初びっくらこいた。
if文がメッセージで、その引数がブロックなんだよな確か。
あそこまでドラスティックにはやりたかないけど。

376 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 00:47:21 ]
クロージャがあればインスタンス毎に少しだけ振る舞いを変えたい時に
便利なのにね。button を押した時の callback を button 毎に設定する
時とか、イテレーションの処理本体を引数で渡したりとか。

377 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 00:51:08 ]
trueオブジェクトにifTrueのメッセージを送って引数のブロックを実行する、じゃなかったっけ?
数字なんかのリテラルにもメッセージをおくって計算させてたと思う。

個人的にネタで「オブジェクト指向ならこれくらいしないとなぁ」って言ってたレベルより徹底してる

378 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 01:33:25 ]
例外って@NSException??

379 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 23:57:20 ]
>>376
後者は兎も角、前者は Cocoa ではアレだな、
ボタンのメソッドでアクションを登録するというよりは、
Interface Builder でボタンからコントローラにコネクションを張る
(どのコントローラのどのメソッドを実行するか指定する)ので...

まあクロージャあったほうが面白いけど。



380 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 07:18:26 ]
>>379
同意。376はVisualBasicが頭にあるんじゃないかな。

381 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 14:41:38 ]
>>374
@try関係は言語に組み込まれただけで、NS_DURINGとかのマクロと互換性あり。
Cocoaのほとんどのメソッドが例外を投げない状況に変化は無い。

>>372
クロージャは、下記が判り易いと思う。
ttp://kmaebashi.com/programmer/devlang/object.html


382 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 20:15:15 ]
油断してたら Dylan のスレが落ちてた…

383 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 01:24:04 ]
Javaの無名クラスはクロージャの一種ですか

384 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 06:54:50 ]
>>383
違う。無名クラスからは生成された箇所のローカル変数にアクセスできない。
finalつけた変数にはアクセスできるらしいけど。

385 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 12:03:58 ]
それ、定数だからな。
そこそこ便利ではあるけど、クロージャではないね。
もっとも、クロージャのある言語にも無名クラスは欲しい(できれば
レキシカル環境へのアクセスのあるクロージャとしての構成で)。


386 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 23:30:07 ]
>>385
クロージャとは別に無名クラスが欲しい場面を教えてくれ。
参考にする。

387 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 06:05:48 ]
ごめん、最近はJava書いてないからすぐには思いあたらないの。



388 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 06:28:42 ]
Javaには毎日触っているが、クロージャのある言語に触る機会がない。
Schemeでも勉強してみようかな。

389 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 08:14:43 ]
Groovyでいいんでね?それかJavaScript



390 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 02:22:04 ]
>>382
なつかしいね。まだ開発やってんのかな?

391 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 13:49:29 ]
>390
まだ続いてるよ(笑)
Gwydion Dylanは今はgccのバージョンアップ絡み?で停滞気味かね?
OpenDylan(Functional Developerのオープン版)に主力メンバーが注力してる感じ。
が、svcとか見る人でないと進展はないようにしか見えない罠(w

392 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 21:21:16 ]
>>382
どんな言語なの?
つか、このすれとはどういう関係で?

393 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 21:33:41 ]
S式を使わない LISP …といったふぜいの言語。
Apple つながりでね。

394 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 15:09:24 ]
www.na.rim.or.jp/~kusumoto/dylan.html
ずいぶんと古い文書が見つかった

395 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 00:15:18 ]
今なら
www.opendylan.org/
こことか、
monday.sourceforge.net/wiki/
ここらから眺めていくといいんじゃないだろか?



396 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 02:38:25 ]
dylan 刷れ立てる?利用者いないだろうけど。

397 名前:デフォルトの名無しさん mailto:sage [2006/02/18(土) 09:54:50 ]
必要ないだろ。
それより、るびまの他言語訪問、今回はDylanらしい。

398 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 14:04:44 ]
Objective-Cから.NET弄れれば面白いのに

399 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 16:42:21 ]
>>396
前あったが落ちた。



400 名前:デフォルトの名無しさん mailto:sage [2006/02/22(水) 23:27:34 ]
>>398
何が面白いのか理解出来んが、MONO に call-in するインターフェイスを
書けば良いんじゃないの。

401 名前:デフォルトの名無しさん mailto:とりあえずageときますよ [2006/02/26(日) 19:25:31 ]
[[myFriend girlfiend] retain];

402 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 19:48:55 ]
test

403 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 03:09:51 ]
>>401
girlfriend を autorelease して渡す
奇特な友人は居ないと思われ...

404 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 10:46:54 ]
retainして他に渡すのも変じゃないか?

405 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 19:06:40 ]
>>403
ちょっと彼女に会わせてあげる、みたいなノリじゃね?

406 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 20:52:00 ]
myGirlfriend = [[myFriend girlFriend] retain];
[myFriend release];
myFriend = nil;

407 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 21:14:14 ]
/* myFriendの復讐 */

- (nil)release
{
 [>>406 dealloc];
 [super release];
}

408 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 05:32:07 ]
girlFriend: が nil を返さない保証はどこにあるのさ?

409 名前:デフォルトの名無しさん mailto:sage [2006/03/04(土) 00:41:33 ]
メソッドそのものが無かったりして…



410 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 18:51:45 ]
ないものは作る
@implementation girlFriend
後はまかせた

411 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 19:28:07 ]
いや、girlFriendはインスタンス変数だと思うが。
クラスはGirlですか

412 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 19:38:36 ]
@implementation Human (GirlFriendInformalProtocol)

413 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:09:57 ]
- (id)initWithBoyFriend:(Human *)aBoyFriend
{
 self = [super init];
 if(!self) return nil;
 if( [aBoyFriend height] < 170.0 ) return nil;

 boyFriend = [aBoyFriend retain];
 return self;
}

414 名前:デフォルトの名無しさん [2006/03/09(木) 20:17:14 ]
はじめてCocoaでSocketのプログラムを書いてみました

asyncSocket
smallsocket
等ライブラリがあるようですが、どれを使っても同じ問題が発生しています

問題
Javaで書かれたサーバーに接続し、Objective-Cクライアント側のsocketとstreamをcloseしてもサーバー側では分からないのです。
他の言語でクライアント側を書いた時は、クライアント側でcloseすると、サーバー側で検知されました。
これってOSXでは通常の動作でしょうか?どのようにしたら、サーバー側で検知できるでしょうか。
サーバー側のsocketに何かプログラムが必要でしょうか。
現在は、javaサーバー側のsocketでタイムアウトが発生するまで検知されません。

どなたか教えて頂けませんか。




415 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 22:36:32 ]
いわゆるひとつのマルチってやつですか

416 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:06:52 ]
そもそも、クライアント側のクローズをサーバで検出する事が間違い。
LANの外に出るとほとんど機能しない。
クライアントが先に送信バイト数を送るか、最後に終了コードを送って、サーバ側に切断させるのが正解。
またサーバ側は、タイムアウトでも切断するようにする。

417 名前:デフォルトの名無しさん [2006/03/10(金) 13:01:38 ]
最後に終了コードを送るようにしていますが

closeが検出されないことが驚きでした

このような動作は Objective-C+OSX だけではないでしょうか

Realbasicでも検出されました
javaやWINDOWS環境でも検出されます

何か間違っているでしょうか








418 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 17:15:46 ]
何で通信してるか知らないけど、明示的にclose送ってみたら?
その後閉じる。

419 名前:デフォルトの名無しさん [2006/03/10(金) 17:31:33 ]
終了コードを送る場合 文字コードとかあるじゃないですか

なので とりあえず close だけで 閉じても サーバー側ではわからないのですね

正常にクライアントソケットを閉じてるのですからサーバーソケット側で
他の言語環境と同じように検知したいのですが

こういう動作はObjective-C+OSXが初めてです

なぜ検知をしたいかというと不正なクライアントを識別する機能と関係しています

もし検知されないとしたら Objective-C+OSX のクライアントから 適当なサーバーに繰り返し接続して
放置しておくだけで DoS攻撃ができちゃいますよ




420 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 19:18:15 ]
言語のせいなのか?

421 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 19:25:46 ]
ほほうCocoaアプリのWebブラウザは全てDoS攻撃可能ですか
帰れ馬鹿。

422 名前:デフォルトの名無しさん [2006/03/10(金) 19:45:48 ]
だれも CocoaアプリのWebブラウザ全て なんて言っていませんよ
これからもずっと狭い世界で生きていってください

423 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:02:22 ]
Objective-C+OSXのクライアント、なんて書くからだろ。そんなの山ほどあるよ。
そしてキミのトラブルwに類似した例で困ってる人なんか、ググっても誰も見つからなかったんだろ?
そこで気付くべきだ。狭い世界で生きてるのは自分だとなw


424 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:07:46 ]
DoSの対処は、同一ホスト接続時ウェイトや最大接続数でやるものだ。
だいたいソケットのcloseは、ルータを跨ぐと伝わらないからインターネットでは使えない。
それに、終了コードで文字コードとかって何の話だ。
telnetで試せないような物を作っている気配がするぞ。
コマンドストリームなら英文字列のコマンドを送る物だし、データストリームは先にバイト数を通知する物だ。
まずネットワークプログラムの本で、定石なプロトコルの作り方を勉強した方が早いと思うぞ。

あとうまくいかない時は、まっさきに自分の不勉強を疑え。
そんな弱い心だと、腕が上がらんぞ。


425 名前:デフォルトの名無しさん [2006/03/10(金) 20:44:56 ]
コメントありがとう

>ソケットのcloseは、ルータを跨ぐと伝わらない
Objective-C+OSX 以外は伝わりますよ
java RealBasic その他ウィンドウズの環境でも



426 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 21:17:32 ]
プロトコルによる。

427 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 21:58:46 ]
>>419
>終了コードを送る場合 文字コードとかあるじゃないですか
意味わかんね。自分の中で話閉じるな。

428 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:00:48 ]
>>419
>なぜ検知をしたいかというと不正なクライアントを識別する機能と関係しています
だったら、なぜサーバからクローズしない。

429 名前:デフォルトの名無しさん [2006/03/10(金) 22:35:41 ]
終了コード云々はプロトコルの問題です 文字コード云々もプロトコルに含まれます
socketのcloseとdisconnectの仕様についてが元々の質問です

Objective-C+OSX 以外のsocketの仕様については一部述べています
その上でObjective-C+OSXのsocketの仕様についてお尋ねしているのです

問題を切り分けた上で質問しているということです。

>だったら、なぜサーバからクローズしない。
httpのように直ぐ切断するものでなくて 接続が続くタイプのサーバーだからです






430 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:40:42 ]
だったら、ふつうにサーバに切断要求を出せばいい
プロトコルも当然自分で規定してるんだろう?
切断用のコマンドなりなんなり決めればいいじゃないか

431 名前:デフォルトの名無しさん [2006/03/10(金) 22:50:12 ]
切断用のコマンドも決めていますよ

ただsocketの段階で他の環境と動作が異なっているので 質問しました

プロトコルがテキストベースの場合CRLFなどを読むコードを書かないとsocketの切断処理を書けない
のであれば 特殊だと思いましたので 間違っているのかどうか確認したかったのです

とりあえず動かすということでなくて 問題を切り分けした上で プロトコル関係なく

OSXのsocketの動作として どうなのかが質問のポイントです

432 名前:デフォルトの名無しさん [2006/03/10(金) 22:52:55 ]
誤:プロトコルがテキストベースの場合CRLFなどを読むコードを書かないとsocketの切断処理を書けない
のであれば
正:プロトコルについて いろいろ決めて そのコードを書かないとsocketの切断処理を書けない
のであれば

433 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:58:21 ]
TCP socketと自分プロトコルのクローズを混同してる。
RealBasic, Java, Windows環境でも検出されるというが、
言語環境とOS環境も混同してる。
当然、UNIX Cの socketでも確認したんだよな?

434 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:06:26 ]
なあ、とりあえずObjective-C関係なくないか?
ネットワークプログラミングのスレとかに移動してもらえると助かるのだが。

435 名前:デフォルトの名無しさん [2006/03/10(金) 23:06:35 ]
混同なんてしていません
あなたが勝手に間違っているだけとしか 思えませんが

UNIX C の socket とは何ですか?
なぜ そんなもので確認する必要があるのですか?

436 名前:デフォルトの名無しさん [2006/03/10(金) 23:07:04 ]
UNIX Cの socketだけ まだです

と言ってもObjective-Cから中で呼び出しているようですが 今度確認してみます

Windowsの言語と言っても沢山ありますから ウィンドウズ環境とまとめただけです

TCP socketのクローズについて聞いているのですが
プロトコルのクローズについての返答が多いです

437 名前:デフォルトの名無しさん [2006/03/10(金) 23:09:58 ]
偽者行為して何になる>435
こういうやつが多いのですか マカーは

438 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:17:50 ]
なんでマカーという単語が出てくるんだ。

439 名前:デフォルトの名無しさん [2006/03/10(金) 23:22:39 ]
新マックの方にも書いたのですが
質問の意味が直ぐわかる方が半分ぐらい
うざがってか なんでか からむ人が半分ぐらい
という感じだったからです



440 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 00:16:27 ]
socketをクローズした時に、TCP FINが飛ばないって話ですか。
単にライブラリの誤用だと思いますけど。
ライブラリは止めて、NSStreamかCFStreamを直接使ってみたらどうです?


441 名前:デフォルトの名無しさん [2006/03/11(土) 00:38:06 ]
ありがとうございます

ライブラリといってもソースを読みましたが単純なものでしたが
できるだけ低レベルAPIでやってみます






442 名前:440 mailto:sage [2006/03/11(土) 01:08:38 ]
プロトコルで皆に突かれている事も妥当なので、再考した方が良いですよ。
クライアントが終了コマンドを送ってそのままクローズすると、コマンドが届かなかったりします。
切断は、終了コマンドを受け取ったサーバ側が行う事が定石です。


443 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 01:10:20 ]
いつまでもサーバが待ってる方が変だと思う

444 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 01:32:31 ]
日本語は空白じゃなくて「、」で区切るんだよ。

445 名前:デフォルトの名無しさん [2006/03/11(土) 05:51:19 ]
基本的に切断はサーバ側で行っていますが
Objective-C+OSXのsocketでcloseを検知しませんでしたので質問しました
予期しないクライアントの接続方法についてサーバー側では常に定石外のことも考えるべきだと思います
。を使わない時は、も使いません いつも使わないわけではありません

失礼しました

446 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 14:40:01 ]
OS X のソケットといっても BSD と異なるとは思えないけれど。


447 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 00:36:57 ]
さて、Objective-Cの話に戻ろうか

448 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 21:03:39 ]
-- I'm going down to the local autorelease pool for a quick swim, anyone care to join?

-- not me. you never know what's been released in there..

449 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 08:03:12 ]
-- 近所の autorelease プールにちょっと泳ぎに行こうと思うんだけど、誰か一緒に行かない?

-- 僕は遠慮しとくよ。 何がリリースされてるか判らないからね。




450 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:30:52 ]
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?

451 名前:デフォルトの名無しさん mailto:sage [2006/03/25(土) 23:22:17 ]
[self hosyu];

452 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 10:25:14 ]
 ∧||∧   
(  ⌒ ヽ MonaOSにlibobjc移植してみたけどコンパイルできない・・・
 ∪ 。ノ 
  ∪∪

453 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 11:45:35 ]
MonaOSってObjective-Cで書かれてんの?

454 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 12:43:09 ]
>>453
C++とかC#とかぐちゃぐちゃだよ

単にObjective-Cが使いたかっただけなんだ

455 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 18:55:29 ]
Objective-C良いよね。

456 名前:デフォルトの名無しさん mailto:sage [2006/03/28(火) 19:10:57 ]
だよね。

457 名前:デフォルトの名無しさん mailto:sage [2006/03/29(水) 00:51:28 ]
[[NXApp alloc] init] とか見ると快感すら覚える。

458 名前:デフォルトの名無しさん mailto:sage [2006/03/29(水) 20:49:22 ]
[[Object alloc] init] と [Object new] はどうちがいますか?

459 名前:デフォルトの名無しさん mailto:sage [2006/03/30(木) 09:50:39 ]
>>Object<<
どっちも使えねぇという意味で違わない



460 名前:デフォルトの名無しさん mailto:sage [2006/03/30(木) 19:29:03 ]
NXApp ってあんた何年前の話よ。

alloc] init] と new ] の違いは、
後者は普通使わなくて前者をよく使うというだけでは、慣習的に。

461 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 01:58:47 ]
俺の人生はNeXT Computer Inc.が消滅した時に終わったから...

462 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 10:24:39 ]
すろやまさん?

463 名前:デフォルトの名無しさん [2006/04/02(日) 13:46:30 ]
荻原本復刊記念age

464 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 15:01:11 ]
どう変わるかな、しかし高いので立ち読みだけにします。


465 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 15:14:50 ]
萩原盆とはなんぞや

466 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 16:00:49 ]
>>462
いい読みだが、漏れはあんな負け組さんじゃない。

467 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 16:51:42 ]
>>265
これだろ?
「Objective‐C―MacOS Xプログラミング入門 MacOS Xプログラミング入門」
荻原 剛志 (著)

Human Interface Guidelines も復刊してくれ

468 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 19:09:49 ]
>>466 人生終わってるのに勝ち組カコイイー

469 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 19:53:05 ]
すろやまさん乙



470 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 22:32:34 ]
よく+(id)sharedInstanceみたいな感じでインスタンスをひとつだけ作ってそれを返すメソッドがあるけど、
あれってどうやって実装してるの?

471 名前:デフォルトの名無しさん mailto:sage [2006/04/02(日) 23:36:49 ]

単純にsingletonじゃねーの?

if (_object==nil){
_object = [[Hoge alloc] init];
}
return _object;

Hoge alloc, Hoge initは非公開にしてこんなかんじ?
もうちょっといろいろしてると思うけど
#そういう話じゃない?

472 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 00:26:41 ]
ttp://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/chapter_3_section_10.html

473 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 09:31:45 ]
Javaじゃあるまいし、initを非公開になんてしないんじゃね?
普通にinitでもファイルスタティックな変数に入れた共有インスタンスを返せばいい。

474 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 13:10:45 ]
Amazon登場

Objective-C Mac OS Xプログラミング
荻原 剛志 (著)
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797333340/


475 名前:デフォルトの名無しさん mailto:sage [2006/04/03(月) 19:53:46 ]
ありがとうございます。
Singletonっていうんですね。デザインパターンについてはあまり勉強してませんでした。

476 名前:デフォルトの名無しさん [2006/04/03(月) 20:27:51 ]
>>474
前作を持っている人は購入の必要はなさそうですか?


477 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 03:47:17 ]
Objective-C++ で boostって使えます?
ヘッダインクルードすると大量のエラーが出ますが
やっぱりアウト?

478 名前:デフォルトの名無しさん mailto:sage [2006/04/05(水) 06:57:20 ]
externはしたのか。

479 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 18:24:50 ]
レビューまだー?



480 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 20:34:31 ]
せめて目次出して...

481 名前:デフォルトの名無しさん mailto:sage [2006/04/09(日) 01:15:38 ]
>>480
前の本との比較としては
・CHAP13「アプリケーションの構造」CHAP19「キー値コーディング」が追加。
・CHAP11「オブジェクトのコピーと保存」にアーカイブとプロパティリストについて追加
・第8章「例題:カードゲームのシミュレーション」が削除
という感じ。ディープすぎる内容が本文からコラムに移されていたりと
読みやすさとしても良くなってると思うよ。

482 名前:デフォルトの名無しさん [2006/04/09(日) 07:59:45 ]
前の持ってたらいらねーかなー
高いしなー

483 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 15:22:51 ]
なぜか前の2冊持ってる俺

484 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 15:57:46 ]
>>483
ヤフオクで高値で売ろうとしていたが、
復刊に気付かず売り抜けられなかったってこと?

485 名前:デフォルトの名無しさん [2006/04/11(火) 16:45:44 ]
萩原本買ってきた。
wktkしながら読みはじめる所。
次は、ヒレガス本のTiger版が欲しい。
つか、TigerであれだけAPIが増えたのに、それ関係の書籍が出ていないし。

486 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 17:21:24 ]
出ないだろう。Macプログラム本は基本的にはどこの出版社も
出したがらない。mixiのどこだったか忘れたけど2年がかりで
Macプログラム本を書いたのにボツにされた人がいた、とか
書いてあったよ。

487 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 18:22:28 ]
ヒレガスじゃないけど、Tiger本出るよ。

488 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 18:42:14 ]
>>476
是非Web公開してほしいじゃないか

489 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 19:06:19 ]
>>486
んなこたあない
Macプログラム本は種類が少ないから結構売れる。



490 名前:デフォルトの名無しさん mailto:sage [2006/04/11(火) 20:48:52 ]
>>481
じゃあおまえが出版社つくって売ってやれ

491 名前:デフォルトの名無しさん [2006/04/14(金) 11:37:31 ]
>>487
ソースきぼん。

492 名前:デフォルトの名無しさん [2006/04/14(金) 17:03:33 ]
CHAP15の例外とエラーは、Tiger向けにかなり書き直されてる。
購入推奨。
ただし、スレッド周りダメっぽい。
volatileとメモリバリアの区別が付いていないように読める。

493 名前:デフォルトの名無しさん mailto:sage [2006/04/14(金) 23:25:05 ]
>>491
本人か周りの人だろ。ローカスか広文かBNN
って、全部出版社潰れたんだっけ?


494 名前:デフォルトの名無しさん mailto:sage [2006/04/16(日) 14:31:49 ]
volatileって、実行コードになった時、該当変数をレジスタで保持しないって指定だよね?
たしか、別タスクで書き替えられる可能性のある変数の変更がちゃんと反映されるように保障する指定

495 名前:デフォルトの名無しさん mailto:sage [2006/04/16(日) 15:16:35 ]
>>494
それもあるけど最適化もしない。

while (i--);

なんて文は大抵最適化で消されるけど、
iがvolatileだったら消されずに実行される。

496 名前:デフォルトの名無しさん [2006/04/17(月) 00:03:09 ]
それ買ってObjective-Cっての勉強しようと思ったが、
値段見て愕然とした、米買えなくなるから諦めた。

497 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 00:23:18 ]
>>494
違う。最適化コードの出力を禁止するだけ。
組み込みとかでメモリにI/Oが割当たっている時に、
書き込みが省略されたりすると意味が変わってしまう時に使う。
一方ハードウェアの実行時最適化(命令の並べ替え)には影響しないので、
マルッチスレッド下での排他制御には意味を持たない。
メモリバリアとか、メモリの可視性とかを調べよう。

498 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 01:04:49 ]
>>497
>>494は排他なんて言ってない。
変更が反映されると言ってるだけだから、参照だけだろ。
むしろvolatileだけで排他なんかかけたら問題だw

499 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 08:49:31 ]
>>498
違う。参照も保証されない。
お前もメモリバリアを勉強し直せ。



500 名前:デフォルトの名無しさん [2006/04/17(月) 09:23:37 ]
CのvolatileとJavaのvolatileが混同されているな

501 名前:デフォルトの名無しさん [2006/04/17(月) 12:15:16 ]
>>499
そうね。
Cの場合は下記を参照
www.yuasa.kuis.kyoto-u.ac.jp/~yasugi/4/par.html
Javaはこのあたり参照
www.netgene.co.jp/java/concurrentTips.html
C/C++の場合は、volatileはスレッド間のメモリ可視制御を何もやっていないけど、
Javaについては意味がある。

現状Cocoaの場合、インラインアセンブラでメモリバリアを差し込むか、
メモリバリアを入れるOSコールを呼び出す必要がある。
Cocoaが下請けに使っているpthreadについては、「メモリ同期を行う関数」一覧があるので調べられる。
が、Cocoaのどのクラスのどのメソッドが該当するのかは、ドキュメントが見当たらないので推測になる。

念のために書いておくが、494の認識はマルチプロセッサ登場前は概ね正解だった(それでもCPUによる)。
そのため嘘を書いている本は大量に残っている。
ちゃんとした本はあまり無いが、Effective C++を書いたエロイ人のドキュメントもあるので、
英語が読める人には推奨しておく。
www.nwcpp.org/Downloads/2004/DCLP_notes.pdf

502 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 16:08:59 ]
Objective-C の @synchronized ではいかんの?

マルチスレッド書いたことないのですいません

503 名前:デフォルトの名無しさん [2006/04/17(月) 17:02:49 ]
>>502
問題無い。lock系の操作はメモリバリアが入ってる。
ダメなのは、「4バイト以下のvolatile変数を使えばロックを使わないで済む」という勘違い。
複数のスレッドが変数にアクセスする場合の選択支は二つあって、
・常にlockして読み書きする。
・読み書きのポイントにメモリバリアを入れる。
のどちらか。
後者の方が性能面で有利だけど、前者を使う方がミスが少ない。
@synchronizedを使うのが一番確実。

ちなみにダメな理由を大雑把に説明すると、最近のCPUはアセンブラコードの順番を勝手に入れ替えて最適化処理をやっている。
その結果、コード上とは異なる順番でメモリ上の変数が書き換わったりしている。
これは単一のCPUから見る限り問題無い(ように最適化されてる)のだけど、他のCPUで動作するスレッドから見ると不味い事になる。
例えば、カウンタとフラグに関係を持たせたりしていると、タイミング次第で誤動作してしまう。
他にもCPU単位にメモリキャッシュがあったりするので、一部の変数の書き換えだけが延々と他のCPUに見えない時もある。

504 名前:デフォルトの名無しさん [2006/04/17(月) 17:33:08 ]
津波に@synchronizedとNSLock系の上手な使い方について詳しい解説はございませんかのう
その・・・日本語で・・・

505 名前:デフォルトの名無しさん [2006/04/17(月) 18:00:46 ]
>>540
期待値に達しているか判らないが、萩原本にはNSLock関係も載っている。
コラムのvolatile関係を読み飛ばせば問題無いのでは無いかと思う。

506 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 20:46:35 ]
買っては見たものの、4200円は高杉だろ。

507 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 21:22:31 ]
なんだ?
リア工房の俺でも買えたぞ

508 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 21:57:51 ]
プログラム系の書籍で4桁ぐらいでグダグダいってたら全然買えない
素直に諦めろ

509 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 22:05:04 ]
いや、あの内容で4200円かと思うとつい。



510 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 22:38:15 ]
パチスロの台の前に30分居たと思えば安いものだ。


511 名前:デフォルトの名無しさん mailto:sage [2006/04/17(月) 23:59:04 ]
抜きの1/4と思(ry

512 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 00:38:33 ]
時間を買うのであれば安いだろ

513 名前:デフォルトの名無しさん [2006/04/18(火) 07:02:47 ]
米と比べちゃうよね…

514 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 08:59:26 ]
萩本は一ヶ月分の米に相当するということでしょうか。

515 名前:デフォルトの名無しさん mailto:sage [2006/04/18(火) 19:43:49 ]
米一俵の精神で頑張ってくれたまえ。


516 名前:デフォルトの名無しさん mailto:sage [2006/04/24(月) 21:07:27 ]
HMDTのTiger本きたね

517 名前:デフォルトの名無しさん [2006/04/25(火) 01:18:54 ]
まだかじった程度だけど、
やっぱC系の言語って基本的に趣味の領域なのかなと。
大規模開発だと「プログラマに任せる」っていう設計思想は
危険すぎるから。

「これで、Objective-Cのオブジェクト型は、原理的に動的型であり、
静的な型は目安にすぎないことが理解できただろう。
言語として型の厳密性を保証することはなく、適切なオブジェクトが
代入させるかどうかの判断は、プログラマやフレームワークにまかされることに
なる。実際にコードを書いてみると、このいわばルーズな文法が、非常に
楽であることに気づく。

しかし、次のような疑問も浮かぶだろう。そんないい加減なコンパイルで、
本当に実行時大丈夫なのか、と。これに対しては、次のように答えることが
できる。正しいオブジェクトが渡るかどうかはプログラマが保証することで
あり、ある程度の経験を積めば、基本的には大丈夫だろう、と。 」

なんてことを自信満々に言っちゃってる『ダイナミックObjective-C』の
作者さんはきっと企業内でコード書いたことないんだろうなあ。

ガベコレも導入するみたいだけど、なぜ Java を捨てたのか?Jobs との因縁か?w
こんなマイナー言語をメインに据える Apple ってソフト自社生産の任天堂路線?

デザイン的に洗練されれば Windows でもいいのに、Vista のスタートボタンを
糞にした MS に未来はないよ。とほほ



518 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 01:26:51 ]
企業の業務用アプリケーションを構築する際にプロジェクト内に
一定比率で存在するへたれプログラマを相手にしてないんじゃね? > Objective-C の適用領域

519 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 02:40:51 ]
>>517
Java は捨てていないし、小規模開発が趣味の世界ではない訳だが。
型云々も大事だけれど、個人的にはクロージャを捨てたのが残念。



520 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 04:32:44 ]
>517
著者は企業プログラマじゃなかったっけ?

521 名前:デフォルトの名無しさん [2006/04/25(火) 06:47:31 ]
>>519
>Java は捨てていないし
developer.apple.com/documentation/Cocoa/Conceptual/LanguageIntegration/index.html

Important: Features added to Cocoa in Mac OS X versions later than 10.4 will not be added to
the Cocoa-Java programming interface. Therefore, you should develop Cocoa applications using
Objective-C to take advantage of existing and upcoming Cocoa features.


522 名前:デフォルトの名無しさん [2006/04/25(火) 06:54:18 ]
>>518
型チェックがあるおかげで、へたれでもとりあえず動くものが作れるってのは
企業にとってプラスなのかマイナスなのか。

523 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 08:07:35 ]
>>522

「型チェックがあるおかげで、へたれでもとりあえず動くものが作れる」→×
「型チェックがあるおかげで、へたれがコンパイルを通すのに時間がかかり、スケジュールが遅れる」→○

へたれが作ったものはコンパイルできるってだけで、動くって言いきるには無理があるぞ。

Objective-C ってーか動的な型付け言語は、「プログラマ==ユーザ」という環境下で最大のメリットが
出てくるもんだと思う。


524 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 08:20:11 ]
id嫌い
便利なのは認めるけど、自分をあんまり信じられないから
コンパイル時の型チェックで内部変更の変更必要箇所を探させてたから
チェック方法が1つ減るから。

#Squeak(Smalltalk)も同じ理由で苦手

525 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 09:29:04 ]
>521
「とりあえず今までどおり使えるけど、Javaはこれ以後サポートしないよ」
っていうのは、Javaを半ば捨てたのと一緒では?

>523
誰かが言ってたんだけど
「どんなプログラマでもJavaでは平均的なプログラマになれる」
「LISPではプログラマは力量にあったプログラムしか書けない」
というのがあった。Javaだったらヘタレを雇っても安心、というのはある。
Obj-Cだったら能力のあるプログラマじゃないと
良いものを書いてもらえなさそう。
そういう意味で >524 には激しく同意。自分は信じられない。

526 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 09:29:30 ]
Java VM って Java で書いてあるの?

527 名前:デフォルトの名無しさん [2006/04/25(火) 10:07:15 ]
静的型チェックの無い言語を嫌悪する事は、プログラマの性格的素質としては良い傾向だと思う。
が、単に経験が足りない。

企業内でJavaを使ってWebベースのシステムを書かされているエンジニアは多い。
しかし良く考えれば、XMLやJSPをJavaのコードと結合するためにリフレクションまみれのフレームワークを使わされている。
そしてある日、「それだったら、全部動的言語で良くね?」と悟る。
実際rubyやphpでシステムを書き出すと、馬鹿らしくてJavaを使う気が失せるし、XMLがインフレを起こしている事に気がつく。

その後にObjective-Cを触ってみると、たぶん作者さんと同じ心境になれる。

>>519
クロージャをCのランタイムに載せたら神だと思うが。
匿名クラスや、匿名メソッドと勘違いしていないか?

528 名前:デフォルトの名無しさん [2006/04/25(火) 10:08:09 ]
なんかよく分からんが、企業内ではJava使えばいいじゃん。
WinでもMacでも動くんだから。
適材適所でしょ。

529 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 12:30:06 ]
>>526
>Java VM って Java で書いてあるの?

確か、C/C++で書かれてあったはず。




530 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 12:59:50 ]
>>525
Cocoa-Javaはこれ以上新しい機能を追加しないってだけで
Javaを捨てたわけではないと思うけど。

531 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 13:05:36 ]
>>529
なるほど。

じゃあ、Java 自体が趣味の領域なんだろうね。 >517

532 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 15:41:20 ]
C/C++はある程度コントロールできる奴ら(少数)向き
チェックの多い言語は書き方がある程度強制されるから多人数向き

533 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 17:03:05 ]
OS9にもこれ以上新しい機能は追加されないと思うけど
まだ捨てられてないんだっけ?


534 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 19:03:44 ]
idはたまに、共通の親クラスつくるの面倒な時とか使う

それより面倒なのがプリミティブな型を使うとき
ヘッダーにメソッド書いておかないとコンパイルできなかったり、動作がおかしかったり
NSNumberを使うとタイプ量が多くて面倒臭い

535 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 19:24:31 ]
発展途上のプリミティブな型がある言語にObjective-Cっぽいところを持ち込んでしまえばいいんじゃ?

536 名前:デフォルトの名無しさん [2006/04/25(火) 20:20:51 ]
それがObjective-Cなのではあるまいか

537 名前:デフォルトの名無しさん [2006/04/25(火) 20:35:51 ]
つまり、発展途上のプリミティブな型のあるC言語にSmallTalkっぽいところを持ちこんだのがObjective-Cだと言いたいのか?

その通りだな。

538 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 21:05:36 ]
>>520
既に退職してる。

539 名前:デフォルトの名無しさん mailto:517 [2006/04/25(火) 21:12:11 ]
>>531
あほですか?

低レベル(基礎的)な部分でC系の言語を使うのは全く問題ない。
フレームワークもまたしかり。

ただそういったランタイムor実行環境に依存する部分を公開するのは頂けない。
バグや変更があったときに影響が大きすぎる。
だからObjective-Cは頂けない。なんでもできるとか言って喜んでる奴は
やっぱり趣味でコード書いてる奴の言うことだと思う。

構造体化でカプセル化も容易にくずせる言語をObjectiveって...
「オブジェクトっぽいC」もしくは「オブジェクト的な皮を被せただけのC」
ってことなんだね。





540 名前:デフォルトの名無しさん [2006/04/25(火) 21:30:28 ]
>>539
うんまあ、最後の段落はまさにその通りなんだけどさ、
キミの使ってるOSって何で書かれてるかな。
多分Cだと思うよ。
それはなんでかな。
ランタイムや実行環境をいじれるからだよね。
ハードウェアに合わせてバリバリチューンも出来るからだよね。

でまあ、キミの価値観だとOSって趣味の領域なのかね。

541 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 21:32:33 ]
モチロンソウヨ

542 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 21:55:48 ]
IT土方向きではないな
最終成果物がイメージ(設計)できると動的のほうが効率いい

543 名前:デフォルトの名無しさん [2006/04/25(火) 22:49:09 ]
なんか

544 名前:デフォルトの名無しさん mailto:517 [2006/04/25(火) 22:53:52 ]
>>540
まあ極端な言い方をすればそうだね。
OSを純粋な「ソフトウェア」かと言えば俺は違うと思うから。

要は一部の「オタク」的な人間がハードウェアに依存した
部分でごちゃごちゃやってる部分はみたくないというか、
ソフトにとっちゃ本来はどうでもいいことじゃない?

これからは少しは変わるかも知れないけど、依然として
iLifeを使いたければMac上でなければならないし、Windowsで
使い勝手のよかったソフトはマック上で同じように動かすこと
ができないなんて、もしくは買い直せなんてユーザーにとったら
やっぱり何それって感じだと思うよ。
所詮はハードのおまけかと。

個人ユースだったらOSがバージョンアップするごとに
ソフトが動かなくなっても「好きで付いてきてるんだろ」的な
態度でもなんとかなるけどw、
企業向けじゃそうはいかないからな。
なぜJavaがこれほど社会的な基盤として、また企業の商売道具として
発展し続けているかといえば、ソフトはソフトだと言えるところに
俺はあると思ってる。だからこそオープンソースという勢力を巻き込んで
そのソフトを使用するのに今までウン万円も支払わなければいけなかったことが
変わりつつあるんじゃないかな。Eclipse しかり、OpenOffice しかり。

Objective-C をかじってみて気がついたのは、Appleは所詮ソフトを
Macのおまけとしかみてないんじゃないかってことなんだよ。



545 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 23:42:55 ]
マルチプラットフォームがうれしいなら GNUstep でも使ったら?

546 名前:デフォルトの名無しさん mailto:sage [2006/04/25(火) 23:50:26 ]
>そしてある日、「それだったら、全部動的言語で良くね?」と悟る。

それは悟りじゃない。単に面倒くさくなっただけ。
動的言語を使用した方が良い局面が増えているのは事実だが、
一事が万事というのはプログラマ的じゃない。

547 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 06:56:48 ]
プログラマ的発想から言えば、出来るだけ今あるものを使いたいと考える。
Objective-Cだってそういう発想から作られている。
でも今現在、出来るだけ今あるものを使おうとすると、Objective-Cはありえない。
JavaやC++の最大のメリットは型チェックでもクラス指向でもなく、使っている人が多いということ。

それとソフトがハードのおまけと考えてるのはAppleより、SunやIBM。
ハードを第一に考えるから、オープンソースに肩入れできる。
Appleも頑張っちゃいるが、Appleにとってはソフトも大事な売り物である以上、
全てをユーザーに委ねる訳にはいかない。
Xcodeがあれば俺は満足だけどね。

548 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 11:56:21 ]
>>547
>それとソフトがハードのおまけと考えてるのはAppleより、SunやIBM。

IBM にとってはハードもオマケだろ。サービスで喰ってるんだから。

>ハードを第一に考えるから、オープンソースに肩入れできる。

RedHat みたいな企業の事はどうお考えで?

549 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 12:35:51 ]
Objective-C の言語仕様や開発環境がどういうつーより
使用者が多いほうがえらい的な話になってるようなんで
別板いったほうがよくねすか?

Java や C++ に開発者がいっぱいいて資産がたくさんあって
うれしいならソレ使えばよろし。ここは「メモリを直接ドライブできるのに
動的結合できるなんて、ハァハァ」ていうひとのスレだと思うし。



550 名前:デフォルトの名無しさん [2006/04/26(水) 13:27:32 ]
俺は>>544が別スレなり板に行けばいい話だと思うな。
どうもCが嫌いみたいだから、C叩きスレとかに行けばいいと思う。

551 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 14:28:12 ]
民主党、共産党と同じでなんでも叩きたいだけでしょ。
その場に応じて主張を変える所なんかもそっくりだし。

枯れ木も山の賑わい。

ほっとけばいいんじゃない?

552 名前:デフォルトの名無しさん mailto:517 [2006/04/26(水) 21:19:11 ]
>>547
ではなんで今あって、よっぽど使ってる人が多い言語の Cocoa-Java Interface を
Apple は捨てるんでしょうね?

Microsoft の .NET 戦略をみてもソフト会社だけあってか、ハードから
隔離させようとしてるのに、Apple は何でこんなマイナーで泥くさい言語にこだわるのか。




553 名前:デフォルトの名無しさん [2006/04/26(水) 21:42:45 ]
Cocoa-Javaはこれから先が無いにしても、Javaそのものを排除してるわけじゃなし。
まあAppleの戦略について、ここで語ってもしかたないべ。

ところでマイナーなのは間違いないが、Objective-Cは泥くさいか?
エレガントでスマートなコードを書いてる自信はないけどさ。

554 名前:デフォルトの名無しさん [2006/04/26(水) 22:02:38 ]
setValue:a forKey:b みたいな書き方、俺は好きだね。
setValueForKey(a,b)なんて泥臭くてw

555 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 22:09:15 ]
>>552
ハードとは十分「疎」になってるでしょ。OPENSTEP は SPARC でも
動いてたんだから。Apple からしたら、Java の様に OS からも「疎」
にする必要は無いし、Objective-C で問題無いんじゃないの。
C の資産を丸ごと使えるわけだから、ユーザベースが少ない事が問題に
なるケースは少ないだろうし。

556 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 22:35:07 ]
>>525
Mac OS Xネイティブアプリケーション開発用としては、Javaを捨てたってこと
でしょ。そんな余裕があったらCocoaの機能増やすし、JavaはJavaで
Cocoaに併せてる暇があったら、さっさと6.0に備える、ってことでしょ。

実際5.0 Release 4のリリースは困難を極めたわけだし。Developer Preview 7
まで行くなんていままで無かったぞ。

Java自体は開発しつづけないと、サーバOSとしての用途が恐ろしく限られて
しまうので、結構必死に開発してるようだが。

あとCocoa+Javaという形じゃなくて、Java側からJavaのやり方で、Cocoaの
ビューをAWT内で使う方法とかは作られてるね。Cocoa Componentとか。

557 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 22:36:46 ]
つうか、PHP 4で大規模開発なんて、おれは関わりたくないな。

558 名前:デフォルトの名無しさん mailto:sage [2006/04/26(水) 23:05:32 ]
趣味でObjective-C使ってる自分には、>>554で十分だと思った。
そこは本質ではないんだろうけど。

559 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 08:37:51 ]
Cocoaフレームワークに静的なJava言語が対応しきれないというのも原因なのかもね。
pcweb.mycom.co.jp/column/objc/006/



560 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 10:47:22 ]
つか、Sunの企業利益のために割く人的資源は無いって事だろ?

561 名前:デフォルトの名無しさん [2006/04/27(木) 12:37:41 ]
Cocoa+Javaは、引数が構造体や配列になっているメソッドがシカトされている事が多い。
機械的にバインディングを作れないので、力尽きたのでは無いかと思われ。
あとJavaのGCが動くタイミングで落ちる等の不具合が、とうとう直せなかったような気がする。

562 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 13:45:15 ]
>>561
そういうバグがあったのか。
もしかしてそれって、
Cocoa+Java で(明示的に生成していない) NSAutoreleasePool でコケてたのと根は一緒?

563 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 20:32:38 ]
わかった、Effective Objective-C が欲しいんだな、たぶん

564 名前:デフォルトの名無しさん [2006/04/27(木) 20:51:24 ]
>>564
それはすごく欲しい。

565 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 21:30:40 ]
俺様が執筆してくれるわ

566 名前:デフォルトの名無しさん [2006/04/27(木) 22:20:46 ]
ははっ

567 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 23:03:42 ]
Objective-C用単体テストフレームワークってありますか?
SmalltalkならSUnit、JavaはJUnitがありますが

568 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 23:07:04 ]
OCUnitがXcode2(10.4)から添付されてる。他のもあたるなら
ttp://www.cocoadev.com/index.pl?UnitTesting
あたり。


569 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 02:43:15 ]
>>559
Cocoaの実用的な範囲であれば、リフレクションでなんとかなる。
ポージングとかの変態領域は、JDK7で予定されている動的クラス生成を待つ必要があるだろう。



570 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 02:47:10 ]
Cocoa-Javaは、AppKitを使う上では制約が多かったが、既存のJavaライブラリを使う分には便利だった。
何をやるにも困らないぐらいのライブラリがあったし。

571 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 04:01:47 ]
>568さんありがとっ!

572 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 08:08:13 ]
>>547
>JavaやC++の最大のメリットは型チェックでもクラス指向でもなく、使っている人が多いということ。

激しく同意だなーこりゃ


573 名前:デフォルトの名無しさん [2006/05/01(月) 08:11:04 ]
じゃあ誰が使い始めるんだよ?w



574 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 09:25:49 ]
最大のメリット以外に合致した人じゃないの。
一つしか言語を使っちゃ行けないわけでなし。

575 名前:デフォルトの名無しさん [2006/05/01(月) 11:05:39 ]
じゃあその最大のメリットって奴をどうやって計ったんだ?w



576 名前:デフォルトの名無しさん [2006/05/01(月) 13:09:14 ]
>>554
set(value := a, key := b)
と書かせる言語も幾つかあるね。

577 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 16:13:06 ]
>>576
AppleScriptもレコード使えばそういうことができるな。

578 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 23:06:49 ]
キーワード引数を取れるのは、Smalltalk, Common Lisp, Dylan, Self, Slate, Python
なんかがある。Lisp 系と Smalltalk 系で扱いはちょっと違うけど。

579 名前:デフォルトの名無しさん [2006/05/02(火) 09:57:50 ]
>>578
PL/SQLもいけるよ。
Oracleの拡張かもしんないけど。



580 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 10:05:55 ]
PL/SQL自体がOracleの私物だろ

581 名前:デフォルトの名無しさん [2006/05/02(火) 11:24:48 ]
>>580
IBMやMSのサーバのストアードプロシージャは、PL/SQLじゃないの?
てっきりIBMのDB2がオリジナルで、ISOで標準化された物だと思っていたよ。

582 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 12:03:14 ]
つ ttp://ja.wikipedia.org/wiki/PL/SQL
IBM DB2は SQL PL
MSは Transact-SQL
というところでスレ違い化してきたので、あとはぐぐって。

583 名前:デフォルトの名無しさん mailto:sage [2006/05/07(日) 15:27:54 ]
os x 10.4.6 で man gcc すると Leopard で garbage collection が追加されると
書いてあるという話...
うちでは man gcc-4.0 しないとダメだったけど。
theocacao.com/document.page/258

584 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 19:12:24 ]
>578
VBも仲間にいれてやってください・・

585 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 23:35:34 ]
スマンね。Windows 系は殆ど知識無いんだ。

Smalltalk 系はメッセージ式の一部であり、構文拡張にもなるのが良いね。
単なる引数のラベルじゃない所が気持ち良い。

586 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 10:23:04 ]
>>584
VB のは本質的に違うんじゃない?
もしそれが OK なら Perl や Ruby も OK になる

587 名前:デフォルトの名無しさん [2006/05/18(木) 13:15:10 ]
rubyの場合は、辞書が一時変数として作られるだけだな。

588 名前:デフォルトの名無しさん [2006/05/22(月) 05:45:33 BE:18511766-#]
マカーだけどこのスレちょくちょく購読させて貰うね

589 名前:デフォルトの名無しさん mailto:sage [2006/05/22(月) 23:28:32 ]
>>588
では早速はじめの一月分の金を払ってくださいw



590 名前:デフォルトの名無しさん mailto:sage [2006/05/23(火) 00:12:11 ]
マカーポーシャ

591 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 11:37:57 ]
Smalltalk のはキーワード引数じゃなくてメソッド識別子の一部のような気がするけど・・・
いや、「気がするけど」じゃなくて「一部である」と強気に主張してみる。

592 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 14:13:47 ]
そんな身構えなくとも、そうだと思う。Smalltalk のキーワードは、
セレクタの一部で分離、再配置はできない仕組み。
Objective-C も原則同じなのでは?

receiver do: #something for: #me

receiver …… メッセージレシーバ
do: #something for: #me …… メッセージ
do:for: …… メッセージセレクタ、もしくは、メソッド名
   (前者はメッセージ寄りの呼び名、後者はメソッド寄りの呼び名。コロンも含める)
#something と #me …… 第1引数と第2引数

一般的な記法に当てはめると、

receiver.do:for:(#something, #me)

だから、LISP の機能の流れをくむキーワード引数とは別物。

593 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 09:15:09 ]
キーワード引数ならPythonがよくできてる。
位置で指定することも、キーワードで指定することも両方できるうえに、
該当しないキーワードを自動的にDictionaryにいれさせることも可能。

例えばHTMLタグを生成するようなメソッドを定義するとき、知らないキーワードが指定されたら
それはHTMLタグの属性名だと判断して属性を出力する、なんてことができる。

スレ違いだけど、参考までに。

594 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 13:28:59 ]
そりゃ便利そうだな。
と思ったが、メッセージ送信にそんなコストかけてらんないか・・・

595 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 13:52:28 ]
>>594
存在しないキーワード付きの変数が現れたときに、
エラーにするかわりにmapを構築して渡すだけでそ。
コストはゼロでは?

596 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 16:35:54 ]
Cocoaの場合、結構NSArrayやNSDictionaryを引数にするメソッドがある。
なので、NSStringみたいな初期化構文はあっても良いかもしれない。

配列
[self dispose:@[@"Basic", @"SQL"]];

辞書
[self assess:@{@"Basic" => @"garbage", @"SQL" => @"taint"}];

構文糖だな(--;;

597 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 15:20:11 ]
[NSArray arrayWithObjects:@"Basic", @"SQL"];
これじゃダメなのかえ?配列の場合だけど。

598 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 15:22:12 ]
nil入れ忘れた

599 名前:デフォルトの名無しさん [2006/05/29(月) 16:08:02 ]
>>597
それの省略構文に過ぎないから構文糖。



600 名前:デフォルトの名無しさん mailto:sage [2006/05/29(月) 16:10:58 ]
しかしまあ、@

601 名前:デフォルトの名無しさん [2006/06/24(土) 00:58:44 ]
すっかり廃れてしまったので、この記事を。

【境界を越える: Javaモデルを超える型定義戦略】
www-06.ibm.com/jp/developerworks/java/060621/j_j-cb05236.shtml

安全性と柔軟性
静的言語か動的言語かという議論の要点は、ある意味で安全性対柔軟性か、という点に尽きます。
静的言語の支持者達は、より安全な言語が良いのだと信じています。
動的言語の支持者達は、安全性のために費やされる労力を嫌います。
彼らにとって言語を評価するための鍵は、プログラマーの効率を最大にするためにいかに
素早く概念を表現できるか、という点です。
そうしたスペクトル分布の対極として、静的言語のエキスパートは、初期のバグを捉えることが
『可能』ならば捉える『べき』であり、言語の持つ制限はツールで補える、と主張するのです。

皆さんはプログラミング言語のユーザーとして、良きにつけ悪しきにつけ、ある時点で
その言語の型定義戦略の奴隷となっています。


筆者は動的モエ〜らしいけど、
確かにO/Rマッピングとかやってると静的なのが面倒に感じる場合があるし。
ただ、言語である程度規定しないと静的な面の利点を享受できないから、
Objective-C は C との互換性やシンプルであれという思想からそれらの利点を捨てた時点で、
代替物が豊富にある Java の方がやはりプラットフォームとしての魅力はあるなあと。
逆説的に言えば、そうした利点を土台にしたからこそ、豊富な代替物を
引き寄せたとも言えるかもしれないね。



602 名前:デフォルトの名無しさん mailto:sage [2006/06/24(土) 14:24:55 ]
動的言語のスピードを生かしてプロトタイプを作り、
静的言語の安全性を生かして完成品を作る。
ってのが理想。

603 名前:デフォルトの名無しさん [2006/06/30(金) 01:56:40 ]
webで調べたら、C++のクラスをインスタンス変数で使うときの
制限がたくさん載っててびびった。
newすればコンストラクタも仮想関数も問題なしってことなの?

604 名前:デフォルトの名無しさん [2006/06/30(金) 12:58:48 ]
>>603
Tiger以降なら-fobjc-call-cxx-cdtorsつけとけばいいんじゃないの。

605 名前:デフォルトの名無しさん [2006/07/01(土) 02:42:33 ]
>>604
ググッたけど分からんかった。
objevtivecからc++のコンストラクタとデストラクタを呼ぶって意味なのかな?

とりあえず、純粋なC++コードが動作するってんならうれしいのだが。


606 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 09:25:41 ]
>>604
>-fobjc-call-cxx-cdtors
developer.apple.com/documentation/developertools/gcc-4.0.1/gcc/Objective_002dC-and-Objective_002dC_002b_002b-Dialect-Options.html

607 名前:こぴぺ [2006/07/04(火) 17:31:53 ]
Online会員もOKになってるよ。無料。

Cocoaセミナー中級編開催
7月11日(火)、8月1日(火)
developer.apple.com/jp/
・書類とアプリケーションの間の関係の解説
・テキストファイルの読み込みとその表示
・Cocoaのデザインパターン
・XMLのパース
・配列、辞書といった、Cocoaのコレクションクラス
・テーブルビュー、アウトラインビューの使用方法


608 名前:デフォルトの名無しさん [2006/08/06(日) 12:00:57 ]
[self age];

609 名前:デフォルトの名無しさん [2006/08/08(火) 04:22:52 ]
Objective-C 2.0

So compelling, Apple wrote Xcode 3.0 itself in it.
Enjoy modern garbage collection, syntax enhancements, runtime performance improvements, and 64-bit support.
At your own pace, since it’s backwards compatible with existing Objective-C source.
Write applications more quickly with fewer bugs using Objective-C in Xcode 3.0.

だってよ。GC ついたらしい。
www.apple.com/macosx/leopard/xcode.html



610 名前:デフォルトの名無しさん [2006/08/08(火) 04:31:06 ]
NHKは公共放送なのに公務員じゃないから採用は国籍不問。

だからNHKの司令塔であるNHK東京とNHK大阪は
上層部から制作現場・アナウンサーまで
「在日朝鮮人」「在日韓国人」「偽装帰化人」職員だらけ。
日本人関係者も韓国・北朝鮮・中国マンセーの創価・左翼(共産主義者)だらけ。

その結果、反日どころか売国放送ばかりする
さらに日本人から絞り取った受信料を使って
韓国に住んでる親類にタダで韓国ドラマを衛星放送してやっている。

だからNHKはスクランプル化に大反対。
日本国民の金を法権力で強制徴収してるのに
このまま外国籍人に好き勝手をさせていいのか?
ハッキリ言ってNHKの存在自体が主権在民を定めた憲法違反だ。


NHKや朝日などの売国マスコミ以外の
海外や日本の他の報道機関が既に過去に報道してバレてるカビの生えた古い事だけカキ集めて
あたかも自分だけがスクープしたかのような北朝鮮特番を恥知らずに放送するNHK。
「今まで私共NHKが隠蔽し握り潰して来た事実の集大成番組です」ってタイトルで放送すればピッタリだ。

日本社会と日本国民のNHKを見る認識と風向きが180度変わり
不安と恐怖にさいなまれて自分が韓国・北朝鮮・中国マンセーの「ポチ」じゃ無いと言い張り
アリバイ工作のハリボテ番組を必死で放送する恥知らずなNHK。

しかしもうそんな姑息で卑怯な言い訳やウソは通用しなくなっている事にさえ気付かない哀れなNHK。
でもどんな言い訳をしても売国奴の末路は悲惨なものだから覚悟しとけよNHK。
まさかそこまで追い詰められていたなんて知らなかったよNHK。

( ゚∀゚) アハハ八八ノヽノヽノ ヽ ノ ヽ ノ  \  ノ   \  /    \  /      

611 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 08:20:38 ]
なるほど

612 名前:デフォルトの名無しさん [2006/08/09(水) 03:51:55 ]
やっと、GCC4.1.1+obj-c++の環境のコンパイルが完了。winの上でやっています。
さてと、昔NextStepでプログラミングをしていたので、マニュアルをひっぱり
だしてきてちょっとやってみますか。
ちなみに、「NEXTSTEP OBJECT-ORIENTED PROGRAMMING AND THE OBJECTIVE C
LANGUAGE」という本がありますが良い本ですよ。
もう売っていないでしょうけど、オブジェクト指向の本質的なことがうまく
書いてあります。
私は、C++もかなり長いことやっていて思いますが、C++はやはり言語仕様的
には強力なものがあり、加減を忘れるととことんまで機能を使いながらコー
ディングをしてしまいますが、アプリケーションの性質に応じてその機能を
使い方をどこまでにすれば良いのか判断にあぐねることが多いですね。
 よくあるのが、多重継承をしまくると保存と読み出しの際に元に戻せなく
なったりします。これはjavaのinterface や、objcのprotocolやcategory的な
機能がなかったりするために基底型から目的のポインタを得るのに大変苦労
をします(C++の仮想基底型は本当のインターフェースとは異なると思います)。
そういう意味でオブジェクト指向といいながら、最後は型がはっきりわかる
javaやobjcのほうが現実には使いやすい言語じゃないかと思ったりもします(
アプリを作るというのは最後は小細工が必要なんです)。
さて、objc++を少しさわってc++のはかなさでも味わいますか....。

613 名前:デフォルトの名無しさん mailto:sage [2006/08/10(木) 00:28:27 ]
>612
またObjective-Cのために?gcc4系ってのは(汗。さすが。
で、その本なんだけど、AppleがRhapsodyの時に日本語PDFファイルで配布してたやつと大体一緒のやつかな?

しかしObjective-C 2.0ってGCとかどうでもいいんだけど(実質今のGNUstepでもアリだしさ)、言語仕様の拡張というかsyntaxが拡張されるっつーのが気になるなぁ。

BlockClosureとか使えるようにすんのか?とりあえずC++的な鵺には並んでほしいとこですが。
実際の仕様が貧乏人に公開されるのはもっと先だろうしなぁ。


614 名前:デフォルトの名無しさん [2006/08/10(木) 14:20:32 ]
>613
セットで、匿名ブロックが欲しい。
アレが無いと、クロージャの魅力が半減する。

615 名前:デフォルトの名無しさん mailto:sage [2006/08/10(木) 19:42:14 ]
>>614
今のObjective-Cにクロージャってあったっけ?
あれはGCがないとちゃんとした実装は難しいと思うのだが。

616 名前:デフォルトの名無しさん [2006/08/12(土) 03:40:17 ]
>>613
612です。たぶん、一緒でしょう。少し改定されていると思いますが。
OBJC-2.0といってもnamescopeもないし、ただ、C++と混在できるだけ。
やっぱりnamescopeがないのが一番困る。それとクラス静的変数を用意
してほしい。
 クロージャについてはないですね。もともとベースがC++,Cなので難
しいでしょう。でも、GCCのC(C++にはない)の内部関数が使えるという
ことはパスカルスタックを実現しているはずなので、JAVAでいうロー
カルクラスによるクロージャチックなことが出来そうにも思うのですが
....。もう少しみてみないとわかりません。
でもクロージャが使えるようになると、もう違う言語ですね。GDBが追い
つかないように思います。そろそろOBJCもC#みたいに大変身するかも。

617 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 08:31:59 ]
>>613
>AppleがRhapsodyの時に日本語PDFファイルで配布してたやつと大体一緒のやつかな?
nyとかで流れないものかなぁ。


618 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 09:02:48 ]
まずAppleに頼むのが筋だろう。

619 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 16:35:23 ]
>>617
どっかでひろった PDF もってるけど、基本的にいま Apple が配布してる
developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html
とおんなじだよ。図版もずっとつかいまわしで、はじめにでてくる時計の絵とかも全く一緒。Apple 版のほうがページ数すくなかったりしますが、
それは
developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html
とか
developer.apple.com/documentation/Cocoa/Reference/ObjCRuntimeRef/index.html
が切り出されて説明が加わってべつのドキュメントになってるから。



620 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 16:39:14 ]
あとはこの辺
www.channelu.com/NeXT/
とか Sun のこの辺
docs.sun.com/app/docs/coll/116.1?l=ja
とか GnuStep の
www.gnustep.org/developers/documentation.html
とか。


621 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 21:48:45 ]
>>619
Appleが翻訳した日本語版は
ttp://developer.apple.com/jp/documentation/japanese.html
で、その中に
Obj-C
ttp://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/index.html
とか
Cocoa基礎ガイド
ttp://developer.apple.com/jp/documentation/Cocoa/Conceptual/CocoaFundamentals/index.html
などあるね。


622 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 22:31:08 ]
ObjCの翻訳はちょい古くてIntelの話が無い。
まぁドラフトとれ次第、2.0をやってくれるだろ。

623 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 00:08:39 ]
>>622
>まぁドラフトとれ次第、2.0をやってくれるだろ。
つまり「泳げる頃には」読めるんですな(苦笑)


624 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 15:47:52 ]
何の情報も持たず、憶測で断言してる人ってなんなの?

625 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 15:50:37 ]
>624は
>616のことね。

626 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 21:05:11 ]
>>616が何を断言したって?

627 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 22:30:29 ]
WWDC行ってる人もいるでしょ。616が行ったかどうかはわからんけど。

628 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 00:13:16 ]
で、クロージャは付くのか?

629 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 00:50:02 ]
WWDCの内容はしゃべれないんだよな
いつになったら情報でてくるのか



630 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 08:36:49 ]
WWDCででた情報はしゃべれなくても、でてない情報はしゃべれるだろ。
WWDCでクロージャの話はでた?

631 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 09:28:18 ]
>>630
ワラタ

GC って Boehm GC なの?
それともオリジナル?

632 名前:デフォルトの名無しさん [2006/08/14(月) 09:52:46 ]
>>631
以前出てた情報ではオリジナル。

633 名前:デフォルトの名無しさん [2006/08/14(月) 13:05:07 ]
>>616
Javaの匿名クラスはクロージャ風味を目指しているけど、準備と構文が煩雑すぎて愛されなかった。
C# 2.0の匿名ブロックぐらいが使い物になる境界線だと思う。
Java 7にも、ほぼ同じ構文が入る事になってる。
Objective-Cの場合、事前にInterfaceやdelegateを宣言する必要が無いと思うので、実装されれば幸福度は高いと思う。

634 名前:613 mailto:sage [2006/08/14(月) 15:13:33 ]
>616

 なるほど。あれのコラムとかは結構勉強になったもんす。
 後のCocoa本(オライリーから翻訳でたけど)よりよっぽどこっちの方が役に立ったというか(笑)

 Appleからは当時のオリジナルはないけど、NeXT絡みのサイトを調べるとまだ拾える所があったりするから不思議(笑)

 個人的にはObjective-C 2.0ってGNUの方でも対応できるのだろうか?(GNUstepどうなるよ?)が今一番大きな心配だったり(笑)
 

635 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 17:46:50 ]
Apple の runtime が必要になるから、簡単にはいかないよ (笑)

636 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 19:51:15 ]
Apple runtime って、 opendarwin だったかなんかで
公開されてなかたっけ?
www.opensource.apple.com/darwinsource/10.4.7.x86/objc4-274/

637 名前:デフォルトの名無しさん [2006/08/15(火) 03:23:23 ]
なんでもいいからNameScopeだけでも導入してくれ。いまや何でもかんでも
クラス化するのにグローバルにしかクラスが定義できないなんて最低だ。
使えん。クロージャなんかなくてもかまわん。
あと、Undoのマネージメントの仕組みも導入してほしいな。完璧でなくて
いいが、モデルがほしい。



638 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 03:51:42 ]
>>632
サンキュ。オリジナルなんだ。実装の詳細を見られるのが楽しみだ。

639 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 04:43:35 ]
>>637
だれもつっこんでないからいうけど、NamescopeじゃなくてNamespaceな。
日本語でいうと名前空間。
しかしNamescopeはなかなかいい造語のように思える。おまえ、センスあるよ。



640 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 04:52:18 ]
カスを下手に誉めるとつけ上がるのでやめとけ。

641 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 12:33:30 ]
www.cocoadev.com/index.pl?ObjC
腐敗臭がする。

642 名前:デフォルトの名無しさん [2006/08/15(火) 13:56:53 ]
>>637
つけあがらないようにつっ込んでおくが、Undoの仕組みはかなり前に導入されたぞ。
Cocoaのクラス一覧を良く眺めてミロ。

643 名前:デフォルトの名無しさん mailto:sage [2006/08/15(火) 17:00:00 ]
Namescape

644 名前:デフォルトの名無しさん [2006/08/18(金) 03:39:01 ]
>>642
あんなもの使えん。おまえ、本当にアプリつくっているの?


645 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 07:35:44 ]
>>644
俺はそれを使った事ないんだが、どうダメなのか簡単に。

646 名前:デフォルトの名無しさん [2006/08/28(月) 10:44:52 ]
誰かObjective-C 2.0の情報をまとめて下さい。

647 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 11:12:04 ]
OSにつかわれてこそのプログラミング言語

648 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 04:10:16 ]
OS って Kernel の事を指してる?

649 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 14:46:03 ]
OSといってんだからOSだろ



650 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 17:33:49 ]
Kernelの記述に使われてる言語ならほとんどはC言語とアセンブラかな。
ごく一部でC++もあるらしいけど。


651 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 17:57:10 ]
macosx は、objc でかいてあるの?

652 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 20:59:31 ]
objcがmacosxでかかれているよ

653 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 16:53:35 ]
>>649
そうだとすると Objective-C も使われてる事になるね。
あとは Perl, Python, Java 辺りも。

Kernel だけなら、C, C++, ASM, m4 くらいかな。

654 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 18:40:16 ]
Perl,Pythonって、どのOSにつかってるのか?

655 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:28:12 ]
あ、sh を忘れてた。

656 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 03:40:41 ]
>>645
YouOSあたりじゃない?

657 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 11:01:17 ]
GNUstepをインストールしてみたんだけどObjective-C(・∀・)イイ!ね、
FoundationKitのソースをざっと眺めてみたんだけど読みやすくて何をしてるかすぐ分かって最高。
美しいって素晴らしい。

658 名前:デフォルトの名無しさん [2006/09/06(水) 23:55:16 ]
>>12
[>>1 autorelease];
で勘弁してあげて。

659 名前:デフォルトの名無しさん mailto:age [2006/09/07(木) 00:30:20 ]
[self age];



660 名前:デフォルトの名無しさん [2006/09/07(木) 09:02:47 ]
Messageの一個目のパラメータに名前付けらんないのって
なんのいやがらせですか?

661 名前:デフォルトの名無しさん mailto:sage [2006/09/07(木) 10:39:15 ]
いや。それって、アンタの理解が間違っているだけですから……。

662 名前:デフォルトの名無しさん mailto:sage [2006/09/07(木) 14:08:01 ]
今日の議題
* メソッド名の一部をパラメータの名前だと勘違いしている件について

663 名前:デフォルトの名無しさん mailto:sage [2006/09/07(木) 16:00:18 ]
Objective-C の [ ] の中の文法(つまるところ Smalltalk の文法なんだけど…)は、原則として、

 receiver message

というように、メッセージを受け取るオブジェクト(receiver)と、それに送るメッセージ
(message)をスペースなどで区切って記述する。

さらに、メッセージは、セレクタと0個以上のパラメータ(引数)で構成される。

セレクタはパラメータの数だけ : (コロン)を含み、メッセージとして記述する際には、
それぞれのコロンの後にパラメータ+スペースを挿入する特殊な記法をとる。たとえば、

 receiver foo:arg1 bar:arg2

なら、メッセージは「foo:arg1 bar:arg2」、セレクタは「foo:bar:」。

コロンをひとつでも含むときは、セレクタは、かならずコロンで終わらせなければいけない。
換言すると、パラメータがあるときは、メッセージは必ずパラメータで終わる。したがって、
「foo:bar:baz」のようなセレクタや、それを含んだメッセージ(foo:arg1 bar:arg2 baz)は
使用できない。

なお、セレクタは、メッセージ送信の結果、起動することが期待されるメソッドの名前でもある
(両者は一致する)。

また、foo や bar を「キーワード」と呼ぶことがあるが、これはあくまで便宜的なもので、
言語仕様上、そうしたエンティティがあるわけではない(それらは結局、セレクタ、あるいは、
メソッド名の一部に過ぎない)。

664 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 11:45:28 ]
Cocoaセミナーのムービーに中級編追加
developer.apple.com/jp/documentation/japanese.html#CocoaSeminar1

665 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 18:07:49 ]
Objective-CでネイティブなWindowsアプリって作れる?

666 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 21:18:17 ]
作ろうと思えば作れる

667 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 21:53:26 ]
>>665 そのネイティブってどういう意味だ? 質問の前にもっと勉強が必要だな。

668 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:12:26 ]
ObjCで使いやすいHTMLパーサってある?
別にCとかC++でもいいけど、Javaは嫌。

669 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 11:49:38 ]
>>665
StepStone




670 名前:デフォルトの名無しさん mailto:sage [2006/09/10(日) 09:46:15 ]
>>669
StepStone社ってまだあるんか?

671 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 20:41:25 ]
[self age];

672 名前:デフォルトの名無しさん [2006/09/11(月) 20:43:22 ]
さげちまった

673 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 18:47:44 ]
[self hoshu]

674 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 09:42:36 ]
[self sex:self]

675 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 11:08:36 ]
/* おなにーかよ */

676 名前:デフォルトの名無しさん mailto:age [2006/09/19(火) 00:57:05 ]
[self age];

677 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 01:29:36 ]
Objective-C 2.0ではガーベッジコレクションが追加されるのかな〜。
知ってる人いたら教えて。

678 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 02:22:40 ]
Objective-C 2.0

アップルは、魅力あふれる Xcode 3.0自身を使ってXcode 3.0を開発しました。
最新のガベージコレクション、強化された構文と改善されたランタイムパフォーマンス、
64ビットサポートをお届けします。
既存の Objective-Cソースとの下位互換性も備えているため、
自分のペースで作業を進めることができます。
Xcode 3.0のObjective-Cを使って、バグを減らしながらすばやくアプリケーションを記述できます。


679 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 18:26:27 ]
プロパティってどうよ?



680 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 19:00:50 ]
もうちょい具体的に

681 名前:デフォルトの名無しさん [2006/09/19(火) 19:48:48 ]
>>679-680
ワロタ

682 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 19:53:31 ]
おそらく、2.0で追加される@propertyコンパイラディレクティブのことでないかと。

683 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 20:07:18 ]
 785  Name: 4/7  [sage] Date: 2006/09/12(火) 21:29:33  ID: TiBUhRpI0  Be:
    他にもプロパティに指定できる属性がある。便利なのがivarだ。こいつはプロパティを指定した
    名前のインスタンス変数にマッピングするものだ。

    (コード。プロパティの属性ivarの例)
    @interface Bar : Object
    {
    int iVar;
    }
    @property(ivar = iVar) int FooBar;
    @end

    getterやsetterのメソッドも別に指定することができる

    (コード。プロパティのアクセサメソッドを個々に指定する)
    @property(getter = whatBaby, setter = setFire:) id baby;

684 名前:スマソ、こっちが先だ mailto:sage [2006/09/19(火) 20:08:43 ]
 784  Name: 3/7  [sage] Date: 2006/09/12(火) 21:28:49  ID: TiBUhRpI0  Be:
    【プロパティ】

    これはオレが見つけた中では追加された最大のものだ。こいつはグルーコードを書くために
    費やす時間やコード量を節約してくれる。

    Rubyの属性(attributes)のようにObj-C 2.0ではクラスのプロパティを定義することができる。
    んでもって、プロパティの属性(nocopy, readonly, readwrite. etc)を指定すれば、コンパイラは
    その指定に従ったKVC準拠のアクセサを生成する。もしそうしたければ、アクセサである
    setVar:やvarメソッドをオーバーライドすることもできる。

    (長いのでコード省略。属性無指定のプロパティとreadonlyのプロパティの例、アクセサのオーバーライド)

    で、見りゃわかることはこんなことだ。
    ・プロパティは.(ピリオド)でアクセスできる。かんたんインスタンス変数アクセス(訳注:あとででてくる)は
     ->を使うことをヘンに思うかもしれんが、これはKVCとは関係ないってことで納得しとこう。
    ・デフォルトのプロパティの実装は、文字列みたいなオブジェクトすら"do the right thing"で扱ってる
     ように見える。set時にコピーして、自分自身の解放時にもちゃんと解放するみたいだ。
     少なくともdeallocのテストは見当たらないな。
    ・当たり前だがGroupオブジェクト中のPersonオブジェクトは初期化しなくちゃいけない

685 名前:デフォルトの名無しさん [2006/09/19(火) 23:43:17 ]
せっかくObjective-C本が復刊したのに、また結構豪快なverupだなorz

686 名前:デフォルトの名無しさん [2006/09/19(火) 23:49:08 ]
このスレを見つけて、Objective-Cっていったい何なのさ。きいたこともないんだけど。って思った方、ぜひ以下のリンクをご覧下さい。
私が書いた訳ではありませんが、丁寧に書かれているので紹介します。
wisdom.sakura.ne.jp/programming/objc/index.html
Objective-Cは名前からもわかるとおりオブジェクト指向言語です。
C系オブジェクト指向言語では、超メージャーな言語にC++があります。
Objective-CとC++の二つを見たとき、C言語に近そうなのは名前からもC++な気がしますが、実際にはObjective-CがよりC言語に近いです。
というよりはObjective-C=C言語+オブジェクト指向です。
そのため、Objective-CではC言語のソースがそのまま使えます。無駄になりません。
Objective-Cは現在、Mac OS Xの開発環境での主力言語ですが、決してMac OS X専用の言語ではありません。gccコンパイラでコンパイルできますから、gccがある環境をお持ちでしたらどこでも利用可能です。
興味のある方はぜひご一読くださいな。

687 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 00:17:08 ]
onewayってメソッドの返り値を待たずに先々進んでいく、って認識でおk?

688 名前:デフォルトの名無しさん [2006/09/20(水) 01:26:39 ]
ただし、クラスメソッドにはインスタンスが存在しないため、
暗黙の self オブジェクトを使うことはできません。
wisdom.sakura.ne.jp/programming/objc/objc11.html

使えるだろ。

689 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/20(水) 01:31:18 ]
にわかマカーです
ぶっちゃけSmalltalkの後継言語としてはRubyのほうが・・・。
RubyのCocoaバインディングがLeopardで標準サポートされるとか言う話を聞いたような。





690 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 07:37:50 ]
はいはい。

691 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 10:45:48 ]
>>686,688
そこは平気で嘘や勘違いを呼ぶ記述が書いてあるから初心者にはおすすめしませんが。
っていう話は既出な気がする。

692 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 11:19:51 ]
>>687
+(oneway void)xxx;
-(oneway void)xxx;
以外は無視されます。つまり返値を待ちます。

上記(oneway void)の場合は、処理の終了を待たずに戻ってきます。

693 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 11:57:36 ]
>>689
LeopardでRubyCocoaが標準搭載されるそうです。
Cocoa-Javaは捨てられて、代わりにRubyって感じ?
Appleもお気に入りのよう。

694 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 12:52:01 ]
LeopardってRoRも載るんだよな

695 名前:デフォルトの名無しさん [2006/09/20(水) 14:18:02 ]
Pytonのバインディングも、10.4から入っていたような。

696 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 02:10:50 ]
Javaは型に対して厳し過ぎるからね



697 名前:デフォルトの名無しさん [2006/09/21(木) 03:46:18 ]
>>688
いやいや、使えないと思いますが。。。
もし使えたら、Java言語でのクラスメソッド内でthisが使えるということと同じになりますよ??
では逆に、クラスメソッドでselfが使えたとして、そのselfは何を指すのかお聞きしたい。

698 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 04:18:56 ]
>>697
> もし使えたら、Java言語でのクラスメソッド内でthisが使えるということと同じになりますよ??

いいえ、Objective-C は Java ではありません。

699 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 04:26:28 ]
>>698
失礼しました。Javaの話は忘れて下さい。今はObjective-Cの話ですものね。
では、クラスメソッドでselfが使えたとして、そのselfは何を指すのかということに関してはどうお考えですか?



700 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 04:31:55 ]
なにも考えていませんが、

Inside an instance method, self refers to the instance; but inside a
class method, self refers to the class object.

ということです。

701 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 04:36:16 ]
>>700
クラスメソッド内でのselfはクラスオブジェクトを指すんですか。
それは初耳です。自分の勉強不足である可能性がかなり高いので、
確認のため紹介いただいた英文の出典を教えていただけないですか?

702 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 04:45:07 ]
OBJECT-ORIENTED PROGRAMMING AND THE OBJECTIVE-C LANGUAGE

あるいは
developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html
の The Language > How Messaging Works

703 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 04:48:24 ]
>>702
丁寧な回答ありがとうございます。やはりAppleのDeveloper Connectionのページでしたね。
早速読んで勉強します。ありがとうございましたm(__)m

704 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 08:17:21 ]
>クラスメソッド内でのselfはクラスオブジェクトを指す
Rubyでも同じですね。

smalltalk的で動的、というのがRubyと相性良い理由なのかな。

705 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 10:02:59 ]
>>701
> 自分の勉強不足である可能性がかなり高い
どうして、まっさきに、その可能性を疑わない?! オマエは mkino か?

706 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 13:01:23 ]
普通のCocoaプログラマなら誰でも知ってることをmkino氏が知らないわけないだろ。
メタクラスとかよく分からない俺でも、Obj-Cのクラスはオブジェクトであって、
NSObjectのインスタンスメソッドをクラスオブジェクトに対して呼べるくらいは知ってるぞ。

707 名前:デフォルトの名無しさん [2006/09/21(木) 17:07:41 ]
rubyCocoaってWindowsの世界で言うVBAというかCOMというか
マクロ(スクリプト?)みたいな使い方が出来るようになるの?

708 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 17:23:33 ]
WinのVBAとかCOMに相当するものはOSAだと思うんだが。

709 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 00:07:42 ]
>>706
>NSObjectのインスタンスメソッドをクラスオブジェクトに対して呼べるくらいは知ってるぞ。
NSObjectクラスの-classメソッドなんかはそのいい例だね。



710 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:20:08 ]
あのぉ、ちょっとよろしいでしょうか?
[[NSObject new] class]; が NSObject なのは分かるのですが、
[NSObject class]; が NSObject になるのはなぜですか? 
NSObject のクラスメソッドはどこに定義されているのでしょう。

711 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:25:52 ]
>>710
定義はどこって。。。
とりあえず宣言は Foundation/NSObject.h にあるけど。

>790を見なかったことにすれば全く問題ないね。

712 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:31:19 ]
>>790に期待

713 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:42:15 ]
>>710
ここ読むと分かるかも。
journal.mycom.co.jp/column/objc/016/

714 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:50:35 ]

ようし、お前らがその気ならこっちは
ProceduralSmalltalkだ

715 名前:710 mailto:sage [2006/09/22(金) 15:37:11 ]
>>713
ありがとうございます。すべての謎が解けました。
Objective-C のメタクラスはオブジェクトではないのですね。

716 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 21:10:17 ]
今までGUIプログラミングはCocoaしかやったことないんですが、
Cocoaプログラマが一番取っ付きやすいWindows のAPIってなんでしょうかね。

717 名前:デフォルトの名無しさん [2006/09/24(日) 21:52:07 ]
VB

718 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/24(日) 22:11:28 ]
Visual C# 2005はタダだから使ってみるといいかも

719 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 03:25:50 ]
↓無料だよ。
www.turboexplorer.com/jp/cpp




720 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 19:12:06 ]
>>716
GNUstep

www.gnustep.org

721 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 22:23:36 ]
GNUstepってOSXで使える?

722 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 06:44:45 ]
もちろん

723 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 10:49:05 ]
しかしOSXでGNUStep使う意味があるのだろうか…?

724 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 11:08:22 ]
>>716
WebObjects
.NET Framework

725 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 18:53:33 ]
>>723
クロスプラットフォームなソフトをObjective-Cで書きたいとか。

726 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 19:04:08 ]
>>723
古いバージョンのOSXで新しいAPIを使いたいとか。

727 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 09:52:43 ]
>>726
そんなに新しいAPI実装されてるの?

728 名前:デフォルトの名無しさん [2006/09/27(水) 15:36:01 ]
メモリリークについての質問です。

Xcodeで新規プロジェクトとしてCocoa Applicationを作成→ビルド→
パフォーマンスツールを使用して起動からMallocDebugを選択→MallocDebugのLaunchボタン→
MallocDebugのポップアップからLeaksを選択(この時点でリークはなし)→
Cocoa Applicationのウィンドウをクリックするなりしてアクティブにする→
MallocDebugのUpdateボタンを押す→「40 bytes in 1 node」のリーク発生

さらにCocoa Applicationをアクティブにするたびにリークが増えていくのですが、
これって気にしなくてもいいんでしょうか?

ちなみにターミナルからexport MallocStackLogging=YESした後、openで起動して
leaksで確認したところ、やはりリークが起こっているようです。

729 名前:728 [2006/09/27(水) 15:41:02 ]
書き忘れましたが、

OSX 10.4.7
G4
Xcode 2.4

の環境です。



730 名前:デフォルトの名無しさん [2006/09/28(木) 11:05:31 ]
OCUnitでUnitTestをしているのですが、
「オブジェクトがdealloc済であることをチェックする」にはどうしたら良いでしょうか?

dealloc 済のオブジェクトなので、何かメッセージを送ると落ちてしまいますし、
かといって、nil になっているわけでもないので、STAssertNil によるチェックも
できません。

731 名前:デフォルトの名無しさん [2006/09/29(金) 00:28:56 ]
>>728
自分も試しに、以前作った自作CocoaアプリのMalloc Debugやってみたら、
ウィンドウアクティブにするたびにリークが増えてくorz
一番最初はノーリーク。一回ウィンドウをアクティブにして、Updateすると、
40 bytes in 1 nodeのリーク。
症状全く同じだわ。
もしかして、アクティブにするたびに40bytesずつ増えてったりしない??
40 bytes in 1 node
80 bytes in 2 nodes
120 bytes in 3 nodes
160 bytes in 4 nodes
みたいに…

どなたかご存知の方いましたら、ご教示お願いします。


732 名前:731 [2006/09/29(金) 01:33:14 ]
まさかと思い、Apple純正のCocoaアプリ「計算機」でMallocDebug
やってみたら、なんと同じリークが…。ウィンドウアクティブにする
たびにリークが同じく40bytesずつ増えてく。
これって仕様なの??それとも他の理由が??
気にしなくていいということですかね?
もし本当にリークしてるなら、ウィンドウをアクティブにするのは
極力控えた方がいいってことなのかな〜(^^;)

733 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/29(金) 02:04:09 ]
どう見てもココアのバグです。本当にありがとうございました。

734 名前:731 [2006/09/29(金) 02:46:52 ]
>>733
やっぱそうなんですかね。
Appleは自分のCocoaアプリをMallocDebugにかけてないとは思えないですが…。
本当にCocoaのバグなら残念です。

735 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 04:27:46 ]
設計が古いからしょうがないですね。.NETなら原理的にありませんよ

736 名前:728 [2006/09/29(金) 09:45:54 ]
Safariをleaksで確認してて気がついたんだけど、リークしてるメモリの内容が...

英字入力状態:
Leak: 0x0581ad70 size=48 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x1b636f6d 0x2e617070 .{.t.....com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e52 le.inputmethod.R
0x6f6d616e 0x00000000 0x00000000 0x00000003 oman............

ひらがな入力状態:
Leak: 0x004a8d30 size=48 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x1e636f6d 0x2e617070 .{.t.....com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e4a le.inputmethod.J
0x6170616e 0x65736500 0x00000000 0x00000003 apanese.........

カタカナ入力状態:
Leak: 0x0584e340 size=64 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x27636f6d 0x2e617070 .{.t....'com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e4a le.inputmethod.J
0x6170616e 0x6573652e 0x4b617461 0x6b616e61 apanese.Katakana
0x00610076 0x006f0072 0x0076006f 0x00726525 .a.v.o.r.v.o.re%

全角英字入力状態:
Leak: 0x0574b260 size=64 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x2d636f6d 0x2e617070 .{.t....-com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e4a le.inputmethod.J
0x6170616e 0x6573652e 0x46756c6c 0x57696474 apanese.FullWidt
0x68526f6d 0x616e0072 0x00660061 0x0075006c hRoman.r.f.a.u.l

英字とひらがなの場合はウィンドウをアクティブにするたびにリークが増えますが、
カタカナと全角英字は増えません。やっぱinputmethodのバグですかね。

737 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 10:23:37 ]
>>735
Objective-C 2.0でガベージコレクションが導入されたら、
Cocoaも原理上リークがなくなるはずだ。

738 名前:728 [2006/09/29(金) 10:24:14 ]
とりあえずバグレポート提出してきたです。下手な英語で書いたけど、
どこか日本語で受け付けてくれるところはないんでしょうかね。

739 名前:731 mailto:sage [2006/09/29(金) 10:36:08 ]
>>738
おぉ、助かります!!早く解決されることを祈るばかりです。
できれば、Cocoaのバグではなくて、MallocDebugのバグであってほしいです。



740 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 21:16:08 ]
>>730
とりあえず思いついた方法
・ひとつ余分なretainをして、retainCount == 1となることを検証
・MallocScribble環境変数を設定して、idのサイズ分0x55になっていることを検証

741 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 21:20:21 ]
>>740
そもそもretainできない件

742 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 21:31:30 ]
-dealloc の中で「dealloc されました」って通知すればいいんでないの

743 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 22:00:28 ]
>>742
確かに。自作クラスだったら-deallocをオーバーライドして通知のためのコード
入れればいいもんね。


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を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef