トップページ⇒tech
398コメント129KB

Objective-C

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
マイナーみたいだけど、結構いいと思います。
0002デフォルトの名無しさんNGNG
スレの主旨を明確にしてくれ
0003デフォルトの名無しさんNGNG
カテゴリって意味がよくわかんないんですけど、どういったもの
なんですか?
プロトコルはjavaのinterfaceってことで納得したんですけど、
カテゴリはjavaのinner classに相当するって言われてもイマイチ
ピンとこないんです。
0004デフォルトの名無しさんNGNG
ProjectBuilderって
Windowsでいう所のどういうものなのですか?

O-C
って、言語的にどのような物と近いのですか?

おしえてクレクレ君です。ヨロツク
0005CocoaマンセーNGNG
Objective-C = C + Smalltalk
0006デフォルトの名無しさんNGNG
今月号のCマガジンで紹介されてたのを読んだけど、
良さそうですね。
MAC OS-Xがちょっと欲しくなりました。
0007デフォルトの名無しさんNGNG
gccのObjective-C対応機能って、まだ残っているんでしょうか?
随分昔に見たときには「ほぉこんなものも対応してるのか」って思ったけど、今は?
0008デフォルトの名無しさんNGNG
Windowsのまともな開発環境ってある?
0009デフォルトの名無しさんNGNG
なにいってんだ?>>8
煽り?
0010デフォルトの名無しさんNGNG
>>9
Windows用のObjective-Cの開発環境を訊いてるんだろ?
0011デフォルトの名無しさんNGNG
たんなるDelドキュとして。知識はCマガだけ(w

>>4
>ProjectBuilderって
>Windowsでいう所のどういうものなのですか?

少なくともDelよりは少し(以上)は賢いような気がする。
DelってMVCとか(のサポートが)が弱いから…。

あとMだのVだのの部品の間を線でピっと「繋ぐ」ことが
できるそうなので、それも(そういうのが無いDelより)
美味しいと思われ。

>O-C
>って、言語的にどのような物と近いのですか?

OOPの動的度で言えば
C++ << Java < Del << O-C << Ruby
ってとこか。

Class(というかInterfaceってのか?)の定義は
コンパイル時にがっちりやるみたいだけど、
それを変数の型に反映させないみたいだね。
変数について言えば型なし言語…かな。
0012デフォルトの名無しさんNGNG
参考書少ないよね。
親言語のsmalltalkより少ない。
0013デフォルトの名無しさんNGNG
確かに参考書すくないですね。。。
でもできればC++を殲滅させるほどの地位を占めてもらいたい(ワラ
0014デフォルトの名無しさんNGNG
フリーで入手可能なのって、
gnu-objective-cやトランスレーターぐらい?
0015デフォルトの名無しさんNGNG
C++ << Java < Del << O-C << Ruby
JavaとDelあたりの順位がDelドキュとしての所以か、、、
0016デフォルトの名無しさんNGNG
<< Ruby
遺憾の意を表明
0017デフォルトの名無しさんNGNG
>>11
ほんとか?
おれもDelドキュだけど。

CoCoaヤハ-゚リのページみてるんだよね。

見た目にだまされちゃいかんぞ。
JAVAStudioっていう線でピピッな
ヨゴレSun純正ツールもあるでよ。(滅びたけど。)

ProjectBuilderは
GUIでインスタンスを作れるとかきいたけど
TCompornentレベルの事ではないかな?

ちなみにOOP度で
MVCなどにこだわらなくてよしだと思われ。

言語としてどれに近いというのは余り興味なし。
開発ツールとしてどれに近いのかな?
0018デフォルトの名無しさんNGNG
>ちなみにOOP度で
>MVCなどにこだわらなくてよしだと思われ。

下手な文になっちまった。
OOP度を測る時にMVC度などにこだわらなくてヨシ
って事を書きたかったのです。
あんなもん、自然に身につく

知識がCマガだから、よっているのか。
エピステーメ氏辺りの影響かな。

OOP度は、Del<<JAVAだとは思う
でも、
実際実用にならないからJAVA要んない。
破棄を全部GCに任せる仕様は絶対おかしいって。
001911NGNG
>>18 とか。なんか勘違いされちゃったけど、

>OOP度は、Del<<JAVAだとは思う

違う違う。おらが言ったのはOOPの動的度だ。
メタクラスあるか?とか、クラスを実行時に作れるか?とか、
作れないにしても…云々…って奴。

メタクラスもどき(超サブセット)があるDelと
ぎりぎりで無いJavaとでは、ちょびっとだけDelが動的。
0020デフォルトの名無しさんNGNG
>>17
>JAVAStudioっていう線でピピッな
>ヨゴレSun純正ツールもあるでよ。(滅びたけど。)

DelのIDEとPBを比べたら、という話っすぅ。

>ProjectBuilderは
>GUIでインスタンスを作れるとかきいたけど
>TCompornentレベルの事ではないかな?

俺もその線だと思う。
ほかにやりようが無いような気がする。原理的に。

>>18
>OOP度を測る時にMVC度などにこだわらなくてヨシ

違う違う。MVCをサポートしたPBつー話。
言語(のOOP度やOOP動的度)の話じゃなくて。
まーDelでもコンポやなんか自作してそれっぽいものを作ることは
可能だろうけど、デフォ状態についてとりあえずの話。

前半と後半は結構別のことを言ってるんよ>>11は。
まぎらーしくてすまん。
0021デフォルトの名無しさんNGNG
Objective-Cの話をしない奴は帰れ!>>16-20
次レスから950までの発言には、
「Objective-C」という単語を必ず入れること!
0022デフォルトの名無しさんNGNG
Objective-Cはス八゙ラシ丁!
0023デフォルトの名無しさんNGNG
Objective-Cは数値計算につかってます。
C++では本質的なところ以外に気を取られるのがうっとうしい。
0024デフォルトの名無しさんNGNG
Objective-C
名前ナガイ。ゴロ悪い。知名度ナシ。
何か反論は?
0025デフォルトの名無しさんNGNG
Objective-C
やっぱクラスライブラリは巨大なの?
0026デフォルトの名無しさんNGNG
>>24
Objective-C
略すとO-C?
カコ悪い
0027デフォルトの名無しさんNGNG
C++でい〜じゃん。
あ、Objective-C
0028デフォルトの名無しさんNGNG
(・∀・)Objective-C
0029デフォルトの名無しさんNGNG
>>24
NeXT は大半が Objective-C でかかれていたが、
大半が C++ でかかれた OS は未だ存在しない。

Objective-C は「オブジェクト指向言語」だが、C++ はそうではない。

ビル・ゲイツは当初、NT のグラフィック部分を C++ で書かせたかったが、
グラフィック部分担当チームは開発できなかった。

何か反論は?
0030デフォルトの名無しさんNGNG
>>26
カッコつけはLISPに逝ってね<w

Objective-C
0031デフォルトの名無しさんNGNG
Objective-Cのおかげで身長が10cmちぢみました
0032デフォルトの名無しさんNGNG
そうきたか(w>31
Objective-C
0033デフォルトの名無しさんNGNG
>>29
ああNeXTはObjective-Cだったのか。さすがだ。
0034デフォルトの名無しさんNGNG
Objective-Cのライブラリには
頭にNSがつくよね、NextStepザンス
0035デフォルトの名無しさんNGNG
>>29
BeOSはC++じゃないの?
0036デフォルトの名無しさんNGNG
言語名といい、NSといい、
なんかネーミングセンスが・・・>Objective-C
c-plusplusもゴロ悪いけど>24
0037デフォルトの名無しさんNGNG
C+って読んであげるのはどう?
0038デフォルトの名無しさんNGNG
>>29 Aperiosや EPOCなど、C++でかかれた OSはいっぱいあるよ..
そういう「こんなに使われてるよ」って土俵に持ち込むと、
負けるのは ObjectiveCだよ..
0039デフォルトの名無しさんNGNG
C++b(しーぷらすぷらすふらっと)でどうよ?
0040デフォルトの名無しさんNGNG
Objective-Cってよさげだけど、参考書もないし、
まわりで使ってる人いないから、よーわからん。
マジで使い物になる?
0041デフォルトの名無しさんNGNG
++C
0042デフォルトの名無しさんNGNG
>>38
ふ〜ん。聞いたことないけど、そなの。
これでまた一歩、ひとに近づいた...。 :-)
確かに Objective-C はユーザ人口(?)では C++ とおそらく比較にならんからね。
0043デフォルトの名無しさんNGNG
Objective-C、図書館で1冊だけみつけた
(SmallTackは3冊ぐらい)
0044デフォルトの名無しさんNGNG
>>42
>ユーザ人口
MS Objective-C が出なかったのが悪いと思われ。
標準規格がなくてベンダーごとに仕様が違ったとかは枝葉末節だ。
0045デフォルトの名無しさんNGNG
>>44
OOPascalみたいね。あっちはDelphiのおかげで普及したけど。
名前カッコ悪いのは同意>Objective-C
0046デフォルトの名無しさんNGNG
>>45
delphiはそれ以外のOOPascalとは別物なんで、
「おかげで普及」ってのとはちと違うと。

ObjectiveC
素直に名付けたらゴロが悪かったんね。
0047デフォルトの名無しさんNGNG
OCBuilderとかあったらうれしかったかもしれん。
0048デフォルトの名無しさんNGNG
いっそのことJAVAみたいなネーミングにしちまえばよかったのに。
やっぱ、Cを意識するのにひつようだったてことか。

なら、名前的にはC#でもよかったんだな。
0049ヴァカマカーNGNG
オライリーからCocoa本出たage
0050デフォルトの名無しさんNGNG
マぁック開発者のMLとかBBSとかある?
0051デフォルトの名無しさんNGNG
>>50
あるけどここでURL出していいんかな?
とりあえずCocoaはやっぱり!のリンクから辿って行けるはず。

英語が読めるならAppleやOmniのがおすすめっぽい。
0052Objective-CはNGNG
大括弧がうざい。
0053デフォルトの名無しさんNGNG
>>52
C#もね。
0054デフォルトの名無しさんNGNG
>53
大括弧おおかったっけ?
0055デフォルトの名無しさんNGNG
大カッコってコレ?>[]
((((((lispはカッコウザイけど、メリハリが無いのが一因かと。)))))))
0056デフォルトの名無しさんNGNG
>55
>大カッコってコレ?>[]
そう。
0057デフォルトの名無しさんNGNG
ウザイってほど使ってるの?>[]
真にウザイのは何も考えずに書いたlispのカッコだらけのコードだと思うけど。
(コレはCのネスト構造同じ様に、減らす努力はできる。)
0058デフォルトの名無しさんNGNG
何だかCやC++では使わないからウザイと言っているように感じる。
0059デフォルトの名無しさんNGNG
Objective-C : [クラス変数名 メンバ関数];
だったかな?
0060デフォルトの名無しさんNGNG
ところでO-CでもC++みたいな「クラス変数」なんていう
危険な用語を使うんでしたっけ?
クラス変数なんて呼び方じゃ、まるでインスタンス変数とは別物みたい
なんだけど、なんかC++方面ってインスタンス(ないしはオブジェクト)
とクラスとの用語をごっちゃにするのが一般化してるよね。困る。

[インスタンス メッセージ名]
でしたっけ?>O-C

だから、C++なら
hoge.do1().do2().do3() と書くところを、O-Cは
[[[hoge do1] do2] do3] と書く…んだったよな…

まぁやや多いとは思うけど、泣くほど多くはないし、
カッコで囲うってことはエディタのカッコ対応チェック機能
(viの%コマンドとか)で範囲を調べるのが楽ってことだし。
0061デフォルトの名無しさんNGNG
Cの文法の中にSmalltalk風の文法(つまりメッセージ送信)を
紛れこませたかったので、メッセージ送信構文を[]で囲って
"環境"を切り離したかったものと思われ。

Smalltalkの構文だと空白だの":"だのを使ってて
Cとはあまりに親和性無さ過ぎなので、
切り離したかった気持ちはわかる気がする。
0062デフォルトの名無しさんNGNG
oc
0063デフォルトの名無しさんNGNG
age
0064デフォルトの名無しさんNGNG
だれかO-Cならではってコード書いてくれ。
0065デフォルトの名無しさんNGNG
age
0066デフォルトの名無しさんNGNG
>hoge.do1().do2().do3()
>[[[hoge do1] do2] do3]
引数がいるときは
hoge.do1(arg1).do2(arg2).do3(arg3)
[[[hoge do:arg1] do2:arg2] do3:arg3]
()と[]の数は同じ。
0067デフォルトの名無しさんNGNG
問題なのは括弧の数じゃなくてネストの深さなんじゃ?>66
0068デフォルトの名無しさんNGNG
うーん。どうなんでしょう?
ネストが深くなるのって即ち「問題」なんでしょうか?

悪い面はなんとなく直感的にわかる
(というか直感的に感じるソレそのものが欠点なわけだ)けど、
良い面もなにかあるような気がする。
0069デフォルトの名無しさんNGNG
>>68
ネスト前提な言語(lispとか)はなにも考えないとどんどん深くなるよ。
一因は内部定義が書けるからだけど。
例えばこれ、見やすいと思う?
(当然これよりも長くて深くなるコードは沢山ある)
(define fib
  (lambda (n)
    ((lambda (fib-iter)
       (set! fib-iter
         (lambda (a b c)
           (if (= c 0)
             b
             (fib-iter
               (+ a b)
               a
               (- c 1)))))
       (fib-iter 1 0 n))
      ())))
007066ですNGNG
[[[hoge do:arg1] do2:arg2] do3:arg3]
hoge do:arg1 do2:arg2 do3:arg3
Objective-Cの[]ってただ付いてるだけだと思います。
[]をとるとSmalltalkと同じ。
0071デフォルトの名無しさんNGNG

BeOSって、c++でかかれているがために、コアの拡張において致命的な問題があって………
っていうのをどこかで読んだことがある。
詳しい情報しってる人URLきぼーん

Objecive-Cマンセー(´∀`)
0072デフォルトの名無しさんNGNG
>>71
BeOSは知らないけど、C++でOSを書いたってことは、
どっかAPIが変化したらOS全体をフルビルト
し直さないとならないってことだよね(藁
しかもLinuxみたいなオプソなら
我慢してでも一応ビルドできるけど
そうじゃないOSだとメーカーがビルドしてくれるのを
ひたすら待つことになる。

MFCのCRuntimeClassとかいう奴(MFCスレで見た)みたいに
動的Classを扱えるように拡張しているならば
回避できる可能性があるけど。

Objective-Cはメタクラスが有るんでしたよね。
こういう場合に強み発揮するだろうな。
0073デフォルトの名無しさんNGNG
>>72は、COMやCORBA等について勉強すること。
0074デフォルトの名無しさんNGNG
>>72は、仮想メンバ関数について勉強すること。
>>73は、コンポーネント間通信のオーバヘッドについて勉強すること。
007572NGNG
Objective-C広まれage

>>73
CORBAとかは後付けっしょ。C++に「出来ない」ことを
ラップしている。C++自体の能力が拡張されるわけじゃない。

>>74
仮想関数の仕掛けでは、既に存在していて、かつ存在が
(RTTIとか使って検索しなくても)判っている、
というメンバしか呼べないが?
未知のクラスをOSに「登録(というのかなあ)」できるようにして
それのメソッド一覧とかを動的に取得したい(OSに取得させたい)
と思わないかぃ?
0076デフォルトの名無しさんNGNG
メタクラスがあると再ビルドの必要無いんですか?>>72
0077デフォルトの名無しさんNGNG
?
0078デフォルトの名無しさんNGNG
>>76
メタクラスというよりRTTIだろうな。
それさえあれば極端な話、関数名の文字列を与えれば関数を起動できるんだぜ。
だから、ビルドなんか要らぬ。
0079デフォルトの名無しさんNGNG
引数の型は?>78
Cのargc/argvみたいにするんですか?
0080デフォルトの名無しさんNGNG
>>75
おれ、もしそういうことがしたいなら、文字列か数値リテラル
IDをもつ関数ポインタ(か、Commandパターンインターフェイス
実装クラス)でハッシュテーブルのSingletonクラス作っちまうが。

ローカル版簡易ネーミングサービスもどき。
0081デフォルトの名無しさんNGNG
知ったかぶりの臭いが。
0082デフォルトの名無しさんNGNG
文字列伝播ということは、型情報とかは失われるわけですか?>80
008378NGNG
>>82
いわゆるシリアライズでやっちゃえ。
そうすりゃ送り先でObjectに戻せるぞ。

で、シリアライズで寄越された奴が
未知のClassだったりしても大騒ぎせんで済むように
なってると吉だぞ。
未知の(OSがビルドされた時点では未知の)クラスでnewできるからね。
0084デフォルトの名無しさんNGNG
うーむ未知のクラスをnewできるというのが判らない・・
型情報も文字列で持って置くってことでしょうか。
"class point {
offset type size name
0   int  4  x
4   int  4  y
}"
とか。
別に可視でなくてもいいか・・
0085デフォルトの名無しさんNGNG
例えば、クラスオブジェクトを文字列から探し出して、そいつに、
clone()とか発行すれば、「知らないクラスをnew」できる。
あとは、言語仕様とかいって、この動作を隠蔽すればいい、
と思うがどうか。
0086デフォルトの名無しさんNGNG
ええと一応補足。おれは
未知のクラス「で」newって書いたんだ。
未知のクラス「を」newじゃない。

いや、MetaClassにClass(というInstance(藁))を
newさせて新規Classを作ろう、という話なら
それでもいいんだけど。(なぜならその新規Classに
更にnewさせれば所謂普通のInstanceが得られるから)

>>85
まぁ乱暴にいえばそれ。
クラス「を」という言いまわしがが心配だが。

ちなみにdelは卑怯だから、そういう意味での「ClassObject」を
持っていない。Class参照変数型は有るが、参照の先に
なにがあるのかは(ユーザーからは)知ることあたわず。
つまりClassObject「を」newする場面は無い。

function GetClass(const ClassName: string): TPersistentClass;
なんてのはあるようだ>del
ClassObjectはシングルトンになってるんだろうな。
newも起動時かどっかで勝手に行われているのだろう。
0087デフォルトの名無しさんNGNG
age
0088デフォルトの名無しさんNGNG
本が出てるぞage

MacOS X プログラミング入門
Objective-C
萩原剛志
0089デフォルトの名無しさんNGNG
>>88
買う気は無かったのに、本屋逝って立ち読みしたら意外に良かったので
買ってしまったぞ。

zoneアゲ
0090デフォルトの名無しさんNGNG
漏れも、地味によい本だと思ったage。
Macは興味ねーけどObjective-Cの本欲しいんで買った。
0091名称未設定NGNG
>>88
新・Mac板の新・ProjectBuilderスレで紹介されていたので買ってしまいました。
現在、ババ抜きの部分を読んでる途中....
0092デフォルトの名無しさんNGNG
>>90
>Macは興味ねーけど
泣けるね。

MAC使って開発してる人って、この板の何パーセントぐらいだろう。
0093デフォルトの名無しさんNGNG
>泣けるね。

Macって、「見習いたい」面は多いとは思うんだが、
だからって自分でも買いたいか?というとそんなこたぁなくて、
なんというか読みたいけど立ち読みでいいやっていう感じ。

わざわざ単一実装であるハードとOSを
買いたいとは思わないな。
似たようなものを(別のもっとOPENなハードやOSの上に)
作ったり誰かに作ってもらったり(=立ち読み)はしたいと思うけど。
しかも、似たようなといっても「全体が」似てなきゃならんなんてことは
全然ないわけで、欲しい部分だけ似てりゃいい。
うざいと思う部分も多い(というか比べればそのほうが多い)し。

で、大昔、それを裁判のネタにしたわけよなAppleは。
そういやハードもちょっとOpenにしたあと急にCloseしたよな。
そういう姿勢、嫌い。

あの本にも書いてあるが、つまりはフツー(わら)の
Unixやwinの上で、gccをObjective-Cアリでmake
しなおしゃいいわけで。
変にMacまんせーな本じゃないんで安心して読めるよ。
0094デフォルトの名無しさんNGNG
>>93
でもそれなりに面白いよ>macでのプログラム

仮想メモリが無い(あってもインチキっぽい)換わりにResourceMgrがあったり
ToolBoxの設計の基本部分は本物の天才連中がしたわけだし
MacAppのフレームワークは凄いと思うし
PowerPlantは面白いし
今度はNeXTだって言うんだから、なかなか興味深いモンがあるよ
0095デフォルトの名無しさんNGNG
>>94
天才なのはQuickDrawの所だよね。昔のASCIIに詳しく乗ってた。
でもMacには標準出力も入力も無いんではっきり言って不満だった。
OSXはその点いいよね。まだOSとしてクソだけど。
0096デフォルトの名無しさんNGNG
>>95
unix流の標準入出力は糞だろう。
ただし、それ(の代替手段)すらないなら、もっと糞だが。

Javaみたいな世界(言語そのものはどうでもよく、環境の話)が
今後は流行って欲しいなあ。
0097デフォルトの名無しさんNGNG
で、話を戻そう(わら

CocoaってのはObjective-Cベースの「環境」だと思っていいわけ?
(単にUnixの上にObjecitveCアプリがぶらさがるだけじゃなくて、という意味)

いいのだとすると、そこにはJavaに匹敵するパワーが
少なくとも技術的には存在するはずだよね。
0098名称未設定NGNG
>>97
通りすがりのものですが、
多分それでいいと思います。
Cocoaの部分はほとんどがOPENSTEPの資産を使って作っていますし、
OSXの開発環境としてのJavaはおまけとして後から付け加えたものですから。
0099 NGNG
0100デフォルトの名無しさんNGNG
>93

あの本の後半はMacOS X の為だけのものじゃないの?
gccについて書いてあるところでも「この本のソースはほかの環境では
動かない」ってかいてあるし。
Win32+cygwinとかだと参考にならんでしょ。
Objective-Cは言語としては魅力的だけれど開発環境がとぼしくて
つかいものにならない。
あの本買うよりFreeの"Object-Oriented Programing and the Objective-C Language"
を読んで,gccで適当に趣味で使うのがいいんじゃない?
0101デフォルトの名無しさんNGNG
>Win32+cygwinとかだと参考にならんでしょ

「そうか!こういうクラスの作り方もあったんだな」
という意味では、あれ参考になったよ。
AutoReleasePoolとかZoneとかも参考になった。
なんで今までこれが(自分の周囲に)無かったんだろう?って。

移植なんて大それたことをする気はないが、
幾つかのクラスは喜んでパクらせてもらおうかと。

あと、Mac世界について「安心」というと
もう1つ意味があるわけで…おっと(わら
0102デフォルトの名無しさんNGNG
age
0103デフォルトの名無しさんNGNG
>>88の本、買っちゃった...
0104デフォルトの名無しさんNGNG
Objective-Cの離婚パイラってないのん?
0105デフォルトの名無しさんNGNG
ハァ?
0106デフォルトの名無しさんNGNG
age
0107デフォルトの名無しさんNGNG
gccのObjective-CでC++用のライブラリはリンクできるんでしょうか?

やっぱ一つ一つソースレベルで手で変換してやらなくちゃだめなのかな〜
0108デフォルトの名無しさんNGNG
>>107
http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/900/997.html
Objective-C++の実装が進んでるらしい。
0109107NGNG
>>108
見てみました、がリンク先が消えてました
一応使いたいライブラリのObjective-C版のラッパをどっかの誰かが
開発中らしいんでそっちに期待
0110デフォルトの名無しさん01/08/28 17:29ID:iOvUzZpU
MacOS XってObjective-Cなんだ。ちょっと欲しくなった。
昔、趣味でNeXTでプログラム組んでたけど、未だにApplicationBuilderより使いやすい
RAD環境を知らない・・・
200万以上したNeXTも今では押入にしまいっぱなし(笑)
0111デフォルトの名無しさんNGNG
>>88の本を買ってしまった…Cなんて全く知らないと言うのに…
0112111NGNG
あ〜もう概念だけでお腹いっぱいって感じ…
だが、4500円は無駄にはせんぞ、絶対。
0113103NGNG
本買ったのはいいが、そのままほったらかしだ...
>111
お互い、がんばろうな。
0114111NGNG
>>113
おお、同志! つ〜か専門用語ばっかで訳わかんねえですわ。
「引数って何よ」って感じで。辞書に載ってねえよ!
0115デフォルトの名無しさんNGNG
>>114
>「引数って何よ」って感じで。辞書に載ってねえよ!
 ノー!そこからかよ
まずCやるよろし
0116111NGNG
>>114
すんません、今、初心者向けのページで勉強中です。
え〜と、引数ってのを調べてみたんですけど、printf()とかの
カッコの中に書く情報が「引数」でいいんですよね?

スレと関係無いんでsageときます。
0117111NGNG
どあっ! >>>114じゃなくて>>115でした。
更に恥を…逝ってきます。
0118デフォルトの名無しさんNGNG
>>114があまりにもレベルの低すぎる発言をしたんで、
スレの流れが止まったぞ。おい。
age
0119デフォルトの名無しさんNGNG
そういえば gcc て Objective-C++ にビルドできなかったっけ。
なんかものすごく強力そうな気がするが。(藁
0120デフォルトの名無しさんNGNG
MacOSXでもgccが標準でしょ。
Object-CとObject-C++は具体的にどう違うの?

個人的に表記法はC++というかJavaというかそういう
文法が好きなのだが。

ちなみに>>119は何を言ってるのか不明。逝っていいかも。
0121デフォルトの名無しさんNGNG
OCはカス
0122デフォルトの名無しさんNGNG
Objective-Cは、charがCのcharそのままでOO風に扱えないのが、
日本語化やi18nが面倒でいやん、とNeXTSTEP時代に思っていたが、
MacOS Xは、Unicodeが基本でぎゃふん。
0123デフォルトの名無しさんNGNG
それって、sizeof(char) == sizeof(wchar_t)って事なのか、
char *str = "string"; がダウトなのか、どっち?
0124119NGNG
>>120
Objective-C = C + smalltalk
Objective-C++ = C++ + smalltalk
なんじゃないかな?
使ったことないからよくわかんないけどさ。
本当にそういう風にビルドできるのかも知らんよ。(藁

>>123
コンパイラの話じゃなくて、
API が Unicode ベースつーことでわ?
0125114NGNG
すんません、レベルの低い114です。
C勉強ページによくある"Hello!"とかいうのをObjective-Cで挑戦。
#import <Foundation/NSObject.h>
#import <stdio.h>

@interface Greeting:NSObject
-(void)greeting;
@end

@implementation Greeting
-(void)greeting{printf("Hello!\n");}
@end

int main(void)
{
[[[Greeting alloc]init]greeting];
return 0;
}

Terminalに「Hellow!」と出た時にはもう嬉しくって(w
「ここはこうした方がいい」とかあったら指摘してやって下さいな。
0126デフォルトの名無しさんNGNG
>>125
Hello World!
じゃなきゃダメ。
0127デフォルトの名無しさんNGNG
>-(void)greeting{printf("Hello!\n");}
>Terminalに「Hellow!」と出た時にはもう嬉しくって(w

Hello! とコーディングしたのに
Hellow! と表示されるってのは、重大な問題でわ?(ぷ
0128デフォルトの名無しさんNGNG
>>Objective-C++
STLのLISTにNSObjectを詰めてイテレータで回せるとか?
0129デフォルトの名無しさんNGNG
>>127
ワラタ
0130デフォルトの名無しさんNGNG
>>Objective-C++
なんか頭悪そうな言語だな
0131デフォルトの名無しさんNGNG
>>128
それ嬉しいんでしょうか?#C++に慣れてるからという理由ならば置いといて。
ObjectiveCに有る(既に有るかどうかは知らぬが自作だって可能だろうし)コンテナクラスで
それをやれば済むことなのでは?
0132128NGNG
>>131
やっぱりそのくらいじゃ嬉しくないか。

C++のstringとNSStringを多重継承して、
両方のメソッドを呼び出せるってのはどう?

NSCPPString *str = [NSCPPString stringWithCString: "Hello"];
printf("%s", str->substr(0,[str length]) + " world!!");
0133レベルの低い114NGNG
自分で書いておいて何なんですが、>>125のクラス"Greeting"が具体化した
オブジェクトって、どこに格納されてるんでしょうかね?
どこにも宣言してないし…宣言を省いたら自動的にid型でどこかに格納されてるのか、はて?

>>127
ぐっは…また恥を晒してしまった…逝ってきます。
0134デフォルトの名無しさんNGNG
>>133
(mallocと同じように)ヒープに確保されて、使われて、そして放置されているのかも。
0135デフォルトの名無しさんNGNG
>>123
unicharって型が出来ていて、(たぶんUCS-2); しかし凄い命名センス…流石apple.com)
NSStringってclassも増えてるな〜。(NeXTSTEPにはなかったと思う)
0136デフォルトの名無しさんNGNG
>>134
そのクラスが、ガベコレもどき、つまり
「後で自分を消してもらうためのObject」に自分を自動的に(つまりinitで)登録
するようなクラスならば、あとでそいつに開放してもらえるだろう。

そうでなければ、仕事が終われば永遠に迷走。所謂メモリリーク。
どうせプロセス終了で片付くからイイという意見も有るが。
0137レベルの低い114NGNG
>>134 >>136
なるほど、「どっか」に格納されて、そのまま放置されてるんですね。
こりゃ危険だ…。じゃあ、>>125のオブジェクトを生成する部分を、

id obj=0;
obj=[[Greeting alloc] init];
[obj greeting];

みたいにきちんと指定してやれば、大丈夫ですね。
…メモリ管理に関しては、今、その部分を読んで勉強してます。
0138デフォルトの名無しさんNGNG
>>137 obj = [ [ [ Greeging alloc ] init ] autorelease ];
0139レベルの低い114NGNG
うああ、なんかコンパイルしてたらエラー吐いたんですけど、
/usr/bin/ld: Undefined symbols:
.objc_class_name_NSObject
_objc_msgSend
これって「NSObject」が不確定だってことですよね?!
OSXごと全部再インストールしたんですけど、なんかダメみたいです。
これってどうすればいいですか?
0140レベルの低い114NGNG
自己レス。
何のことはなく、コンパイルの時に
-framework Foundation
のオプションつけ忘れてただけでした…
Cの教本買ってきて読んでたもんですからすっかり忘れてました…

一晩悩んだ結果がコレか…
0141デフォルトの名無しさんNGNG
-I のかわりの -F なんてのもあったはずず
0142レベルの低い114NGNG
>>138のをやってみたんですが、実行すると、
Hello!
Bus error
とか出やがります。
(インターファース部で何も上書きせずに"NSAutoreleasePool"を宣言しないと
コンパイルエラー吐くし…)
試しにprintf("%d",[obj retainCount]);
とかやってみたんですけど、結果は同じでした("1"と表示されると思ったのですが…)。

もしかして「Bus error」って出るのは、リファレンスカウンタが0だからでしょうか?
0143デフォルトの名無しさんNGNG
>Hello!
>Bus error
ワラタ
0144デフォルトの名無しさんNGNG
int main(){
id pool, obj;
pool = [NSAutoReleasePool alloc]init];
obj = [[[Greeging alloc]init]autorelease];
[obj greeting];
[pool release];
return 0;
}
0145デフォルトの名無しさんNGNG
コンパイラがちょっと頑張れば
obj = [Greeging alloc init autorelease];
と書けるはずなのに。

プリプロセッサだったころの手抜き仕様をそのままひきずってるところがイヤ。
いちいちカーソルを M-b で戻して [ を打ってまた M-f で進めて…。
0146デフォルトの名無しさんNGNG
>>145
頑張らないところがイイんじゃないの?
Lispと同じでさ。
素朴なことしかしてない簡素なコンパイラであるってのが。

C調ソースになれちまうと、どうもSmalltalkみたいな書き方は
感覚的に受けつけなくて、ねえ…
0147レベルの低い114NGNG
>>144
遅レスすんません、Cの勉強してたもんで…
何から何まですんませんね。でも、それだとなんかコンパイル通らないんですよ。
いろいろいじってやってみたところ、新規プロジェクトで「Foundation Tool」を
作った時にデフォルトで”NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];”
という文字列が出てきたんで、これを使ってみる事にしました。
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

id obj;
obj = [[[Greeting alloc] init ] autorelease];
[obj greeting];
[pool release];
return 0;
}
mainの宣言の所で何やってるかまだわかんないし、NSAoutoreleacePool * poolってのが
何やってるかわかんないんですが、これでなんとかオブジェクトの解放に成功したみたいです。
いろいろ教えていただいて、ありがとうございました。
もっと勉強せねば…
0148デフォルトの名無しさんNGNG
結局の所、この言語ってどこで使うのですか?
例えばC++はいろんなところ、
Javaはいろんなところ、
じゃあ、O-Cは?
てな感じでイマイチそのところが分からなくて
手を付けようか迷ってる次第です。
0149デフォルトの名無しさんNGNG
>>147
144どす。出来の悪いソースを載っけてすまんです。お詫びにどうぞ。
ttp://www.fsinet.or.jp/~nito/CocoaClub/
ttp://www05.u-page.so-net.ne.jp/xd5/mkino/HMDT/
ttp://www.fsinet.or.jp/~nito/OSPT/index.html
ttp://www.midi.co.jp/objc0.html
ttp://www.stepwise.com/
ttp://www.oreillynet.com/mac/
ttp://www.omnigroup.com/community/mailinglists/
0150レベルの低い114NGNG
>>149
わ〜い! 知らない勉強ページがいっぱいだ〜!
ちょうどメモリ管理について言及してるページもありますね。
何から何まですんませんねぇホント…

>>148
荻原式(>>88の本)に書いてあったんですけど、どうやら
gccでも普通にコンパイルできるとか。でも、それだとCocoaの
Foundation kitとか使えないですよね。
あとは…OPENSTEP入れるとか?
0151デフォルトの名無しさんNGNG
>>150
いえ、そういう意味でなくて
実際に活用する場面はどこかなという意味だったのです。

Javaはどのマシンでも動くプログラムが書きたい時に使うとか
アプレットを作りたい時に使うとか...

O-CはマックX関連機能の開発にとどまるのならどうなのかと。
0152レベルの低い114NGNG
先日買ってきたCの解説書をやっと読破できました…あ〜眠。
概念だけで文法とか全然覚えてないですけど。

>>151
あ〜なるほど、すんませんです。
そういう事でしたら、現状ではMacOS X関係オンリーになってしまうのでは
ないでしょうか(もちろんUNIXやLinuxのソフトの開発もアリでしょう)。
ただ、OPENSTEPの元であるOpenStepは(紛らわしい)、オープンソースらしいので、
もしかしたらWin環境に移植なんて事もあるかもしれません。

あと、>>149のリンク先のttp://www.midi.co.jp/objc0.htmlでは、なんか
cgiがどうのこうのってやってます。詳しい事は良くわかんないんですが。

…これは噂の域を出ないんですが、新Mac板で「AppleがAMDのCPUを採用する」なんて
話がありまして。もしこれが実現して「MacOS X for AMD」が出た暁には、もっと
広い範囲でのソフト開発ができるのではないでしょうか。
(結局MacOS X絡みなんですが…)

なんかえらそうな事ばっかり言ってすんませんです。
0153デフォルトの名無しさんNGNG
>>152
いえいえ、御丁寧にありがとうございますm(_ _)m
そうですか、やはりOSX関連ですか。
そうなるとやはりマイナーな モゴモゴ…・・・
使い道が限定 フガフガ…・・

でも逆に考えれば財宝が眠っているわけですね。
totoを買うよりも回収率がいいかもしれない....
0154デフォルトの名無しさんNGNG
Objective-C といえば、gyveってどうなったのかナー
ttp://www.aist-nara.ac.jp/~masata-y/gyve/gyum/
0155デフォルトの名無しさんNGNG
Mac OS X10.1&PB1.1登場age

Objective-C++が使えるらしい。
0156デフォルトの名無しさんNGNG
ぬは…10.1にアップデートしたらProjectBuilderがぁ…

PB1.1、早く落とさせてくれないかなあ…
0157デフォルトの名無しさんNGNG
>>155
なんか名前からしてすごそうだけど、0-Cと何が違うの?
0158デフォルトの名無しさんNGNG
OS10.1 + DevTools for 10.1 + WO5の順番で使える > 156
0159デフォルトの名無しさんNGNG
>>157
http://developer.apple.com/techpubs/macosx/ReleaseNotes/Objective-C++.html
0160157NGNG
>>159
Thanx. I'll read it.
0161レベルの低い114NGNG
あ〜、やっと荻原式を読破。
また最初っから読み返してます。

しかし、>>144と>>147の違いって何なんでしょうね?
前者はid型で変数宣言してるのに対し、後者はNSAotureleasePoolの
インスタンスが入る事を明示しているだけなんですよね。

>>144のを見てから後でいろいろ変更を加えたりしてましたから、
もしかしたら原因は別の所にあるのかもしれません。
(Interfaceで-(id)greetingとしているメソッドを-(void)greetingと
していたり)

何にせよ、まだまだ勉強不足が否めませんね。
あ〜、2chブラウザとか作りて〜!
0162デフォルトの名無しさんNGNG
>>144と>>147では、実行時の挙動には全く相違はない。
ただ、id型ではなくどの型のオブジェクトが入るのか明示しておくことで、
そのオブジェクトが宣言していないメソッドを使っていたら、
コンパイルの段階で警告を出してくれるようになる。

>>161
実はCocoa製2chブラウザはもうあるのですよ(w
http://teri.2ch.net/test/read.cgi/mac/988273635/
オープンソースだし参考にしとけ。
0163デフォルトの名無しさんNGNG
age
0164デフォルトの名無しさんNGNG
Ojjective-C++って例外処理はどうやってんの?

たしか、Objective-Cではsetjump,longjumpのマクロだった気がするんだが、
Objective-C++だとthrow,catchのマクロになってるの?
0165デフォルトの名無しさんNGNG
>>164
http://homepage.mac.com/mkino2/spec/objectiveC++/objectiveC++.html
↑ここ読みなはれ。
ちょっとややこしいことになっている。
0166デフォルトの名無しさんNGNG
POCというコンパイラを使っています。
GNU一般公有で、ソースも公開されています。
URL: http://users.pandora.be/stes/compiler.html


このコンパイラだと、C++ のコードを、
Objective-Cのコードと混在させることができます。

つまり、C++ のSTLをObjective-Cで使うこともできます。
しかし、自分は C++ が分からないので使っていません。

自分が使っているのは、UNIX用ですが、Windows用もあるようです。


このPOCのcakitのAPIで、お聞きしたいことがあるのですが、
このスレッドに、cakit に詳しい人はおられますか?

"Vectorのインスタンス同士の sameClass が false になる"

という現象が起き、途方にくれています。

よろしくお願いします。
0167デフォルトの名無しさんNGNG
>>166
#include <stdio.h>
#include <objpak.h>
#include <cakit.h>
#include <stdlib.h>

int main(int argc,char **argv)
{
id vec2;

id cltn = [OrdCltn new];
[cltn add:[BigInt int:3]];
[cltn add:[BigInt int:4]];

vec2 = [Vector collection: cltn];

printf("%d %d %d %d\n",
1==1,
vec2->isa == [vec2 class],
[[vec2 scalarZero] isEqual: [vec2 scalarZero]],
[vec2 size]
);

[vec2 printOn:stdout];

[vec2 free];
return 0;
}

これの出力が

% a.out
1 1 0 0
{3,4,0,0}

になります。
0168デフォルトの名無しさんNGNG
>>166-167

すいません。

よく見たら、

- scalarZero:aScalarZero numScalars:(int)numScalars
{
return [self notImplemented:_cmd];
}

でした。

なんか、実装されてないみたいです。

POC を使っている人は、どうしているんですか?
0169デフォルトの名無しさんNGNG
こういうのを、無駄な努力っていうんでようね…。
久しぶりに悲しくなった。
0170デフォルトの名無しさんNGNG
勝手にとばないでくれぇぇ.
0171デフォルトの名無しさんNGNG
Morphic インストール失敗中。
だれか、成功した人、いますか?
0172デフォルトの名無しさんNGNG
はい
0173かじり中NGNG
[thred age]
0174デフォルトの名無しさんNGNG
ObjectiveCから入門しても、他の言語に移る時大丈夫ですか?
0175デフォルトの名無しさんNGNG
>>174
ObjectiveC から始めた人が他の言語に移るときの僕の予想

ObjectiveC -> Squeak(SmallTalk)
: 文法が分かるだけに、GUI にイライラする。

ObjectiveC -> Java
: [] から () に変わるので違和感を感じる。
: 配列操作と簡単なファイル操作が楽だなぁと思う。
: APIマニュアルが嬉しいと思う。

ObjectiveC -> C
: malloc が面倒臭いと思う。

ObjectiveC -> C++
: 気が狂う。
0176デフォルトの名無しさんNGNG
Javaっすか。ありがとです。
0177デフォルトの名無しさんNGNG
>>176
オブジェクト指向のメッセージ通信というのが、
Java では分かりにくいかもしれない。

ObjectiveC の文法を見て始めて
メッセージ通信というのが実感できた。
0178デフォルトの名無しさんNGNG
>>175,177
ふむ。情報サンクスです。
まずはObjectiveCを修得するのが先ですが。ゎー
0179デフォルトの名無しさんNGNG
Objective-C 使って GUI 作るとしたら GNUstep 使うしかないのでしょうか?

NSButton *gikoButton;

gikoButton = AUTORELEASE ([NSButton new]);
[gikoButton setTitle: @"Print Itteyoshi!"];
[gikoButton sizeToFit];

こんな感じでやってみたいんだけど。
0180デフォルトの名無しさんNGNG
>>179
GUI だけは、 GTK/GDK を使って誤魔化している。

全部 ObjectiveCでやりたいので、
Morphic導入を検討したが、インストールすらできなかった。

あと、噂で、gnome-objc らしきものがあるらしいのですが、
これで GUI を構築している人いますか?

検索しても、サイトへのリンクが切れているので、詳しい人お願いします。
0181SelfNGNG
Smalltalk の Morphic や MVC、Objective-C の GUI ライブラリみたいな、
オブジェクト指向の GUI ライブラリで、多言語から使える物ってないのかな。
オブジェクト指向 GUI ライブラリ決定版! みたいな物が欲しい。

まだ出てないと思いますが、Objective-C 関連 FAQ.
http://www.ics.es.osaka-u.ac.jp/public/netnews-archive/FJ.ARCHIVES/fj.archives.answers/Objective-C/answers.j
http://www.ics.es.osaka-u.ac.jp/public/netnews-archive/FJ.ARCHIVES/fj.archives.answers/Objective-C/classes.j
http://www.ics.es.osaka-u.ac.jp/public/netnews-archive/FJ.ARCHIVES/fj.archives.answers/Objective-C/sample.j
0182SelfNGNG
>>180
Gyve?
http://www.aist-nara.ac.jp/~masata-y/gyve/gyum/

obgtk?
http://www.interq.or.jp/earth/inachi/gtk/obgtk/intro.html

http://www.airlab.cs.ritsumei.ac.jp/~taka/GYVE/ML/archive.old/msg00081.html

どちらかというと Tk の見た目が好きです。
メニューがティアオフ出来るところとかも。
0183デフォルトの名無しさんNGNG
>>182
どうやら、探していたのはこの obgtk のようです。
サイトの ftp のリンクが切れて、ダウンロードできません。

名前が変わったのでしょうか?
公式サイトを見つけたいので、適切な検索語などありましたら、お教え下さい。
0184SelfNGNG
>>183
obgtk は gnome-objc の中に入ってます。
gnome-objc を ftp してみて下さい。
gnome 無しで使えるのかどうかは分かりませんが。

gnome-objc
ftp://ftp.gnome.org/pub/GNOME/stable/sources/gnome-objc/

GToolKit はドキュメントやサンプルがそれなりに充実しています。
興味がありましたら試してみてください。

GToolKit
http://www.informatik.uni-osnabrueck.de/elmar/projects/gtoolkit/

ここもお勧めです。

Objective-C Links
http://www.foldr.org/~michaelw/objc.html
0185デフォルトの名無しさんNGNG
>>184
胸のつかえがとれたようなきがします。

さっそく試していますが、コンパイルをミスりまくりです。
(Solaris x86)
家に帰ってから Linux で試してみます。
0186YONGNG
YO
0187デフォルトの名無しさんNGNG
Morphic 使っている人、外観はどんなですか?
画像とかどこかにあれば、お教え下さい。
0188デフォルトの名無しさんNGNG
Squeak(Smalltalk) で C のコードを書いているが、楽だ。
やめられん。
僕のコードを解析する人は、自動生成されたコードの方を解析している。
みんな、ごめんね。
0189デフォルトの名無しさんNGNG
動的結合age
0190名無しさん@XEmacsNGNG
>>188
もしかして CCodeGenerator 使ってる?
ぜひTipsをば教えて下さい!!
Squeakスレで。
0191デフォルトの名無しさんNGNG
>>190
Squeak ObjectiveC translator
ttp://swiki.gsug.org:8080/sqfixes/1251.html(なぜか今はつながらない)

配列が array[i] といった感じに展開されるので、
at: put: や value: といったように置き換える。
(この辺は Emacs や awk の機能でなんとか自動的に行う)

実装されていないメソッド(printf: や printf:f: など)
を実装する。
(これは、手作業。慣れてくるとテンプレートが使える)

これを繰り返すとなんとかコンパイルできる。
(時間がかかっても 5分くらいでコンパイルできるようになる。
それ以上、時間がかかるものは大概、自動変換は無理。)

ファイルの先頭に使うインクルードファイルを書き込む。
(使用するObjectiveC コンパイラ(gccやPOC)によって適当に。)

おそらく、UNIX だと、文字コード問題でコンパイルができないと思います。
それを解消するために、
「w3m や NC などでファイルを閲覧 -> バッファを保存」
という手順で文字コードを変換しています。

これを ObjectiveC でデバックする人は、たいへんだと思います。
0192デフォルトの名無しさんNGNG
Morphicインストールした人、参考Webページおしえて下さい。
0193デフォルトの名無しさんNGNG
泣きたい。
0194デフォルトの名無しさんNGNG
部所の説得に失敗した。
ObjectiveC か VB かだったのだか、
VBに乗り換えざるをえなくなった。
0195デフォルトの名無しさんNGNG
>>194
>ObjectiveC か VB かだったのだか、

へんな選択肢だな。
0196自削自炎NGNG
ObjectiveCでDLL書いてVBで使用。これ最強。
しかしチームで開発する時に、保守しにくくなる可能性があるという
諸刃の剣。プロジェクトにはお勧めできない。
まぁ、>>194はこの意見も参考にしてくださいってこった。
0197_NGNG
機能はカッコ良いけど
見た目がカッコ良くない・・・
0198デフォルトの名無しさんNGNG
>>195
まず、部所でこれまで使っていたのがVB。
大学がつくってくれたプロトタイプがObjectiveC。

これを機に、MS依存から脱却できればと思ったのだが、派手に沈没した。
0199デフォルトの名無しさんNGNG
>>198

理解できる人がほとんどいなかった、に1,000,000ポイント
0200デフォルトの名無しさんNGNG
GNUSTEP 使ってる人いない?
最近復活気味で活動が活発化しとるね。
良き事良き事。
0201デフォルトの名無しさんNGNG
使ってるよ。
0202名無しNGNG
なんも勉強しないで聞くのは恐縮なのですが
Objective-C は使ったことないのですが, iterator 関係はどうなっているんでしょうか。
Ruby だと簡単だけど遅いので同じことを C++ で書こうとして発狂しそうになりました。
0203デフォルトの名無しさんNGNG
>>202
C++だと

1:rubyのような内部イテレータを実現しようと思っても、C++では
無名手続きブロックを記述できないので、書きやすさが全然改善されまい。

2:引数とかの書きかたが柔軟ではないので、これまた綺麗にならない。

ここらへんは、ObjectiveCだとC++よりは随分柔軟であるので、
だいぶ楽にやれるんじゃないかな。

以上、こっちも知らない人でした(わら
0204デフォルトの名無しさんNGNG
Objective-C と言ったら Stepstone社だろ?
Stepstone社はいずこへ?
0205デフォルトの名無しさんNGNG
>>204
心の中に。
0206デフォルトの名無しさんNGNG
>>205
父さんしたのか。
0207206NGNG
WebObjects 5 は、完全に java 化されたし。ハァ・・・
0208デフォルトの名無しさんNGNG
MacOSXが市場を増やしていけばなぁ。
ProjectBuilderもあるし、どんどん移行して
いきたい気分だが…
0209デフォルトの名無しさんNGNG
数値計算の cakit ってどうなってるんですか?
0210デフォルトの名無しさんNGNG
>>202
Cocoaなら

NSEnumerator* enumerator = [array objectEnumerator]; //array is instance of NSArray
id obj;

while(obj = [enumerator nextObject] ) {
if( [obj respondsToSelector:@selector(hoge)] ) {
[obj hoge];
}
}

とか。
ifの中を
[obj conformsToProtocol:@protocol(theProtocol)]
とか
[obj isKindOfClass:[theClas class]]
とかにしてもいいし。
0211デフォルトの名無しさんNGNG
http://www.ibiblio.org/pub/Linux/devel/lang/objc/morphic-0.0.3.tar.gz
動くかな?
だれか教えて.
0212デフォルトの名無しさんNGNG
saga りすぎ。

GNUSTEP って COCOA 互換環境を目指すとか逝ってたような
気がするけど、どうなってるんでしょうかね。
0213 NGNG
いまいちわからん。
0214デフォルトの名無しさんNGNG
GToolKit のサイトが繋がらなくなってる。

Objective-C で GUI を作る時はどんなライブラリを使っていますか?
勿論、Cocoa 以外でね。

これって GNUstep 専用だよね?
http://www.gnustep.org/resources/documentation/gnustep-gui_toc.html
0215デフォルトの名無しさんNGNG
>>211
コンパイル出来なかったよ。Makefile 変じゃない?
どなたか Morphic インストール出来た人いらっしゃいませんか?

GToolKit は freshmeat の方は生きてるみたい。
でも、メインサイトの方がサンプルコードが充実していて良かったのに。
0216デフォルトの名無しさんNGNG
(plz ref-book)
0217216NGNG
@implementation sorryForAll
-(id)wrongThreadAgeSorry{printf("sumaso\n")};
@end

こんな感じで良い?
0218デフォルトの名無しさんNGNG
MSはVisual Object-Cださないかな
0219デフォルトの名無しさんNGNG
>>218
gcc Developer Station 2000
http://popup.tok2.com/home/choro/gds2k/gds2k.htm
をがんばってObjective-C対応にするとか。
0220219NGNG
でも、簡単に導入できる、
Objective-C環境は
おいらも欲しいです。
0221デフォルトの名無しさんNGNG
US のサイトでも良いから、Morphic のインストール方法を載せている所
無いでしょうか。
0222デフォルトの名無しさんNGNG
興味あるので age ます。
0223デフォルトの名無しさんNGNG
WindowsでObjective-Cを利用するための解説文書ってありますか?
GUIアプリをこの言語で作ってみたいのですが。
0224223NGNG
Googleとかで検索してみたのですが、
いまいち見つからないのです。
0225デフォルトの名無しさんNGNG
gcc + gtk で可能なんじゃない?
0226デフォルトの名無しさんNGNG
次の選択肢があるかと。

・GTKKit, GToolKit, GNOMEObj-C などの GUI ライブラリを使う
  GToolKit は Win も OK だったと思う。日本語が通るかは微妙。
・GUI 部分は C で書く

あと、一応 GNUSTEP は Windows で動かない事もないみたい。
http://www.peanuts.org/GNUstep/information/faq_1.html#SEC5

バイナリの配布には向いてないと思うけど、GNUSTEP が一番面白そう。
0227デフォルトの名無しさんNGNG
>>225-226
ありがとうございます。
http://www.sixnine.net/cygwin/cygwin-doc/mingw-doc/w32api.README.html
のMinGW関連の文書読んでたら、
COMとかいうものが使えないみたいです。

GUI 部分は C で書くっていう方法を取ろうかと
思います。Win32 APIとかも学ばねばいけないですね。
がんばります。

C-->Objective-Cへの移行はすんなり行ける
みたいなので、もうちょっとWindowsでも
流行ると良いのですが。
0228デフォルトの名無しさんNGNG
プログラムはじめたばかり
経験延べ3日ぐらい、Cの本を半分ぐらい読みました
入出力・数値の計算・制御文とか書いて実際動かしてみて
コードってこういう風に書くのか、とゆーのがおぼろげに分かった段階。
ポインタとか構造体は詳しくやってないです

で、Cをある程度覚えたらObjective-Cに移行しようと思ってたけど
どの程度までCをやればいいかわからんです・・
あるいはCを飛ばしていきなりO-Cはじめた方がいいのかと思いはじめている
目的はOSXでシーケンサーとかサンプラー(音楽アプリ)を自作することなんで
あの原始的な感じがどこまで今のGUIに直結してるのか不安になってきた。

べつに仕事で必要に迫られてやるわけじゃないんで
じっくりCから覚えていけばいいのかもしれないけど、
あんまり後で使わなそうな知識を詰め込みたくもない
(使えそうかどうかの判断すらできない)
この状態でO-C始めるのは無謀なのかなぁ

まぁ俺は挫折するかもわからんけど
直感的にObjecCいいと思うのでみなさまがんばってください
0229デフォルトの名無しさんNGNG
Objective-C で行き詰まったら C に戻ればいいんじゃない?
C の標準ライブラリ関数くらいは憶えておいた方が良いと思うけど。
0230デフォルトの名無しさんNGNG
Objective-Cで行き詰まるようなら、Cに戻っても一緒と思ってみるテスト
0231デフォルトの名無しさんNGNG
挫折しない方法として、目標を定めるのでなく、まずプログラミングを楽しむべき。
そしたらCをやろうがObjective-Cをやろうが、何とかなるだろ。

自分の欲しいアプリを作れるって事は、プログラミング中毒者の特権だと
思ってもらいたい。
0232229NGNG
>>230
分かり難かったらスマソ。
行き詰まるって書いたのは、Objective-C でサポートしていない低レベルの
実装をいじりたかったり、パフォーマンス上のボトルネックが発生した時等、
技術的な面ね。そうなったら C を勉強すれば良い。
その辺りが C でも書ける Objective-C の柔軟な所だと思うよ。

まずプログラミングを楽しむべきというのには同意。
折角プログラミングを始めたんだから、その醍醐味を十分味わって欲しい。
その内自分にしっくりくる言語も分かってくるし、それが Objective-C だったら
良いね。
0233デフォルトの名無しさんNGNG
自分にしっくりくる言語がRubyだったら・・・
イークナイね。
0234デフォルトの名無しさんNGNG
>>232
オサン臭い話になるかも知れんが・・・
その昔、パソコンはあるけどソフトがない時代は、パソコンで遊ぶ方法って
言えばプログラミングだったなぁ。でも今はソフトが溢れてる。
だから、プログラミングの目的はプログラミングでなく、必然的にソフトを
作る事になるんだよなぁ。
目標を持つのは良い事のように見えるが、プログラミングは目標に向かって
一直線に進めないのが難しい所なんだよなぁ。
だからゲ製板は、いつまでもあの調子なんだよなぁ。
とか呟いてみる実験
0235デフォルトの名無しさんNGNG
>>232
>Objective-C でサポートしていない低レベルの
揚げ足とりでスマンが、これはフレームワークの話だな。

>>234
hello, world!
0236234NGNG
意味わかんねーッス。
0237228NGNG
Cの入門書ざっとやり終えてみました。
まだ知らない関数とかたくさんあるので
もうちょっと詳しい本やってみます。
そのあとOSX買いに逝てきます

反応して下さった方々ありがとうです。
とても参考になりました。
書いてみるもんだなぁ
0238デフォルトの名無しさんNGNG
Objective-C の文法に惚れていろいろなプログラムを作った。

そこらにあるようなデータ可視化ツールの類だ。
OpenGL でぐりぐり動いてくれた。使っていたのは POC だ。
実によくやってくれた。自分の知的好奇心は存分に満たされた。

あるとき、研究用の数値計算ツールのプロトタイプを作ることになった。
「たしか、POC には cakit という数値計算ライブラリがあったはず…。」
そう思い、
「簡単! 来週中に、コンソール版だけ動くよ。」
と、同僚や上司に公言していた。

しかし、動かない。何回自分のプログラムを見ても間違いに気づかない。
約束の期日から2日ほど過ぎてしまった。

しょうがないから、昔使っていた VB のツールを流用することになった。

泣いた。
VB が固まる度に自分が責められるようになった。
自分の地位は、地に落ちた。


あるとき、 cakit のソースを見ると下の文字が…。

[self notImplemented:_cmd];




ブチ切れた。
0239デフォルトの名無しさんNGNG
age
0240デフォルトの名無しさんNGNG
age
0241デフォルトの名無しさんNGNG
GNOMEは何故Objective-Cを採用するのをやめたのだろう。
Linuxで安心して使いたいなぁ。
0242デフォルトの名無しさんNGNG
あ、標準開発言語としてね。
0243デフォルトの名無しさんNGNG
Objective-C.NET
ってあるん?
0244デフォルトの名無しさんNGNG
>>243
それホスィーな。

>>241
GNOMEってそういう路線だったの?
そのまま行ってくれれば使ったのに。
でも、KDEと違いどの言語でも開発できる
様にするためとかなんとか書いてあったのを
読んだ様な気がする。
0245デフォルトの名無しさんNGNG
どこかのサイトにGNOMEプロジェクトの創始者(か誰か)が言ってたと書いてた.
UNIXは資源の再利用がされていないから駄目だ.
GNOMEはこれを解決する(そして,その方法はObjective-Cだ).
とかなんとか.
で,何かがあって,結局Cになったらしい.

NSObject使うには,Gnustep入れないといけないのかな?
Vinelinux2.5には入ってないのかな?
0246244NGNG
>>245
解説Thanks。
そっちの路線でいけば、
GNOMEでObjective-Cなドキュメントが増えて
ありがたかったのだが。
今は使えるけど、ドキュメントがほとんど無いみたいだしね。
0247デフォルトの名無しさんNGNG
結局のところ,MacOS X以外ではいろんなドライバとかがC++で書かれていたりするから,Objective-Cを使うのは難しいよね.
gcc-2.9x当りからObjective-C++が使えるようになったってのは,どうなんだろう.
0248デフォルトの名無しさんNGNG
Objective-Cは、文字扱いがCでcharなのが痛い。
MultiByteString/WideCharacterにwrapping可能なstring classを
使ってくれるとは限らないからね。

MacOS XはUnicodeだからまだいいんだけど。

0249デフォルトの名無しさんNGNG
ひまなんで。
>>247
Objective-C++は制限いろいろ、とのこと。
以前、説明をするページがあったが、作者が間違えて消してまったらしい。
キャッシュ。
http://www.google.co.jp/search?q=cache:Cso_2H6Nd2QC:homepage.mac.com/mkino2/spec/objectiveC%2B%2B/objectiveC%2B%2B.html
0250デフォルトの名無しさんNGNG
ありがとう.
とりあえず自分でC++を書く気は全然ないので,
ライブラリさえ使えれば問題ないです.
ただ,Linux上のgccでObjective-C++が使えるのかな…と.
gcc2.9xのパッチで出たとかなんとかで,
gcc3.1では使えるとのウワサだけ効いたんだけど…どうなんだ〜?!
という状態です.
いや,Vinelinuxのgcc2.95で使えないとちょっと困るんですが.
はい,自分で確かめてみます.
0251デフォルトの名無しさんNGNG
駄目でした…
ヘッダファイルの読み込の時点で怒られる.
aaa.m----
…
#include <string>
using namespace std;
…

…objective-c + C++なプログラム…
---------
gcc -c aaa.m
でも
g++ -c aaa.m
でも駄目.
もしかして,拡張子が.ccとかだったらいけるとか?!
0252デフォルトの名無しさんNGNG
.mmじゃないナリか?もしくは.M
0253デフォルトの名無しさんNGNG
>>247
> MacOS X以外ではいろんなドライバとかがC++で書かれていたりするから,

"Hello IOKit: Creating a Device Driver With Project Builder"より、

> ・Device drivers are (frequently) written in C++.

実際、例はC++で書かれていて、Objective-Cの'O'も出てきません。

正直、Objective-Cのmethod dispatcherをdriverで使うのは嫌ですよね。

0254251NGNG
>> 252
試してみました.
が,普通のObjective-Cのソースでもコンパイルが引っ掛かる…
駄目っすね.

>> 253
そうなのか…
確かにドライバーで[ ]は使いたくないといえば,そうかも.
でも,C++はアリなのか〜?!
0255デフォルトの名無しさんNGNG
>>254
> でも,C++はアリなのか〜?!

C++は効率いいからね。
/System/Library/Frameworks/IOKit.framework/Versions/Current/Headers/scsi-commands/IOSCSIMultimediaCommandsDevice.h なんかもろC++。
0256IOKitNGNG
C++じゃないよお。Embedded C++だよお。
0257251NGNG
でも,Objective-CってほとんどCなんだから,
C++と変わらないくらい効率よくないのかな?
0258デフォルトの名無しさんNGNG
>>257
殆どSmalltalkなOO拡張は、静的な最適化がほぼ不可能。
かといって、Smalltalkのような動的最適化をかませる
方法が無いから、ものすごく遅い。C部分での最適化で
稼ぐしか無いけれど、それでは、C++に対する利点には
なり得ないよね。
C++は、最適化に命をかけたような仕様で、そのせいで
効率の悪くなっている部分があるのが皮肉だけれど、
それでもだいたい成功してる。比較にならんよ。
0259251NGNG
なるほど.
うーん,でもC++はいやだなぁ…(書き方が美しくないという理由だけ)
かといって,Javaで書けるほど上の部分でもないしなぁ…
でも,いずれ社会に出るとC++になるのかなぁ.
0260デフォルトの名無しさんNGNG
言語に得手不得手があるのは当たり前。
0261デフォルトの名無しさんNGNG
[thisThread retain];
0262デフォルトの名無しさんNGNG
2CHThread *objCThread = [[[2CHThread alloc] init] createWithTitle:@"Objective-C"];
0263デフォルトの名無しさんNGNG
NSLog(@"ほとんど人いないね...");
0264デフォルトの名無しさんNGNG
だれかgcc3.0でObjective-C++が使えるかどうかを知ってる人は
いませんでしょうか?
遅くてもいいんです,いずれマシンが早くなるから.
0265デフォルトの名無しさんNGNG
Apple has offered to contribute Objective-C++ to a future version of
FSF GCC, but the GCC Steering Committee, whose charter includes
decisions about whether to include new languages in FSF GCC, has yet
to say whether or not they would accept it. The Steering Committee
and its members are described at gcc.gnu.org; if you want ObjC++ in
FSF GCC, please lobby them, either as a group or individually.

オーマイガッ!!
頼むよ,FSF.
0266デフォルトの名無しさんNGNG
さがりすぎだなあ…
勉強でもしょう。
0267デフォルトの名無しさんNGNG
そして一週間経過...
0268デフォルトの名無しさんNGNG
さらに一週間経過...
0269名無しさん@ネタかよNGNG
>>264
Objective-C++って何だ。
0270デフォルトの名無しさんNGNG
>>269
http://www.google.com/search?q=Objective-C%2B%2B&ie=Shift_JIS&hl=ja
0271デフォルトの名無しさんNGNG
>>263
NSLog(@"みんな新・Mac板じゃない?");

[NSNotificationCenter age];
0272デフォルトの名無しさんNGNG
ちゃんと開放しとくよ

[thread release];
0273デフォルトの名無しさんNGNG
[thread retain];
0274このスレ見てるひと、どれくらい?NGNG
[thread retainCount];
0275デフォルトの名無しさんNGNG
[thread dealloc]
0276login:PenguinNGNG
後で読み返してみる。文献無いから。
0277デフォルトの名無しさんNGNG
週に一度の保全タイム。
0278通りすがりの者NGNG
うーん、ずいぶん寂れてきてますなー。
ちょっと残念だ。(´ー`)y-~
0279デフォルトの名無しさんNGNG
保全に来たら先客がいて残念無念。
0280objective-c出来ないんだけどねNGNG
>>211にあるMorphicのコンパイルは成功したが、
example-1の下のa.outが実行できん。

Message backtrace:
WorldMorph: Does not implement this message.
アボートしました

だそうです。
0281デフォルトの名無しさんNGNG
あるオブジェクトが、どんなメソッドを受け付けるかというのを知る方法はありますか?
リファレンスマニュアルっていうのは無しで、というかカテゴリ使ったら抜けてしまうからだめ。
0282デフォルトの名無しさんNGNG
>>282
CocoaでやってるんならNSObjectのメソッドである
respondsToSelector: で調べられますけど。
0283282NGNG
ごめん… >>281です。
0284281NGNG
>>282
おー、ありがとうございます。
NSObjectクラスのメソッドではなく、NSObjectプロトコルのメソッドですね。
見つけられなかった...
0285デフォルトの名無しさんNGNG
>>282
便乗。
セレクタの一覧を得るメソッドってあります?
0286282NGNG
>>285
ここらあたりが参考になるんでは?
http://homepage.mac.com/mkino2/cocoaProg/ObjC/Method/Method.html#accessMethodList

つーか、漏れも目下Cocoa修行中の身であんまりわかってなかったり
するんで、突っ込んだ質問はカンベン。ま、お互いがんばりましょうってことで。
0287285NGNG
>>286
おお、素晴らしい!
こんなサイトがあったとは!!
ありがとうございます。
0288デフォルトの名無しさんNGNG
すんません。初歩的な質問で申し訳ないんですけど、
Objective-Cっではクラスのインスタンス変数が0で初期化
されてるんでしたっけ?
つまり id なら何も触っていなければ nil と考えていいんでしょうか?
0289デフォルトの名無しさんNGNG
素直に初期化されては如何か。
0290288NGNG
ごもっともです、ハイ。
とあるサンプルで id 型のインスタンス変数を

if ( ! hoge ) {
hoge = [[hogeClass alloc] init];
...
}

みたいなことをやってたのでちょっと気になったのです。
0291デフォルトの名無しさんNGNG
ところで、

static inline ってどういう意味?
0292デフォルトの名無しさんNGNG
>>291
「白線の内側で静かにお待ち下さい」
0293デフォルトの名無しさんNGNG
おい、お前ら!
俺は今、「オブジェクト指向のプログラミング」(B.J.コックス)
を読んでモーレツに感動しているぞ!
0294デフォルトの名無しさんNGNG
ちょっと>>288が気になったので実験。
int main(void)
{
  id hoge;
  if(hoge != nil)
   printf("(・∀・)\n");
  return 0;
}

>>290のhogeはif文の以前でどっかから代入されてしかるべき変数なんじゃなかろうか。
0295デフォルトの名無しさんNGNG
>>294
main の中で id hoge とやったってそりゃ単なるポインタ型のローカル
変数なんだから nil なわきゃねえって。問題は hoge がインスタンス
変数の場合だろ。なんかで読んだけど、インスタンスが生成される時は
確保したメモリを 0 で初期化するとあったぞ。だから、インスタンス
変数に id 型があった場合、それは nil だと仮定してもいいはずだぞ。
なんか気持ち悪いが。
0296294NGNG
え、そうなん?

@implementation Hoge
-(id)init
{
  [super init];
  if(hoge == nil) {
    NSLog(@"(・∀・)");
 }
  return self;
}

ほんとだ〜。マリガト。
0297デフォルトの名無しさんNGNG
>>293
どうやって手に入れたの?
もう絶版で、出版社もなくなってるでしょ?
手に入れる方法があるなら、漏れも欲しい。
0298293NGNG
>>297
これがなんと、Yahoo!オークションに出品されてたんだなー。
ついに最後まで入札相手が現れず、800円で落札した。
オークションはたまにこういうのがあるからあなどれないよね。
地道に網を張ってればそのうち引っ掛かるよ。
0299デフォルトの名無しさんNGNG
>>297
読むだけなら図書館で。
0300デフォルトの名無しさんNGNG
ふ、所有する喜び……
0301デフォルトの名無しさんNGNG
>>299
田舎なもんで、置いてあるような図書館が近くにないのでした。
0302_NGNG
学校の図書館でチラッと見かけた本で
メソッド検索のアルゴリズムが載ってたんですけど
これ毎回やってたら重くないですか?
macとかで実際にアプリ作ってる方がいれば聞きたいのですけど。
最近のPCだったら気にしなくていいのかな?
0303デフォルトの名無しさんNGNG
>>302
毎回検索してたら、遅いでしょ。
普通キャッシュするでしょ。
0304デフォルトの名無しさんNGNG
>>303
そうですね。色々内部で高速化されてると思うんですが
実際どうなのか知りたくって。
変わらないならC++より柔軟なObjective-Cの方がいいかなと思ったんです。
0305デフォルトの名無しさんNGNG
>>304
キャッシュしてるみたいです。
↓が詳しいです。
http://homepage.mac.com/mkino2/spec/optimize/index.html

実際にはそんなに気にならないと思います。MacOSXの一般的なアプリケーションでは描画の方が圧倒的に重いし。
それに速度が重要な部分はCを使うでしょう。

あと、ObjCにはなくてJavaだとfinal classってのがあるけど、これって最適化に使われてるんでしょうか?
0306デフォルトの名無しさんNGNG
age
0307名無しさん@EmacsNGNG
http://www.delorie.com/gnu/docs/libobjects/libobjects_toc.html

ここを見て、Linux で Objective-C を始める事にした。
Objective-C のライブラリ等は最初からインストール済だったので
それを使ってみようと思ってるんだけど、POT というのも気になる。
クラスブラウザは便利そうだし、GUI も Objective-C 風に書ける
(んだよね?)のも良いかなと。

以上、上げるついでに・・・
0308デフォルトの名無しさんNGNG
cocoaでスレッドの実行を指定された時間だけ中断させるのってどうするの?
winでいうところのSleep()と同じ
0309デフォルトの名無しさんNGNG
>>308
こっちで質問した方が解答率高いぜ。
http://pc.2ch.net/test/read.cgi/mac/1007632025/l50
0310デフォルトの名無しさんNGNG
>>308

とっくに自力で見つけてると思うけど一応。

[ NSThread sleepUntilDate:[ NSDate dateWithTimeIntervalSinceNow:second ] ];
0311デフォルトの名無しさんNGNG
なんのまだまだ
0312デフォルトの名無しさんNGNG
えいや、えいやぁ。
0313デフォルトの名無しさんNGNG
ちょっとマイナーかもしれないけど Objective-C は最強のプログラミング言語だ!
0314デフォルトの名無しさんNGNG
prefixのNSが消えたら、使うの考える。
0315デフォルトの名無しさんNGNG
でもやっぱまともな開発環境がWinとかUnixでないのが
はやらん原因と思う。
Obj-C builder とかないかなぁ。
0316デフォルトの名無しさんNGNG
通報しますた
0317デフォルトの名無しさんNGNG
>>315 GNUStepの開発よろしこ
0318デフォルトの名無しさんNGNG
Objective-Cは需要はあるんですか?
0319デフォルトの名無しさんNGNG
ありません。
0320デフォルトの名無しさんNGNG
>>319
マジですか?
じゃあC++やった方がいいんですか?
0321◯NGNG
>>320
そんな事言ってる人にはC++は似合いません!
0322デフォルトの名無しさんNGNG
>>321
なんだとゴルァ!
0323デフォルトの名無しさんNGNG
Objective-Cは、Smalltalk風に書けて、
かつ、実行時間を稼ぎたいならCで書き直せるという
メリットがあったわけだけど、だったらProfilerが必須
だと思うんだが、どうだろうか。MacOS Xの開発環境には
Objective-CのProfilerがついてきてるの?

さらに言わせてもらえれば、Objective-Cは動作確認の
ために明示的なコンパイルが必要なSmalltalkに他ならな
いわけで、かなりウザいと思う。Cで書かれたライブラリ
に接続できるSmalltalkがあれば十分だと思う。

Coxの本が書かれた時代はソフトウェアICに未来があると
思われていたわけだけど、粒度の荒いソフトウェアICは
意外に問題が多かったことがわかってきたよね。GUI部品
とかはソフトウェアIC向きだけど、そこでは実行速度が
ビビッドな問題なので、Objective-Cのメリットはあまり
生きないという罠。
0324デフォルトの名無しさんNGNG
>>323
じゃあこれからObjective-Cをやってもあまりよくないってことですか・・・
0325デフォルトの名無しさんNGNG
C++と比べてObjective-Cの良いところ:
 C++よりもシンプル。
 C++よりもダイナミック。
 C++よりもメモリ効率が良いかも知れない。

C++と比べてObjective-Cの悪いところ:
 C++よりマイナー。
 C++よりも低速(チューニングできるけど、面倒かつ危険)。
 C++よりもコンパイラに頼れない。

C++とObjective-C共通の弱点:
 コンパイルしないとテストできない。
 再利用性の高いソフトウェア部品を開発するのは難しい(※)。

※クラスベースのオブジェクト指向開発が、再利用を促進するというのは
希望的観測に過ぎなかったという結論があちこちで出ている。再利用可能
なソフトウェア部品を開発することは不可能ではないのだが、誰にでも開
発できるわけではなく、再利用性に期待して工数を短縮してしまうとデス
マーチになる。リファクタリングはOOPでしかできないわけではないので、
OOPはそれなりに便利なコミュニケーションツールとみなすべきだという
意見が正しいと思う。
0326名無しさん@EmacsNGNG
ダイナミックって実行時型決定の事? C++ にも無かったっけ?
0327デフォルトの名無しさんNGNG
あるけどデフォルトでスタティック
0328名無しさん@EmacsNGNG
Objective-C FAQ より
http://www.ics.es.osaka-u.ac.jp/public/netnews-archive/FJ.ARCHIVES/fj.archives.answers/Objective-C/answers.j

---------------------------------------------------------------------
別な観点から言えば、
Objective-Cプログラムのすべての要素がオブジェクトで表現されていたとし
たら、おそらくSmalltalkと同程度の速度であり、Smalltalkが行なえる基本
クラスへの最適化がないことで苦戦するでしょう。
---------------------------------------------------------------------

基本クラスへの最適化ってどういう事でしょう?
Smalltalk スレで聞いた方が良いかな?
0329デフォルトの名無しさんNGNG
ディスパッチのことじゃない?
0330デフォルトの名無しさんNGNG
>>326
メソッドディスパッチが動的に行われるので、実行中にライブラリを差し替え
れば即座に動作を修正できたりする。C++には無理。
0331デフォルトの名無しさんNGNG
>>328
Objective-Cが、将来的にも高度な最適化が行われないことを宣言しているわけ
ではなく、現状でこれといった最適化が行われていないけれどもハイブリッド
だからパフォーマンスが重要なところはCで書けるんで、その方がいいでしょ?
という程度の意味だと思う。

Objective-Cは「純粋なオブジェクト指向言語」ではない、という批判に対す
る返答として、「純粋なオブジェクト指向言語」にしちゃうと、そもそも
Objective-Cの存在意義なんかないじゃん?みたいな意味と言い換えても良い
かも。
0332デフォルトの名無しさんNGNG
Smalltalkではたとえば IF...THEN...ELSE 構造は Boolean オブジェクトにブ
ロッククロージャオブジェクトを投げるとかの純粋オブジェクト指向がコンセ
プトなんだけど、実際にバイトコードにコンパイルする時点で最適化が行われ
て、条件分岐命令に置き換わったりする。

そういう最適化のことを言っているんだと思った。
0333デフォルトの名無しさんNGNG
後で読み返してみる。文献無いから。
0334デフォルトの名無しさんNGNG
Objective-C 以外は糞
0335デフォルトの名無しさんNGNG
正直、objc使うくらいなら、Smalltalk使うな
0336デフォルトの名無しさんNGNG
>>335
同意。昨今のマシンは十分に速いからねえ。
現状、あえてObjetive-Cを使う理由はCのソースとの親和性だけだな。
あれ?
0337 NGNG
>>336
「あれ?」って何だよ?
0338デフォルトの名無しさんNGNG
Objetive-Cを使う理由が残ってたってこと。
0339デフォルトの名無しさんNGNG
なにより資料が無さ過ぎなのが・・・
0340デフォルトの名無しさんNGNG
0341デフォルトの名無しさんNGNG
0342デフォルトの名無しさんNGNG
初心者質問です。NSString の文字列に対して
Perl の s/a/b/ 相当(全ての a → b に変換)の
操作をするにはどうしたらいいですか?
0343デフォルトの名無しさんNGNG
>>342
えー、残念ながら、簡単な方法はないはずです。
伝統的にC/C++/Objective-Cは文字列の処理が弱いです。
Perlなんかは文字列の処理が極めて強力なので、Perlあたりでプログラミン
グを始めた人がCに触れると、まず間違いなく途方にくれます。
0344デフォルトの名無しさんNGNG
>>343
普通はどんな方法でするの?
0345342NGNG
>>343
とりあえずありがとう。
道理でネットをいろいろ探しても見つからないわけだね。
0346デフォルトの名無しさんNGNG
>>344
ttp://www.hi-ho.ne.jp/babaq/bregexp.html
とか、誰かの作った正規表現ライブラリを使うのがてっとりばやい。
ライセンスの問題をクリアするために自作している人も少なくないように思い
ます。
0347デフォルトの名無しさんNGNG
あけましてObjective-Cございます。
0348IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0349デフォルトの名無しさんNGNG
この人→「ひろゆき ◆3SHRUNYAXA」って

マジであの2ch運営してる人ですか?だとしたら
今、同じ板にいるのが夢のよう(´ー`)y─┛~~
0350デフォルトの名無しさんNGNG
↓(´`c_,'` )プッ
0351IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0352デフォルトの名無しさんNGNG


今後、予想されるレス

「IPって何ですか?」

「串って何ですか?」 「串揚げ」

0353デフォルトの名無しさんNGNG
>>39
いやぁ、知らんです、、
0354デフォルトの名無しさんNGNG
301 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:57 ID:zbarv++q
   >ひろゆき

   2ch閉鎖って考えたことある?

310 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:58 ID:rLfxQ17l
   >>301
   ラウンジが重いですとかいちいち電話してくる人がいたとき。

352 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 18:01 ID:rLfxQ17l
   悲しいときー。悲しいときー。
   正月に友人からエロゲーを借りて喜んで帰ってきたら、
   パソコンが壊れてたー。

   昨日ヨドバシカメラで部品買ってきて直しました。


>>56
それ偽者よ
0355デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0356デフォルトの名無しさんNGNG
OPERAから書き込みが出来なくなったのは私だけ?
0357デフォルトの名無しさんNGNG
IPまるだしでもマンコとかき続けることに変わりはない!!
0358デフォルトの名無しさんNGNG
>>112
そんなことはいちいち判断してらんないので、「もめごとは当事者同士で」
という結論になったんじゃないかと、、
0359デフォルトの名無しさんNGNG
>>110
7日ルールで言うと例えばこれ
http://qb.2ch.net/test/read.cgi/saku2ch/1034003763/

>>112
> どこまでが本気でまずい書き込みなのかが問題で
それは言われた方がどれくらい耐えるかに拠る。
現状だと、削除依頼を出されて7日ルールの範疇になった場合
スレッド上で反論をすれば、削除は保留されると思う。(俺の考え)
ただしその場合の責任は反論者に移る。 ってことかと。
0360デフォルトの名無しさんNGNG
大学受験板いけないのはいたい。
0361デフォルトの名無しさんNGNG
「4nd」ってなんだよ。
中学生以下だな
0362デフォルトの名無しさんNGNG
てかなんでここふしあなさんが多いの?
0363デフォルトの名無しさんNGNG
こんなスタイルになるのかな?

誰かが他の掲示板で密告→第三者が2chでスレ建て→祭り
0364デフォルトの名無しさんNGNG
test
0365デフォルトの名無しさんNGNG
おまえを殺す!とか言ったらタイーホされるの?
0366デフォルトの名無しさんNGNG
Objective-Cは需要はあるんですか?
0367デフォルトの名無しさんNGNG
ねえってば
0368デフォルトの名無しさんNGNG
00:00〜03:00
とか適当に書いておこう。
0369デフォルトの名無しさんNGNG
<丶`∀´><あっ糖が。
そういうわけでここは快速スレですすれ違いのタラコの話などはやめてくださいね。
0370デフォルトの名無しさんNGNG
ライブラリが一緒なんだ、なるほど。

とはいえそれが分かったところで何が出来るわけでもなく只聞いてみただけ(´Д`;)
0371デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0372デフォルトの名無しさんNGNG
っていうか宇宙人から人類は監視されているよ。
0373デフォルトの名無しさんNGNG
25になって
ブルマにハァハァとか、
ドラちゃんかわいいとか、
オナニーはマウス動かしながらなので、左手ですとか

           そういうこと書くときは注意しないとな。    
0374デフォルトの名無しさんNGNG
なんとか なんねーの?
旧東ヨーロッパ系の胡散臭い国に鯖を移管して 名目上の管理者も
アル中のおやじとかやとってやらせてさあ。。

100%リモートじゃ無理?

2chみたいにこれだけ多くの不特定多数の人間が好きに発言できる場って
日本には他に無いはずだよ。良きにしろ、悪きにしろ貴重な存在だったのに・・・

0375デフォルトの名無しさんNGNG

どんなスレでも糞スレの雰囲気を漂わせるからねぇ。
ある意味すげーけど。
0376デフォルトの名無しさんNGNG
漏れはどこもさくさく行ける。
プロバ次第だと思われ。
0377デフォルトの名無しさんNGNG
↑
キン肉マンに出てくるウールマン?
0378デフォルトの名無しさんNGNG
600,000,000
0379デフォルトの名無しさんNGNG
マジでIPってなんですか?
0380デフォルトの名無しさんNGNG
IPとれば処罰しやすくなるんだから良いことだ。マンコとかいてるぶんには、なんの問題もない
0381デフォルトの名無しさんNGNG
掲示板に「YOSAKOI爆破」予告、23歳を逮捕
インターネット掲示板に「YOSAKOIソーラン祭り」の爆破予告を書き込んだとして、
札幌中央署は、脅迫の疑いで苫小牧市内のアルバイト男性(23)を近く書類送検する。
<2002年6月27 北海道>
0382デフォルトの名無しさんNGNG
正直、本当の危機に直面しないと動かんだろうな。>2ちゃんねらー
だからこのスレ伸びないんだよ。
0383デフォルトの名無しさんNGNG
て
0384山崎渉NGNG
(^^)
0385デフォルトの名無しさんNGNG
↑逆夢だね。。。
0386山崎渉NGNG
(^^)
0387デフォルトの名無しさんNGNG
これってゴバク祭り?
0388山崎渉NGNG
(^^)
0389デフォルトの名無しさんNGNG
ここって、正常に動いてますか?
質問してもちゃんと答えが返ってきますか?
ちょっと不安です。書きたいことがあったんですけども。
0390デフォルトの名無しさんNGNG
>>388
とりあえずその質問を曝してテスト汁!
0391デフォルトの名無しさんNGNG
GNOME-objcの資料ありませんか?
ttp://www.interq.or.jp/earth/inachi/gtk/obgtk/intro.html
興味あるんだけどこれしか見つからない、、

深度111か、、
0392デフォルトの名無しさんNGNG
>>391
ttp://anoncvs.gnome.gr.jp/viewcvs.cgi/gnome-objc/
ここ見るかぎり、開発は停滞してるようだが…
本当に使う必要があるんなら、コードを読みながらってことになるな。

ところで、Objective-Cにガベージコレクタ実装させようと思うんだけど、誰かやってる人いる?
libgc使っちゃえば簡単だけど、参照を失ったオブジェクトはfree()させられるよりも
releaseメッセージが送られる方がうれしいなと思って。
0393 NGNG
Portable Object Compiler
ttp://users.pandora.be/stes/compiler.html

これならちょっとだけ使ったことあるよ。Boehm gc に対応してる。
block(rubyみたいなの)も一応使える。
0394391NGNG
>>392
資料ないですね、、一応書き手のelliotさんのページは見つけたんですが、、
ttp://people.redhat.com/~sopwith/

コード読みながらちょっと作ってみた。
長くなりますがこんな感じ?よくわからんケド、、

#include <obgtk/obgtk.h>

@interface testApp : Gtk_App
{
    Gtk_Window* winMain;
    Gtk_Layout* testLayout;
    Gtk_Label* testLabel;
    Gtk_Button* testBtn,*testBtn2;
    Gtk_Adjustment* hadj,*vadj;
}
- initApp:(int* )argcp:(char*** )argvp;
- free;
- button_press_event:(id)anobj :(GdkEventButton* )event;
- clicked:(id)anobj;
@end
0395391NGNG
@implementation testApp
- initApp:(int* )argcp :(char*** )argvp
{
    [super initApp:argcp :argvp];

    hadj = [[Gtk_Adjustment alloc] initWithAdjustmentInfo:0:0:0:0:0:0];
    vadj = [[Gtk_Adjustment alloc] initWithAdjustmentInfo:0:0:0:0:0:0];

    testLabel = [[[Gtk_Label alloc] initWithLabelInfo:"Objective-C"] show];

    testBtn = [[Gtk_Button alloc] initWithLabel:"greeting"];
    [testBtn connectObj:"button_press_event" :self];
    [testBtn connectObj:"clicked" :self];
    [testBtn show];

    testBtn2 = [[Gtk_Button alloc] initWithLabel:"test2"];
    [testBtn2 connectObj:"button_press_event" :self];
    [[testBtn2 connectObj:"clicked" :self] show];

    testLayout = [[Gtk_Layout alloc] initWithLayoutInfo :hadj :vadj];
    [testLayout put:testLabel :(gint)0:(gint)0];
    [testLayout put:testBtn: (gint)30:(gint)30];
    [testLayout put:testBtn2: (gint)30:(gint)60];
    [testLayout show];

    winMain = [[Gtk_Window alloc] initWithWindowInfo:GTK_WINDOW_TOPLEVEL];
    [[winMain add:testLayout] show];
    [winMain signal_connect:"delete_event" signalFunc:gtk_main_quit funcData:NULL];

    return self;
}
0396391NGNG
- free
{
    g_print("Freeing me\n");
    gtk_main_quit();
    return [super free];
}

- button_press_event:(id)anobj :(GdkEventButton* )event
{
    g_print("Button %d was pressed\n",event->button);
    return self;
}

- clicked:(id)anobj
{
    printf("A thing was clicked, object is %#x\n",(unsigned int)anobj);

    if(anobj == testBtn)
      [testLabel set_text:"Hello,world!"];
    else if(anobj == testBtn2)
      [testLabel set_text:"clicked by test2"];

    return self;
}
@end
0397391NGNG
int main(int argc,char* argv[])
{
    id myApp;

    myApp = [[testApp alloc] initApp:&argc :&argv];
    [myApp run];
    return 0;
}

すれ汚してすいません、、
0398デフォルトの名無しさんNGNG
age
■ このスレッドは過去ログ倉庫に格納されています