05/02/27 11:06:54
はじめてのMac OS X Cocoaプログラミング―v10.2対応
URLリンク(www.amazon.co.jp)
辺りかなぁ。
128:デフォルトの名無しさん
05/02/27 11:43:37
>>127
中村本は取っ付きやすいとはおもうけどCの知識が0だときついよ。
Cの入門書とセットで読むといいかも。
129:デフォルトの名無しさん
05/02/27 12:39:07
>>117-122
だべってないでお前らが本書けばいいだけじゃん
一人一殺だ
130:r
05/03/02 23:57:23
ここって、Objective-CっつーよりCocoaスレなんだな。
あのさ、NSImageViewのサブクラスを作って、
-(void)mouseUp:(NSEvent*)event;
をオーバーライドして、
画像上のマウスクリックのイベントを拾おうとしたんだが、
なんか、mouseUpメソッドが呼ばれないみたいだったんだ。
で、試しに
-(void)mouseDown:(NSEvent*)event;
も、ついでにオーバライドしてみたら、
mouseUpもmouseDownも呼ばれるようになった。
mouseUpとmouseDownって、ペアでオーバライドしなきゃいけないの?
これってマカーには常識?
131:デフォルトの名無しさん
05/03/03 02:27:37
そんなことはない
副作用で直ったと思われ
132:デフォルトの名無しさん
05/03/03 18:39:51
言語の敷居は低いが、Cocoaがキツイ。
良く在るC++のクラスライブラリと違ってOSの一部なので、ソースが無い。
かといって、JDKのように挙動が自明でもない。
試行錯誤させられる亊が多過ぎる。
133:デフォルトの名無しさん
05/03/03 18:41:38
演算子のオーバーロードがないから文字列クラスの扱いがきついね
std::stringですら遥かにまし
134:デフォルトの名無しさん
05/03/03 19:21:21
早くXCodeがDをサポートしますように
135:デフォルトの名無しさん
05/03/03 22:25:19
ソースはある
136:デフォルトの名無しさん
05/03/03 23:15:51
>>135
あるの?
137:デフォルトの名無しさん
05/03/04 01:12:28
mac mini届いた、Objective-Cを触ってみたが、C++に要した労力に比べると、格段に易い。
文法もすっきりしている、好きになりそうだ。
138:デフォルトの名無しさん
05/03/04 01:39:01
>>137
すごいな。
漏れはずっとC++使って来て、PublicBetaを試したとき、
Objective-C自体の書式はすぐに分かったのだけど、
IBとPBの連携の意味を理解するのに半年掛かってしまった。
資料見ても意味分からないから試行錯誤&挫折の繰り返しでなかなか意図を見抜けなかった。
で、ようやくポトペタでGUIアプリが作れるようになったんだけど、
結局Cocoaのクラス構成とかの流儀に馴染む前に嫌になってしまったよ……。
139:デフォルトの名無しさん
05/03/04 08:50:58
autoreleaseなんてのがあるので
オブジェクト解放のタイミングが分かりづらくなってる気がする。
なかなか気付きにくいよ「イベントループの末尾で削除」なんて。
140:デフォルトの名無しさん
05/03/04 10:19:26
そこでGNUstepのGCですよ。
マジほしいな、これは。
141:デフォルトの名無しさん
05/03/06 13:05:38
情報提供してあげてください。
URLリンク(www.rubyist.net)
>どうやらObjective-Cの「カテゴリ」と呼ばれる機能が、以前から悩んでいたselector namespaceに近いもののようだ。基本的な概念は理解できるものの、実際の挙動(と実装)がイメージできず苦しんでいたので、参考にできるものがあるのはありがたい。
>しかし、ちょっとGoogleしてみた範囲内では、その仕様はよくわからなかった。具体的な挙動や実装について参考になる資料はないものだろうか。
>あれ? まてよ。
>今、改めてGoogleしたページを読み返すと、別に有効範囲が静的スコープであるとは書いてないな。そうするともしかしてカテゴリってのは、ただ単に「インスタンス変数が追加できないMix-in」なのか。それだったらすっごい残念なのだが。
>selector namespaceのある言語といえば、他にSmallscript (S#)やJavaScript (EcmaScript 4.0)などもあるが、いずれも現時点で私には理解できていない。
>情報提供歓迎。
142:デフォルトの名無しさん
05/03/07 12:12:31
>インスタンス変数が追加できないMix-in
でほぼ正解じゃなかったかな…?
メソッドも追加ができるだけでオーバーライドすらできないからそれ以下かな?
143:142
05/03/07 13:13:57
すまん…
オーバーライドはできたかも…
144:デフォルトの名無しさん
05/03/08 22:09:19
idとNSObject*と、他Objective-Cのインスタンスへのポインタって、
全く等価なもんなんでしょうか。
例えばObjective-Cのクラス Fugaが定義されているとして、
次の2行は等価? 非等価?
id p = [[Fuga alloc] init];
Fuga* p = [[Fuga alloc] init];
145:デフォルトの名無しさん
05/03/08 22:17:13
コンパイル時に型チェックが働くか否かの差
146:デフォルトの名無しさん
05/03/08 22:25:34
>>142
Mix-inって、クラスを特定することなく定義できる必要があると思うんだけど。
Objective-Cのカテゴリって定義時にクラスを指定するから、他のクラスで使うことができない。
これをMix-inというのだろうか。そもそもMix-inとは?
147:142
05/03/09 13:43:29
>>146
わたしの中での Mix-in に対する認識は
* 基本となる型(Flavor)が存在する
* その型に対して追加機能を提供する型が Mix-in
* 機能追加すること自体も Mix-in と呼ぶ(?)
* 機能追加は,実装でも仕様でもOK
* プロトタイプ言語には Mix-in は存在しない(必要ない)
* C++ の多重継承でも Mix-in (の概念)は存在する(らしい)
という感じです。
なので特定の型(Flavor)に機能追加するだけでも Mix-in だと思ってますが…
世間一般での Mix-in の定義はどうなんでしょうね?
148:デフォルトの名無しさん
05/03/09 18:46:33
>>145
ダイナミックバインドってid経由でしか働かないんだっけ
149:デフォルトの名無しさん
05/03/09 20:53:44
仕様の追加は mix-in とは言わないんじゃ、、、
> * C++ の多重継承でも Mix-in (の概念)は存在する(らしい)
というか、多重継承だからこそ mix-in が可能なんじゃないか?
Ruby は多重継承ができないけど、 mix-in があるので
多重継承と似たことができますよ、ってことにしてるんでしょ?
150:デフォルトの名無しさん
05/03/09 21:04:48
逆
C++ では Mix-in を表現するに多重継承を使う方法がある
151:デフォルトの名無しさん
05/03/09 21:14:19
あぁ、まぁ、そうか。
152:デフォルトの名無しさん
05/03/09 21:29:40
>>148
URLリンク(developer.apple.com)
153:デフォルトの名無しさん
05/03/09 23:04:51
ここの住人は基本的にCocoaプログラマ?
154:デフォルトの名無しさん
05/03/10 16:28:59
そうみたい
でもCocoaに限らない話題希望
155:デフォルトの名無しさん
05/03/10 16:46:04
>>154
Cocoa以外でobj-c使う場面ってどんな場面よ
156:デフォルトの名無しさん
05/03/10 16:48:13
GNUstepとか。
157:デフォルトの名無しさん
05/03/10 16:51:19
メッセージの一つ目の引数にラベルつけらんなくてみんな困ってます
158:デフォルトの名無しさん
05/03/10 17:14:38
バカだなー、一つ目をダミーの引数にすればんだよ。
159:142
05/03/10 17:25:10
>>149
Mix-in の概念は実装の追加のみに限定されるものでもないと思うんだが…
Java の interface や Objc の protocol も Mix-in な型として使われ
る場合があるし,それも Mix-in と呼べると思うけど…
Mix-in について解説したドキュメントでいいのないかな?
Mix-in評論家(?)の日記くらいか?
URLリンク(www.rubyist.net)
160:デフォルトの名無しさん
05/03/10 22:45:41
Cocoaをはじめようと思います。Objective-Cを学ぶにはC言語を覚えてからオブジェクト指向を理解したうえで、というのが近道だと聞きましたが、ベースとなるC言語の知識はどれくらい必要でしょうか。
161:デフォルトの名無しさん
05/03/11 00:02:58
そりゃ、基本的事項は全てだろ。
テキストがあれば、それの最初から最後まで。
心配しなくてもそんなに分量はない。
けと、その都度実践していかないと(つまり、ソースを作っては試す)
身にはつかない。
162:デフォルトの名無しさん
05/03/11 01:11:55
同意。
でも、多くの人がポインタで挫折すんだよねー。
まぁ、今は良い参考書もいっぱいあるから、昔に比べりゃ全然楽だ。
163:デフォルトの名無しさん
05/03/11 01:40:32
「すればんだよ」とか「けと、」とか日本語じゃない言葉が飛び交ってて
話てるのか何か良く分からないんです。
164:デフォルトの名無しさん
05/03/11 01:42:50
>>162
>でも、多くの人がポインタで挫折すんだよねー。
それは数あるポインタの解説書がことごとく間違っていたり
嘘言っていたりして学習者の混乱を増長させているから。
165:デフォルトの名無しさん
05/03/11 02:05:42
ポインタと配列の間に関係性を持たせてしまったCの仕様にも責任がある希ガス。
166:デフォルトの名無しさん
05/03/11 02:23:51
どうして? ごく自然な仕様だろ。
167:デフォルトの名無しさん
05/03/11 03:15:52
int *p;
において、
「*(p+i)はp[i]って書き方もできます」って仕様は余計だと思う。
これのせいで、ポインタと配列は全く別ものなのに、
なんだか同じもののように初心者を混乱させている希ガス。
168:デフォルトの名無しさん
05/03/11 05:20:10
同じものですよw
169:デフォルトの名無しさん
05/03/11 08:06:55
Xcode2.0はどの程度現状と変わるのか。
Tigerを買うかどうかは、そこの評価次第なんだけど。
170:デフォルトの名無しさん
05/03/11 11:37:37
>>169
一番の売りはUML風味のクラス図自動生成とかでない?
その辺実際どの位使えるのかは確かに気になる所。
Rationalのアレ並みにとは言わんけどさ(w。それなりにパパッと書いたのがぐりぐり動いてるよーだといいな
171:デフォルトの名無しさん
05/03/11 12:40:57
快適な開発環境がOSに標準でついてくるなら
もう少し、Cocoaプログラマが増えてもいいと思うんだが。
Macを再評価する動きというのは無いものか。
172:デフォルトの名無しさん
05/03/11 13:18:32
ついにObjCのみのAPIの登場だ。
Developing with Core Image
URLリンク(developer.apple.com)
173:デフォルトの名無しさん
05/03/11 13:20:47
>>170
EOFっていうベースがあるから、
そこそこ行けそうな気がする。
なんで別けたんだろうね。
174:デフォルトの名無しさん
05/03/12 00:27:53
Core Imageって,Cocoa系のAPIだったとは。てっきり
Carbonだと思っていた。
175:デフォルトの名無しさん
05/03/12 01:33:37
Carbonからも呼べるんで、困りはしないんだけど、
Core Image使うところは、.mにせにゃならん。
176:デフォルトの名無しさん
05/03/12 15:12:42
>>162
ポインタは難しい的な先入観もたせるのも
どうなんだろうなって感じだよね。
何の先入観も無しにやってみて難しくて挫折するのは
しょうがないとして、余計な先入観のせいで混乱しちゃうと
ちょっとね。
177:デフォルトの名無しさん
05/03/12 17:22:57
たぶん、ポインタの理解が「指し示すもの」「アドレス」の2つで混乱してるんだろうな
わかる人は両方をちゃんと使い分けてるけど、説明される時はこのうち1つ側の説明しかされないし
178:デフォルトの名無しさん
05/03/12 23:38:06
コンピュータってものを理解してれば全く混乱なんかしないよなあ。
もしかしてメモリやアドレスの概念を出さずに説明されるのだろうか?
またはCPUやメモリの概念程度の基礎知識すらない奴がC言語を学んでいるのか?
179:デフォルトの名無しさん
05/03/12 23:56:55
メモリとレジスタを絡めて教わったよ。
少なくともオレらは。
180:デフォルトの名無しさん
05/03/13 03:34:30
やっぱり最初はアセンブラから?(w
って、今頃そんなのをやれっても無理あるよなぁ。
181:デフォルトの名無しさん
05/03/13 08:58:19
君が知りたくなければ一生知らないままでいいよ。
182:デフォルトの名無しさん
05/03/13 12:13:04
そこでBrainfuckですよ
183:180
05/03/15 01:26:13
>>181
いや、漏れではなく今頃の人に教えるのにアセンブラって言うのも厳しいもんがあるよなぁと。
漏れなんかはTK-80をガキの頃に親から奪って遊びだした世代なんで最初はハンドアセンブル
しかなかったんだよな。
今だとそういういい教材はあるけれどなかなかにニッチだしなという事で。
184:デフォルトの名無しさん
05/03/15 06:31:47
>>180 にとってアセンブラは厳しかった訳か
185:デフォルトの名無しさん
05/03/15 07:40:38
180の言ってる事はよくわかるけど?
186:デフォルトの名無しさん
05/03/15 08:54:28
最終的にShark使ってG5最適化とか、
今でもアセンブラの知識は役に立つが、
全くもってスレ違い。
187:デフォルトの名無しさん
05/03/15 23:12:17
まあまあ、そんなことより
>>158のテクニックの実装方法について、
まじめに考えてみようぜ
188:デフォルトの名無しさん
05/03/16 00:16:11
「スレ番だよ」というのがよくわんない。
189:デフォルトの名無しさん
05/03/27 01:31:22
MacOSXのターミナルで、Cocoaのフレームって使用できますか。
Object をNSObjectにしたいけど、リンクでエラーがでます。
Cocoaのライブラリを探してリンクすればいい、という発想はおかしいですか?
190:デフォルトの名無しさん
05/03/27 02:04:35
-framework Foundation
つけとけ
191:デフォルトの名無しさん
05/03/27 11:41:02
>>190 おお、ありがとうございます!
192:デフォルトの名無しさん
皇紀2665/04/01(金) 16:42:30
Cocoaはやっぱり!
193:デフォルトの名無しさん
05/04/03 16:03:44
CoreDetaに期待。Cocoa+Objective-Cはどんどん進化して欲しいね。
URLリンク(homepage.mac.com)
URLリンク(www.hmdt-web.net)
Mac OS X v10.4 Tiger
URLリンク(developer.apple.com)
Xcode 2.0
URLリンク(www.apple.com)
QTKit
URLリンク(blog.so-net.ne.jp)
URLリンク(homepage.mac.com)
URLリンク(slashdot.jp)
Dashboard
URLリンク(numata.aquasky.jp)
194:デフォルトの名無しさん
05/04/17 12:08:04
Mac欲しいなぁ・・・。やっぱWWDCが終わるまでは待ったほうが賢いんだろか。
スレ違いすまん。
195:デフォルトの名無しさん
05/04/17 16:11:01
PowerMacG5の最上位機種+メモリ8Gなら、今買ってもそれほど損は無いはず。
そんな金の無い俺は夏まで待ちますが。
これだけではなんなので、今Cocoa入門本としてヒレガス本を買うなら原著の第二版がお勧め。
日本語版=第一版は開発環境として10.2を対象としてるので情報が古い。
第二版では10.3=Xcodeに対応して、、GNUstepについてもちょこっと触れていたりする。
著者のページからサンプルも落とせるので、第一版を持っている人なら、
新旧のソースを見比べるだけでも勉強になるかもしれん。
URLリンク(www.bignerdranch.com)
Xcode2.0対応の第三版も出そうな気もするが参考までに。
196:デフォルトの名無しさん
05/04/17 17:16:32
OSXは欲しいがMacは要らん
197:194
05/04/17 19:32:51
会社でPowerBookG4+XserveG5使ってるんですが、自宅にも欲しいなぁと思って。
ヒレガス本ってのは黄色い表紙でべスパだか何かが写ってる奴ですよね?
いまこれを読みながらCocoaプログラミングの勉強中です。Unixyな使い方だけでは
もったいないかなと思って。で、ますますMac欲しいなぁ、と。
>>196
OSXってMac以外で動作可能なんですか?自宅にラック導入する予定はないのでXserveはパスね。
198:デフォルトの名無しさん
05/04/17 21:06:02
>>197
OSXはMacだけ。
GNUstepなら他のプラットフォームでいろいろいける。
が、i18n関係はまだまだダメなので(w
是非そっち方面にも助力を
199:デフォルトの名無しさん
05/05/20 02:03:50
[self age];
200:age
05/05/26 17:04:19
教えてください
NSString* str = [NSString stringWithUTF8String:"test"];
で取得した str は 何時 [str release]; すべきなのでしょうか?
201:デフォルトの名無しさん
05/05/26 17:34:52
>>200
そもそも release するべきでない。
202:デフォルトの名無しさん
05/06/06 08:55:32
>>201
たしかにそうだけど、NSAutoreleasePool のインスタンスが用意されてなかったらメモリリークの悪寒。
203:age
05/06/06 10:00:13
教えてください
ワーカスレッド(POSIXスレッド)内で
NSString* str = [NSString stringWithUTF8String:"test"];
を行った場合、どのNSAutoreleasePoolが使われるのでしょうか?
204:203
05/06/06 10:59:18
続き...
NSAutoreleasePoolは、スレッド毎に独立しているのでしょうか?
205:デフォルトの名無しさん
05/06/06 15:51:59
なんか釣られてるような気もするけど…
>>203,204
NSAutoreleasePool はスレッドを生成するときに、プログラマが自分で用意するものだと思われ。
要するにスレッドごとに存在する必要あり。
URLリンク(developer.apple.com)
とか見るよろし。
もっと言うと、AppKit(NSApplicationMain) を使ってない場合は、メインスレッドにも NSAutoreleasePool は(自動では)用意されないんで、この場合も自前で用意してやる必要がある。
GNUStep で遊ぼうとして、その罠にはまった人間が約一名(おれだが)。
あと、ワーカスレッドってのが何を意味してるのかわからんが、pthread_create とかで直接 POSIX スレッドを生成して云々って話なら、やめておいた方が良さそう。つーかその場合、おそらく NSAutoreleasePool がそもそも使えない気がする。
素直に NSThread 使いましょう。
それはそれとして、203(200 も?)の名前欄の age はコテハンなのか、それとも age てるのを主張したいだけなのか、それが問題だ(そうか?)
206:200
05/06/06 16:24:46
SimpleThreadのURL、ありがとうございました。参考になりました。
やはり、POSIXスレッドは使わないほうがよさそうですね...。
207:デフォルトの名無しさん
05/06/06 16:43:03
>>205
> つーかその場合、おそらく NSAutoreleasePool がそもそも使えない気がする。
URLリンク(developer.apple.com)
Note: If you are creating secondary threads using the POSIX thread
APIs instead of NSThread, you cannot use Cocoa, including
NSAutoreleasePool, unless Cocoa is in multithreading mode. Cocoa
enters multithreading mode only after detaching its first NSThread. To
use Cocoa on secondary POSIX threads, your application must first
detach at least one NSThread, which can immediately exit. You can test
whether Cocoa is in multithreading mode with the NSThread class method
isMultiThreaded.
208:205
05/06/06 16:53:51
>>207
ごめん、英文読み違ってたか。
あらかじめ NSThread を使って一つスレッドを生成しておけば、Cocoa が multithreading mode ってのになって、その後は POSIX スレッドでも Cocoa(NSAutoreleasePool 含む)を使えるようになる。
マルチスレッドモードかどうかは、NSThread クラスの isMultiThreaded メソッドで確認できる。
…ってな理解で良い?
209:デフォルトの名無しさん
05/06/08 23:34:03
NSなんちゃらと ネイティブは混ぜるな危険。pthredとか。
210:デフォルトの名無しさん
05/06/10 00:30:51
>>209
>混ぜるな危険
確かにおれもそう思うが、Objective-C++ で書かれたコードとか読んでると、なんかどうでも良くなってくるぞw
211:age
05/06/15 23:34:33
教えてください
以下のように作成された NSString* selstr は何時解放するべき、まはた何時解放されるのでしょうか?
%pの出力は毎回変わりますが、メモリリークは起きていないようです。
- (IBAction)button1Click:(id)sender
{
SEL sel = @selector(button1Click:);
NSString* selstr = NSStringFromSelector(sel);
NSLog(selstr);
NSLog(@"%p", selstr);
}
212:デフォルトの名無しさん
05/06/16 00:56:12
それを解放するのは AutoreleasePool です。
213:デフォルトの名無しさん
05/06/16 09:33:10
>>212
何時解放されるのでしょうか?
[pool release] のときでしょうか?
214:デフォルトの名無しさん
05/06/16 19:35:27
>>213
ちみはメモリ管理のことがよくわかってない風味なので、
URLリンク(developer.apple.com)
ここのページを隅から隅まで読む事をお薦めする。
あと、厳密には NSAutorelasePool がするのは『解放』じゃなくて、
単に release メソッドを呼ぶことだ。
もしそのインスタンスに対して、どこかで retain が使われてれば、
実際には解放されないじょ。
215:211
05/06/16 22:19:09
Google で AutorelasePool イベントループ で検索したら、以下のURLで納得しました。
URLリンク(www.tech-arts.co.jp)
216:デフォルトの名無しさん
05/06/17 08:00:31
Objective-Cは CやC++、Javaと比べて簡単?便利に感じてる?
217:デフォルトの名無しさん
05/06/17 09:25:52
本が無い点を除けばいいと思う
218:デフォルトの名無しさん
05/06/17 12:30:56
簡単だよ
219:デフォルトの名無しさん
05/06/17 13:28:02
Objective-Cは簡単だと思うが、Cocoaその他のAPIが辛い。
ドキュメントなさ過ぎ。
220:デフォルトの名無しさん
05/06/17 16:00:27
あるよ
221:デフォルトの名無しさん
05/06/17 17:16:17
ないとは言ってないだろ
222:デフォルトの名無しさん
05/06/17 21:06:13
ないよ
223:デフォルトの名無しさん
05/06/18 02:36:58
ありすぎ>>>>>ある>>>>>>ない>>>>>なさすぎ
224:デフォルトの名無しさん
05/06/18 02:59:22
マジ?
ありすぎ>ある>なさすぎ>ない
こうじゃないの?
225:デフォルトの名無しさん
05/06/18 03:00:21
違った
ある>ありすぎ>なさすぎ>ない
理由
過ぎたるは及ばざるが如し
226:デフォルトの名無しさん
05/06/20 20:48:52
掃除を
しすぎ>>する>>しない>>しなさすぎ
|| || || ||
潔癖性 普通 不潔 ゴミ屋敷
な?
227:デフォルトの名無しさん
05/06/21 03:29:37
きれいずきは?
228:デフォルトの名無しさん
05/06/21 13:46:44
セックスを
しすぎ>>する>>しない>>しなさすぎ
|| || || ||
ヤリチン 一般人 インポ 童貞
229:デフォルトの名無しさん
05/06/22 14:48:28
つまり
O b j e c t i v e - C は 童 貞
230:デフォルトの名無しさん
05/06/22 14:57:34
>>224 でいいんじゃね?
ありすぎ: » 1
ある: ≥ 1
なさすぎ: ≈ 0
ない: = 0
231:デフォルトの名無しさん
05/06/22 16:43:07
なんだこの流れは?
232:デフォルトの名無しさん
05/06/22 17:18:55
んじゃ本来の流れというか質問
NSWindowのkeyDown:やperformKeyEquivalent:ではcommand等の修飾キー"だけ"押したのはわからないぽいんですが、
どうすれば取れますか?
233:デフォルトの名無しさん
05/06/22 21:11:39
気合いで取る。
234:232
05/06/22 21:32:41
んな殺生な
というか自己解決
ファーストレスポンダで
- (void)flagsChanged:(NSEvent *)theEvent
をオーバーライドですね
NSResponder見てませんでした
235:デフォルトの名無しさん
05/07/08 02:17:14
メソッドにアクセス指定子つけられないとか
抽象クラスがないとかクラス変数がない等の点が
Javaに比べていまいち使いにくい気がするんですが
これは漏れの認識不足のせいですか?
236:デフォルトの名無しさん
05/07/08 02:26:55
気のせいです。
237:デフォルトの名無しさん
05/07/08 15:49:13
>>235
アクセス指定子はないけどヘッダに書いたら公開扱いで書かなかったら
非公開扱いってことにして使うんだろう.
# 実際にはヘッダに書かなくても呼出せるはずだから private ではないけれど…
抽象クラスはあったら嬉しいかもしれんがなくてもそれほど困らない.
逆に Java に出来なくて ObjC に出来ることとして category 使って既存クラス
にメソッド追加したり override したりとかがある.
コンパイル時の静的型チェックのゆるさとか考えても全体的に Java よりも
柔軟でプログラマ任せの言語になってると思う.
#というより Java が堅すぎとも言えるけど…
238:デフォルトの名無しさん
05/07/08 21:46:06
>>235
認識が不足しているのは
×誤 使いにくい
○正 使い慣れない
という部分だな
239:デフォルトの名無しさん
05/07/28 21:55:33
保守age
240:デフォルトの名無しさん
05/07/29 01:44:57
>>239
保守する暇があるなら新Mac板のCocoaスレの質問に答えてあげてよ!
241:デフォルトの名無しさん
05/07/29 02:34:54
質問者乙
242:デフォルトの名無しさん
05/08/08 20:39:10
いままでProject BuilderでビルドしてMacOSX 10.2.8で動いていたプロジェクトを
Xcode 1.5でコンパイルしたら10.2.8ではもう動かなくなってしまいました。Xcodeからコンパイルして10.2.8でも動くようにするオプションなどはありませんか?
243:デフォルトの名無しさん
05/08/09 01:03:32
たしかXcodeをインストールするときにクロスコンパイル関連のリソースを入れるかどうか
っている設定がカスタマイズのところにあったはず。
それを入れた上で、ビルド設定を見直せばいけるのではないだろうか。
すまんがいまMacが手元にないので確認できない....
244:デフォルトの名無しさん
05/08/10 20:45:09
>>243
非常に参考になりました。どうもありがとうございます
245:デフォルトの名無しさん
05/08/19 20:08:31
メモリ管理に抜けが無いか確認する方法を探しています。
Delphiの話なんですが、リンクするだけで確保と開放の組み合わせ数が一致しているかどうか検出できるライブラリがあります。
開放洩れがあると、アプリの終了時に警告ダイアログが出ます。
似たような事をCocoaアプリで行う方法を知っている方は居ないでしょうか?
# Fundationでコマンドツールを作った時は標準出力に開放洩れ警告が出るので、組み込みで機能があるような気もしています。
246:デフォルトの名無しさん
05/08/22 00:57:00
>>245
URLリンク(www.big.or.jp)
247:デフォルトの名無しさん
05/08/22 13:25:16
>>246
ありがとうございます。
MallocDebugは以前から使っていますが、終了時点で内部を歩けなくなるので、開放洩れの確認には向いていないと思います。
# WindowやDocument単位では出来ますけど、それもすごい手間が必要です。
単純に、「確保が500回で開放が480回なんで、20個どっかにリークしてるよん」みたいな情報が欲しいと思っています。
248:デフォルトの名無しさん
05/08/23 07:19:21
>してるよん
ふざけるな
249:デフォルトの名無しさん
05/08/24 01:40:03
朝から何キレてんの
250:デフォルトの名無しさん
05/08/26 13:21:01
>>247 使ったことないけど、leak コマンドってのがあるらしい。
ここにちょこっと紹介されている→ URLリンク(webkit.opendarwin.org)
251:デフォルトの名無しさん
05/08/26 20:37:33
>>250
使ってみました。
実行中のプロセスに対して使うコマンドであるようです。
252:デフォルトの名無しさん
05/08/28 01:01:36
Objective-Cの
[]が嫌い
253:デフォルトの名無しさん
05/08/28 01:03:46
そのこころは?
254:デフォルトの名無しさん
05/08/28 01:28:51
Objective-Cから[]取ったら、只のCじゃん。
255:デフォルトの名無しさん
05/08/28 01:40:56
個人的にはオブジェクトにメッセージを送っている、という感じがして好きだな。
あの表記とCocoaのおかげでクラスと構造体の違いとかオブジェクト指向という
考えとかにピンと来た。
Objective-Cのあの記法は「Cのオブジェクト指向拡張なんだ」という発想から
来てるんだろうね。Cという割とマシンに近いレイヤーと、オブジェクトの
メッセージのやり取りのレイヤーを分ける、みたいな。逆にC++のCに習った
記法は「Cは本当はこうあるべきだ」みたいな発想からなんだと思う。
>>254
というわけで、[]とったらただのCになるようにしたかったからああいう風に
なったんじゃないかな。
256:デフォルトの名無しさん
05/08/28 11:25:19
元祖のSoftwareICのライブラリって、未だにフリーにはなっちゃいないんだっけ?
最近ちょっとあっちのクラスがどーなってるのか気になって仕方ない(w
257:デフォルトの名無しさん
05/08/28 16:58:07
C++もObjCもあんま差ないよね
258:デフォルトの名無しさん
05/08/28 17:45:16
使い方によるのでは。
259:デフォルトの名無しさん
05/08/28 18:14:33
そもそも何の差だ。
260:デフォルトの名無しさん
05/08/28 21:26:22
>>257
どんな視点から見てもとてつもない差があると思われ
261:デフォルトの名無しさん
05/08/28 23:02:55
んな事無いよ
262:デフォルトの名無しさん
05/08/28 23:28:31
なんか寂しいのでこっちにレスしてみよう。
>>256
SoftwareICは知らないけど、Cocoa以外のクラスライブラリならPortable
Object Compilerのライブラリもあるよね。こっちは使ってみた?っていうか、
使ってみた人いるかな。実はあんまり期待してないので見てないんだけど…。
263:デフォルトの名無しさん
05/08/30 01:16:40
>262
結局今生き残っていて、サポートされ、改良され続けているのはAppleのCocoaと
GNUstepという結局OpenStepの末裔の2つだけなわけで。
Brad Coxの元祖Objective-Cの為のSoftwareIC(なんかICpakって名前で101(Foundation)と
201(GUI)という見ようによってはOpenStepと変わらない構成っぽいことはぽいのだけど、
言語仕様的にも
URLリンク(wwwa.dcns.ne.jp)
のFAQに書いてある通り結構いろいろ違いがあるみたいだし、当然そうなりゃライブラリも構成が
当然違うだろうなぁ?という感じではあるんだけど。
今やStepstoneもBradCoxのサイトも消えちゃってるし、余計に気になってねぇ(笑)
PorgtableObjectCompilerも面白そうではあるけど、ちっと嫌~んな感じがあって(笑)
やっぱり手を出しちゃいないんだけどね。
#なんのこたぁない、NSObjectじゃないルートクラスが見てみたいだけっつーだけなのかもしれない(笑)
264:デフォルトの名無しさん
05/08/31 02:27:12
>>263
よく覚えてないけど、そういえばPOCの人はOpenStep的な発展にかなり批判的
だったっけね。
そういえば、Swarmとかいうシミュレーション?のソフトでObjectvie-Cが使われ
ている、みたいなのをちょくちょく見たな。調べてみたらこんなのが。
URLリンク(www.swarm.org)
URLリンク(www.quintessa.co.jp)
ちょっとみた所だと、なんかcreateBeginでオブジェクトを作ってから
パラメーターを設定してcreateEndで初期化を完了する、みたいなことをやる
みたいだった。あとフォーマルなプロトコルがかなりたくさんあったな。
265:デフォルトの名無しさん
05/08/31 10:48:30
学校の講義で使ったよ。swarm。
Objective-Cはそれまで知らんかったけど簡単に書けるからいいよね。
266:デフォルトの名無しさん
05/09/01 16:44:23
萩原って人の本いいねぇ~
267:デフォルトの名無しさん
05/09/02 13:10:52
>>266
同感。
出版社がつぶれたのは不幸だけど、がんばって他から新刊出して欲しい。
新しい例外や同期の構文とかも加筆したやつ。
268:デフォルトの名無しさん
05/09/02 22:37:39
というわけで、復刊.comへの投票よろしく
URLリンク(www.fukkan.com)
投票しても復刊時の購入義務は無いので、ご安心ください。
269:デフォルトの名無しさん
05/09/03 07:23:12
もう持ってるゆ
270:デフォルトの名無しさん
05/09/03 10:27:56
ゆ?オレも持ってるよ。>>267同様、復刊よりも新刊きぼー。
271:デフォルトの名無しさん
05/09/03 17:55:10
すぐにはでないだろうから、
10.5_Xcode対応で出して欲しいゆ
272:デフォルトの名無しさん
05/09/04 09:35:53
コラム連載「ダイナミックObjective-C」
URLリンク(pcweb.mycom.co.jp)
・第1回
CocoaとObjective-Cと動的なオブジェクト指向- Cocoaハックの第1歩
・第2回
Objective-Cの動的型付け
・第3回
Cocoa実現の肝- クラスとそのメソッドの調査方法をチェック
・第4回
ターゲット/アクションパラダイム(1) - 動的特性を利用したデザインパターン
273:デフォルトの名無しさん
05/09/04 20:31:48
勉強してソフト作ってみようかねぇ
274:デフォルトの名無しさん
05/09/09 23:49:05
>>266
潰れたのか…道理でなかなか見つからないと思っていた。偶然近くの古書店で
見つけた割れは好運であったか!
>>267
投票しようとしたが、登録していない人はどうすれば良いのか分からなかった
のでバイバイ。サイトの作り悪いねここ。
275:デフォルトの名無しさん
05/09/10 00:26:17
どうしても見つからないて嘆いてる人はとりあえず地元の図書館のサイト(検索できるなら)で
検索してみるといいかも。
もちろん図書館によるけど、意外と蔵書しててくれたりするので、借りてみるといいかもしれない。
うちの市の図書館にも1冊あったよ。
276:デフォルトの名無しさん
05/09/17 17:23:45
>>268
登録して、投票しますた。
発売3日前に買ったが、そろそろばらけてきた。
Objective-Cはそのものについての本があれだけだったのに本当に残念。
最新内容も加筆したのが出たら、是非欲しい。
277:デフォルトの名無しさん
05/10/17 03:44:35
いまやObj-CはApple独占なのだからどんどん使用拡張してほしい。
D言語の事前条件・事後条件・不変条件とか。
278:デフォルトの名無しさん
05/10/17 13:04:38
>>277
断る
279:デフォルトの名無しさん
05/10/17 15:53:04
そんならいっそObj-Dでも開発して欲しい
利用できる言語が増える分には構わんぞ
ライブラリでなく言語仕様のほう頻繁に弄られちゃたまったもんじゃねー
280:デフォルトの名無しさん
05/10/17 22:37:35
後方互換なら問題ない
281:デフォルトの名無しさん
05/10/17 22:43:07
そんなもん採用するくらいならクロージャを追加したほうが100倍便利。
282:デフォルトの名無しさん
05/10/18 19:57:15
>>281
インナークラスというか、Smalltalkのブロックみたいなものだろ。
すげー欲しい。
283:デフォルトの名無しさん
05/10/19 17:29:07
>>282
このコンパイラはサポートしていたりする。
URLリンク(users.pandora.be)
284:デフォルトの名無しさん
05/10/20 02:16:55
わけわかんねー!^^
285:デフォルトの名無しさん
05/10/21 19:03:29
>>268の票数が急増したな。
うれしいことだ。
286:デフォルトの名無しさん
05/10/21 22:09:06
HMDTで紹介されたからね。
287:デフォルトの名無しさん
05/10/22 02:14:59
ふつうに近くの本屋で売ってるんだが
そんなに評判のいい本なのかコレ
288:デフォルトの名無しさん
05/10/22 02:53:00
中身の評価もだが、日本語で書かれたものが、
これぐらいしか無いという点の方が大きいと思う。
他にも無くは無いけどStepStoneやらNextStepやらが対象だったりして
今から読むには辛い内容だったりする。
できればMacに依存しない(早い話がGnuStepの)本が出て欲しいけど
難しいだろうな。
289:デフォルトの名無しさん
05/10/25 00:02:30
id型には何でも入る~
スーパークラス、サブクラス、全然関係ないクラス~
自由~
290:デフォルトの名無しさん
05/10/25 03:07:48
恐ろしいことです
291:デフォルトの名無しさん
05/10/25 11:39:25
id型には夢や愛も詰まっています。
恐怖や憎しみも
292:id型ばんざいの人
05/10/26 00:40:10
学生の頃に、研究室のNeXTのObjective-Cを必死になって
いじっていた。オブジェクト指向を自分なりに理解したのは
Objective-Cを通じてだ。
後になって、C++を勉強した際に、ポリモーフィズムを実現
するためには基底型のインスタンスに派生型をはめ込む
必要があるというのを知り、妙な制限をかけるもんだと思った。
今は仕事でJavaをやっているけど、やっぱりObjective-Cが
一番だよ。誰も使ってないけど
。・゚・(ノД`)・゚・。
293:デフォルトの名無しさん
05/10/26 15:56:22
漏れもJavaはオブジェクト指向と言ってるけど
ポリモーフィズムできないじゃんとか思ってた
294:デフォルトの名無しさん
05/10/31 20:43:22
これ以外にポージングができる言語ってあるか?
いい統合開発環境ないかなぁ
295:デフォルトの名無しさん
05/10/31 23:08:12
ちょこっと質問させてください。
Objective-C 使ってテキストデータ(CSV or XMLなどなんでもよい
が)をSQL文を使って扱うくらい簡単に、
データ抽出したり、ソートしたりする方法ありませんか?
296:デフォルトの名無しさん
05/10/31 23:10:12
まず日本語を勉強します。
297:デフォルトの名無しさん
05/11/01 01:05:18
人にわかってもらおうという努力をします。
298:デフォルトの名無しさん
05/11/06 17:29:36
>>295
マカーって本当にスキル低いな。
そういうライブラリを自分で作るか、そういう事が出来るライブラリを使うんだよ。
OCじゃなくて、Cで十分。
299:デフォルトの名無しさん
05/11/06 18:59:31
ここにも湧いたか。
300:デフォルトの名無しさん
05/11/06 19:05:54
マカーだと思いこんでる時点で脳足りん確定
301:デフォルトの名無しさん
05/11/08 21:37:58
本棚を整理してたら、L.J Pinson/R.S Winer のObjective-C本が出てきた。
いかにもMacで描かれた絵が懐かしい。「ソフトウェアIC」とか「マジノ線防衛」とか。
302:デフォルトの名無しさん
05/11/09 01:29:00
>301
元祖のアレ?
いいなぁ。
303:デフォルトの名無しさん
05/11/10 16:00:51
違った違った。
B.J. コックス/A.J.ノボビルスキーの方だ.
304:デフォルトの名無しさん
05/11/17 01:04:31
>>295
unix の grepとかsortコマンドを利用する
305:デフォルトの名無しさん
05/11/19 21:00:01
楽しいよー
306:デフォルトの名無しさん
05/11/20 00:09:25
UMLやるようになったら、このC言語の良さにあらためて気付かされた。
307:デフォルトの名無しさん
05/11/22 18:32:55
興味があります。
Objective-Cの文法解説日本語サイトみたいなのお願いします。
↓
308:デフォルトの名無しさん
05/11/22 19:10:46
URLリンク(wisdom.sakura.ne.jp)
309:デフォルトの名無しさん
05/11/23 04:39:45
↑
参考になりました。
思ったより簡単そうですね
Windowsで使えると良いのですが
310:デフォルトの名無しさん
05/11/23 11:47:17
>>309
GNUStep
311:デフォルトの名無しさん
05/11/23 14:49:21
萩原本はいい本だ。
持ってないあわれなおまいらのためにわざわざ投票してやってもいい。
しかし条件がある。おれさまは投票だけして買わなくてもいいのか?
312:デフォルトの名無しさん
05/11/23 16:08:42
いいんじゃないの
発売決定したら買うかどうか選択できるし
その時に欲しくなるかもしれないしね
313:デフォルトの名無しさん
05/11/24 01:52:49
>>311
投票しても購入義務は生じないから、
持っていない自分としては是非投票して欲しい。
314:デフォルトの名無しさん
05/11/24 14:02:19
購入しろよ
315:デフォルトの名無しさん
05/11/25 02:13:01
>>306
よくわからない
316:デフォルトの名無しさん
05/12/07 10:22:24
そんなにいい本なのか
書店に残ってるから買っちゃおうかな・・・高いけど
317:デフォルトの名無しさん
05/12/09 10:25:24
NeXTSTEP復活しないかなあ…
318:デフォルトの名無しさん
05/12/09 12:49:23
>>317
OSXじゃ嫌なの?
319:デフォルトの名無しさん
05/12/09 12:50:15
キャノ販の倉庫とかに眠ってないかな
今のPCで動かしたら爆速なんじゃないか?
320:デフォルトの名無しさん
05/12/09 19:59:32
>319
ドライバ類が当時より困ったチャンな事になるかもしれんけどな(汗
321:デフォルトの名無しさん
05/12/12 16:04:48
仮想PCの上で動かしたらハードウェアもOKそうだね
322:デフォルトの名無しさん
05/12/31 17:19:12
Cocoa でゲームつくったらフレームレートがめちゃ低いので
「やっぱ Objective-C は遅いのか、動的バインドだし」とか思ってたが、
ObjectAlloc を使えるようになってただ一つのメモリリークが発見でき、
そこを直したらフレームレートが超改善した。
この場を借りて Obj-C の神様に懺悔しまつ。
323:デフォルトの名無しさん
06/01/20 02:12:00
ン年ぶりにユニマガ買ってここにたどり着きました。
appleがdocumentをpdfで提供してるとは知らなんだ
このスレとあわせてこれから読みます
324:デフォルトの名無しさん
06/01/21 00:44:31
デスクトップの Mac が出るまでに ObjC 勉強しようとした。
Windows しかないので Cygwin の Gcc でお勉強。
…リンクができねぇ。
Cygwin Gcc では ObjC は含まれていないんだと。
URLリンク(cygwin.com)
VMware 上の Linux で出なおします。
325:デフォルトの名無しさん
06/01/21 04:32:10
>324
Mingwだっけ?
あっちはどう?
GNUstepのWin版に使われてる位だから動くと思うんだけど。
326:デフォルトの名無しさん
06/01/21 08:39:29
GNUstepのWin版インストーラ使えばMingwも入って楽だよ。
まぁLinuxでProjectCenterとかGorm使った方が楽しそうだけど。
327:デフォルトの名無しさん
06/01/21 10:16:01
>>320
当時でもドライバ類は困ったチャンだったから今のPCじゃ全滅でしょう。
>>321
VirtualPC上で問題なく動いてます。速度もそれなり。
NEXTSTEP/OPENSTEPなんて今のWindowsのUIから比べるとかなりクソですが。
328:324
06/01/21 12:38:00
>325
>326
情報ありが㌧。
GNUStep でも同様のエラーでますた。
原因は gcc のオプション -lobjc を最後にしていなかったから… orz
オプションの類は前置きする癖がついていて、何度も何度も
gcc -o Sample.exe -lobjc Sample.m
としてました。gcc の使い方から出直しです。
-lobjc 最後にしたら Cygwin でもコンパイル・実行できました。
C をポインタで挫折して Java に逃げ込んだ私ですが、地道に出直します。
ありがとうございました。
329:デフォルトの名無しさん
06/01/24 09:49:19
Objective-Cの特徴を一言で言うとどんなだろうな。
C++のような複雑怪奇流動的なものじゃなければ
いいんだが。
330:デフォルトの名無しさん
06/01/24 11:31:48
>>329
>Objective-Cの特徴を一言で言うと
(Smalltalk + C) / 2
331:デフォルトの名無しさん
06/01/24 11:38:14
よく言われるのはこんな感じ。
ObjectiveC,smalltalk メッセージ指向
C++,Java クラス指向
メッセージ指向って何さ、メソッドとどう違うのさという意見もあり、
smalltalk派とC++派の喧嘩(という程でもないが)の種になったりする。
この辺も参考に
URLリンク(homepage.mac.com)
URLリンク(sumim.no-ip.com:8080)
332:デフォルトの名無しさん
06/01/24 13:40:08
>>331
それは動的、静的と言い換えてもよくない?
333:デフォルトの名無しさん
06/01/24 18:13:14
Cなんだけど、スクリプト言語っぽいユルさがある。
ただメモリは解放してあげないといけない
…のが良かったり、悪かったり。
カリカリには行けないけど、気はそんなに緩められず。
こんなんで良いのか?と思いつつ、楽に作れて動いてる。
とても微妙な感じのする言語ですね。
334:デフォルトの名無しさん
06/01/24 18:17:14
C から ObjC のメソッドを呼び出すのはどうやるの?
335:デフォルトの名無しさん
06/01/24 19:43:35
>>332
言葉遊びかもしれんが、動的、静的というより、
オブジェクトの結合が粗か密かという方が適切な気がする。
言語研究者や言語オタならうまく説明できるんだろうなあ。
336:デフォルトの名無しさん
06/01/24 19:47:19
>>334
Appleの実装ならobjc_msgSend()とか
337:デフォルトの名無しさん
06/01/24 20:08:06
>>336
ありがとう。Mac じゃないけど、gcc なんでちょっと試してみます。
338:332
06/01/24 20:14:43
>>335
それはやっぱりバインディングが静的か動的かと言ってるように
見えるんだけど、違うのかな。
「オブジェクト同士の結合が疎 」
⇔ 「Cocoa BindingとかDuck Typingが可能」
⇔ 「動的要素大」と。
339:デフォルトの名無しさん
06/01/24 22:34:15
オブジェクト同士がメッセージでやりとりしてる感じの言語を作ろう!結果動的に。
みたいな動機の部分と実際の実装(?)ってことじゃないのかな?
340:デフォルトの名無しさん
06/01/24 22:47:58
>>339
まあそういうことだあね。どっちに注目するかの差でしかない。
動的ってのは結構なメリットだと思うんだけど、
なんでメッセージ指向は流行らないんだろうな。
341:デフォルトの名無しさん
06/01/24 23:35:14
流行らない理由
・遅い(或は、見るからに遅そう)
・メモリ喰い(ランタイム情報いっぱいくっつける)
・実行時バグは見つけ辛い(静的ならコンパイル時に弾いてくれるのに)
・静的マニアが多い(こいつらが一番問題)
Objective-C はクロージャを捨てたのが間違いだよなぁ。
動的言語としては中途半端な感じ。
342:デフォルトの名無しさん
06/01/24 23:41:26
>>295
亀レスだが、NSXML が使えるんじゃないかな...
343:デフォルトの名無しさん
06/01/24 23:44:15
>>341
>・実行時バグは見つけ辛い(静的ならコンパイル時に弾いてくれるのに)
OS X 標準だとクラッシュしたらスタックトレースが出て、
どのメソッドのどの行で死んだかすぐわかるのでそれほど問題ではないっす。
344:デフォルトの名無しさん
06/01/25 00:27:04
テストが完全ならね。
345:デフォルトの名無しさん
06/01/25 01:15:14
>>338
重要なのは言語ではない。その背景にある概念である。 by グラディ・ブーチ
実装面での話に置き換えようとした場合(きっとそれはたいてい成功しますが)、
もとの言葉の意図するところとは違ったところに着地するような気がします。
とりあえず、メッセージングについて知りたければ、その発案者であるケイの
書いたものを読むのがいいと思います。
URLリンク(lists.squeakfoundation.org)
URLリンク(www.purl.org)
URLリンク(gagne.homedns.org)
それでもなお、そんなの「動的」でいいじゃん、と 332 が思うのならそれまでで。
346:デフォルトの名無しさん
06/01/25 01:22:54
メッセージが静的に定義出来るなら、オブジェクト間の関係で例外を考えなくてもいいのになぁ。
347:デフォルトの名無しさん
06/01/25 10:45:09
>>341
インスタンス変数の動的追加が出来れば、クロージャじゃなくてもいい。
348:デフォルトの名無しさん
06/01/26 01:10:35
>>347
メソッドの動的追加も出来なきゃ嫌なんだが。あと、関数リテラルも。
349:デフォルトの名無しさん
06/01/26 10:10:38
>>348
ランタイム関数で出来なかったっけ?
350:デフォルトの名無しさん
06/01/27 07:48:00
インテル版の Mac では Objective-C ではなく C++ ベースの開発環境になるみたいでつね。
とても悲しい。 Objective-C サポートしてくれ~>インテル
351:デフォルトの名無しさん
06/01/27 09:13:12
>>350
日本語おかしいけど、どうせ ICC の話だろ。もう一回寝ろ。
352:デフォルトの名無しさん
06/01/28 04:56:07
>>349
出来るなら、マジやり方教えて欲しい。
353:デフォルトの名無しさん
06/01/28 16:47:37
>>350
本当に???
過去の資産とか、どうするつもりなんだろう1?
354:デフォルトの名無しさん
06/01/28 17:29:17
>>353
騙されてんじゃねーよ。ちょっとは自分で調べれ。
355:デフォルトの名無しさん
06/01/28 20:12:10
メソッドの動的追加は class_addMethods で出来そうだな。
356:デフォルトの名無しさん
06/01/28 23:46:24
>>354
非存在の証明は原理的に不可能
ソフトウエア開発者の常識
357:デフォルトの名無しさん
06/01/28 23:48:10
ゴバクかな...?
358:デフォルトの名無しさん
06/01/29 19:10:20
vorbisのコメントの読み出しは出来たけど書き込みってどうやったらいい?
359:358
06/01/29 19:34:51
ごめん・・・誤爆した・・・
360:デフォルトの名無しさん
06/01/31 01:22:05
Objective-C で構文解析するときってどのライブラリ/ツールつかうんでしょ?
ぐぐったら GSANTRL なるものが出てきたんだけど、情報が少ないのとサンプルが全く無いのでどうしたもんかなと。
361:デフォルトの名無しさん
06/01/31 04:55:54
C との違いがほとんどないので、自前で C に落とすプリプロセッサを書いて
生成されたコードをほかのツールにかけるとか?駄目か。
362:デフォルトの名無しさん
06/01/31 05:07:18
GSANTLR ね。使った事は無いけど...
363:デフォルトの名無しさん
06/01/31 16:20:09
GNU GLOBAL で使えるようにしてくれ>>だれか
364:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/02/01 00:43:58
>>361 は "Objective-C の構文" の解析の話をしてるんじゃないの?
俺もそういう質問だと思ってたけど。勘違いだったらスマソ。
Objective-C を使って構文解析するという話だったら、lex/yacc で
良いと思うよ。
366:360
06/02/01 01:04:39
>365
すんません。言葉足らずでした。
"Objective-C を使って構文解析する" という話でした。
ありがとう。
>361
質問悪かったです。すまぬ。
367:361
06/02/01 02:32:50
こちらこそ質問を誤解してすまそ
368:デフォルトの名無しさん
06/02/01 03:43:04
こちらこそただ見てるだけですまそ
369:デフォルトの名無しさん
06/02/09 12:45:22
生きててスマソ
しかも遅レスで超スマソ
370:デフォルトの名無しさん
06/02/10 13:32:31
Objective-Cって、例外(try-catch)がつかえないんだっけ?
クロージャはなくてもなんとかするけど、例外がないとちょっとつらい。
371:デフォルトの名無しさん
06/02/10 14:16:13
素の Objective-C にはないよ。
NextSTEP 系列なら NS_DURING / NS_HANDLER / NS_ENDHANDLER
Panther 以降の Cocoa なら @try / @catch (/ @finally)
372:デフォルトの名無しさん
06/02/10 15:14:07
#すれ違いスマン
クロージャってCommandパターンのことか?
373:デフォルトの名無しさん
06/02/10 17:17:40
Objective-C は Apple のものじゃないの?
Stepstone -> NeXT -> Apple って権利が移ってると思ってたんだけど。
Apple が拡張した Objective-C のみが Objective-C って名乗れるのでは?
374:デフォルトの名無しさん
06/02/10 17:22:53
>>371
さんくす。@try/@catch/@finallyか。あたらなディレクティブが増えてるんだな。
これって、Foundationでも使われているの?
つまりPanthor以降のCocoaでは@try/@catch/@finallyをふんだんに使っているのか気になる。
例外処理をつかう・使わないではプログラミングスタイルが大きく違うので。
>>372
違う。イメージはなんとなくわからなくもないが。
クロージャは手続きと、それがアクセス可能な変数をいっしょにしたもの。
クロージャを使うと、手続き(処理)をデータとして扱う事ができ、メソッドの引数に渡したりできる。
つまり引数として整数や文字列を渡すのと同じ感覚で手続き(処理)を渡す事が出来る。
LispやSchemeでは関数がクロージャ。RubyやSmalltalkではブロックがクロージャ。
コマンドパターンも処理をオブジェクトとするための手法ではあるんだけど、外の変数にアクセスできないため、クロージャとはふつういわない。
つか、クロージャは言語の機能、コマンドパターンはデザインパターンのひとつ。比較する対象が違う。
375:デフォルトの名無しさん
06/02/10 23:09:46
>>374
Smalltalkのブロックは最初びっくらこいた。
if文がメッセージで、その引数がブロックなんだよな確か。
あそこまでドラスティックにはやりたかないけど。
376:デフォルトの名無しさん
06/02/11 00:47:21
クロージャがあればインスタンス毎に少しだけ振る舞いを変えたい時に
便利なのにね。button を押した時の callback を button 毎に設定する
時とか、イテレーションの処理本体を引数で渡したりとか。
377:デフォルトの名無しさん
06/02/11 00:51:08
trueオブジェクトにifTrueのメッセージを送って引数のブロックを実行する、じゃなかったっけ?
数字なんかのリテラルにもメッセージをおくって計算させてたと思う。
個人的にネタで「オブジェクト指向ならこれくらいしないとなぁ」って言ってたレベルより徹底してる
378:デフォルトの名無しさん
06/02/11 01:33:25
例外って@NSException??
379:デフォルトの名無しさん
06/02/11 23:57:20
>>376
後者は兎も角、前者は Cocoa ではアレだな、
ボタンのメソッドでアクションを登録するというよりは、
Interface Builder でボタンからコントローラにコネクションを張る
(どのコントローラのどのメソッドを実行するか指定する)ので...
まあクロージャあったほうが面白いけど。
380:デフォルトの名無しさん
06/02/12 07:18:26
>>379
同意。376はVisualBasicが頭にあるんじゃないかな。
381:デフォルトの名無しさん
06/02/13 14:41:38
>>374
@try関係は言語に組み込まれただけで、NS_DURINGとかのマクロと互換性あり。
Cocoaのほとんどのメソッドが例外を投げない状況に変化は無い。
>>372
クロージャは、下記が判り易いと思う。
URLリンク(kmaebashi.com)
382:デフォルトの名無しさん
06/02/13 20:15:15
油断してたら Dylan のスレが落ちてた…
383:デフォルトの名無しさん
06/02/14 01:24:04
Javaの無名クラスはクロージャの一種ですか
384:デフォルトの名無しさん
06/02/14 06:54:50
>>383
違う。無名クラスからは生成された箇所のローカル変数にアクセスできない。
finalつけた変数にはアクセスできるらしいけど。
385:デフォルトの名無しさん
06/02/14 12:03:58
それ、定数だからな。
そこそこ便利ではあるけど、クロージャではないね。
もっとも、クロージャのある言語にも無名クラスは欲しい(できれば
レキシカル環境へのアクセスのあるクロージャとしての構成で)。
386:デフォルトの名無しさん
06/02/14 23:30:07
>>385
クロージャとは別に無名クラスが欲しい場面を教えてくれ。
参考にする。
387:デフォルトの名無しさん
06/02/15 06:05:48
ごめん、最近はJava書いてないからすぐには思いあたらないの。
388:デフォルトの名無しさん
06/02/15 06:28:42
Javaには毎日触っているが、クロージャのある言語に触る機会がない。
Schemeでも勉強してみようかな。
389:デフォルトの名無しさん
06/02/15 08:14:43
Groovyでいいんでね?それかJavaScript
390:デフォルトの名無しさん
06/02/16 02:22:04
>>382
なつかしいね。まだ開発やってんのかな?
391:デフォルトの名無しさん
06/02/16 13:49:29
>390
まだ続いてるよ(笑)
Gwydion Dylanは今はgccのバージョンアップ絡み?で停滞気味かね?
OpenDylan(Functional Developerのオープン版)に主力メンバーが注力してる感じ。
が、svcとか見る人でないと進展はないようにしか見えない罠(w
392:デフォルトの名無しさん
06/02/16 21:21:16
>>382
どんな言語なの?
つか、このすれとはどういう関係で?
393:デフォルトの名無しさん
06/02/16 21:33:41
S式を使わない LISP …といったふぜいの言語。
Apple つながりでね。
394:デフォルトの名無しさん
06/02/17 15:09:24
URLリンク(www.na.rim.or.jp)
ずいぶんと古い文書が見つかった
395:デフォルトの名無しさん
06/02/18 00:15:18
今なら
URLリンク(www.opendylan.org)
こことか、
URLリンク(monday.sourceforge.net)
ここらから眺めていくといいんじゃないだろか?
396:デフォルトの名無しさん
06/02/18 02:38:25
dylan 刷れ立てる?利用者いないだろうけど。
397:デフォルトの名無しさん
06/02/18 09:54:50
必要ないだろ。
それより、るびまの他言語訪問、今回はDylanらしい。
398:デフォルトの名無しさん
06/02/22 14:04:44
Objective-Cから.NET弄れれば面白いのに
399:デフォルトの名無しさん
06/02/22 16:42:21
>>396
前あったが落ちた。
400:デフォルトの名無しさん
06/02/22 23:27:34
>>398
何が面白いのか理解出来んが、MONO に call-in するインターフェイスを
書けば良いんじゃないの。
401:デフォルトの名無しさん
06/02/26 19:25:31
[[myFriend girlfiend] retain];
402:デフォルトの名無しさん
06/02/26 19:48:55
test
403:デフォルトの名無しさん
06/02/27 03:09:51
>>401
girlfriend を autorelease して渡す
奇特な友人は居ないと思われ...
404:デフォルトの名無しさん
06/02/27 10:46:54
retainして他に渡すのも変じゃないか?
405:デフォルトの名無しさん
06/02/27 19:06:40
>>403
ちょっと彼女に会わせてあげる、みたいなノリじゃね?
406:デフォルトの名無しさん
06/02/27 20:52:00
myGirlfriend = [[myFriend girlFriend] retain];
[myFriend release];
myFriend = nil;
407:デフォルトの名無しさん
06/02/27 21:14:14
/* myFriendの復讐 */
- (nil)release
{
[>>406 dealloc];
[super release];
}
408:デフォルトの名無しさん
06/03/03 05:32:07
girlFriend: が nil を返さない保証はどこにあるのさ?
409:デフォルトの名無しさん
06/03/04 00:41:33
メソッドそのものが無かったりして…
410:デフォルトの名無しさん
06/03/08 18:51:45
ないものは作る
@implementation girlFriend
後はまかせた
411:デフォルトの名無しさん
06/03/08 19:28:07
いや、girlFriendはインスタンス変数だと思うが。
クラスはGirlですか
412:デフォルトの名無しさん
06/03/08 19:38:36
@implementation Human (GirlFriendInformalProtocol)
413:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/03/09 20:17:14
はじめてCocoaでSocketのプログラムを書いてみました
asyncSocket
smallsocket
等ライブラリがあるようですが、どれを使っても同じ問題が発生しています
問題
Javaで書かれたサーバーに接続し、Objective-Cクライアント側のsocketとstreamをcloseしてもサーバー側では分からないのです。
他の言語でクライアント側を書いた時は、クライアント側でcloseすると、サーバー側で検知されました。
これってOSXでは通常の動作でしょうか?どのようにしたら、サーバー側で検知できるでしょうか。
サーバー側のsocketに何かプログラムが必要でしょうか。
現在は、javaサーバー側のsocketでタイムアウトが発生するまで検知されません。
どなたか教えて頂けませんか。
415:デフォルトの名無しさん
06/03/09 22:36:32
いわゆるひとつのマルチってやつですか
416:デフォルトの名無しさん
06/03/10 11:06:52
そもそも、クライアント側のクローズをサーバで検出する事が間違い。
LANの外に出るとほとんど機能しない。
クライアントが先に送信バイト数を送るか、最後に終了コードを送って、サーバ側に切断させるのが正解。
またサーバ側は、タイムアウトでも切断するようにする。
417:デフォルトの名無しさん
06/03/10 13:01:38
最後に終了コードを送るようにしていますが
closeが検出されないことが驚きでした
このような動作は Objective-C+OSX だけではないでしょうか
Realbasicでも検出されました
javaやWINDOWS環境でも検出されます
何か間違っているでしょうか
418:デフォルトの名無しさん
06/03/10 17:15:46
何で通信してるか知らないけど、明示的にclose送ってみたら?
その後閉じる。
419:デフォルトの名無しさん
06/03/10 17:31:33
終了コードを送る場合 文字コードとかあるじゃないですか
なので とりあえず close だけで 閉じても サーバー側ではわからないのですね
正常にクライアントソケットを閉じてるのですからサーバーソケット側で
他の言語環境と同じように検知したいのですが
こういう動作はObjective-C+OSXが初めてです
なぜ検知をしたいかというと不正なクライアントを識別する機能と関係しています
もし検知されないとしたら Objective-C+OSX のクライアントから 適当なサーバーに繰り返し接続して
放置しておくだけで DoS攻撃ができちゃいますよ
420:デフォルトの名無しさん
06/03/10 19:18:15
言語のせいなのか?
421:デフォルトの名無しさん
06/03/10 19:25:46
ほほうCocoaアプリのWebブラウザは全てDoS攻撃可能ですか
帰れ馬鹿。
422:デフォルトの名無しさん
06/03/10 19:45:48
だれも CocoaアプリのWebブラウザ全て なんて言っていませんよ
これからもずっと狭い世界で生きていってください
423:デフォルトの名無しさん
06/03/10 20:02:22
Objective-C+OSXのクライアント、なんて書くからだろ。そんなの山ほどあるよ。
そしてキミのトラブルwに類似した例で困ってる人なんか、ググっても誰も見つからなかったんだろ?
そこで気付くべきだ。狭い世界で生きてるのは自分だとなw
424:デフォルトの名無しさん
06/03/10 20:07:46
DoSの対処は、同一ホスト接続時ウェイトや最大接続数でやるものだ。
だいたいソケットのcloseは、ルータを跨ぐと伝わらないからインターネットでは使えない。
それに、終了コードで文字コードとかって何の話だ。
telnetで試せないような物を作っている気配がするぞ。
コマンドストリームなら英文字列のコマンドを送る物だし、データストリームは先にバイト数を通知する物だ。
まずネットワークプログラムの本で、定石なプロトコルの作り方を勉強した方が早いと思うぞ。
あとうまくいかない時は、まっさきに自分の不勉強を疑え。
そんな弱い心だと、腕が上がらんぞ。
425:デフォルトの名無しさん
06/03/10 20:44:56
コメントありがとう
>ソケットのcloseは、ルータを跨ぐと伝わらない
Objective-C+OSX 以外は伝わりますよ
java RealBasic その他ウィンドウズの環境でも
426:デフォルトの名無しさん
06/03/10 21:17:32
プロトコルによる。
427:デフォルトの名無しさん
06/03/10 21:58:46
>>419
>終了コードを送る場合 文字コードとかあるじゃないですか
意味わかんね。自分の中で話閉じるな。
428:デフォルトの名無しさん
06/03/10 22:00:48
>>419
>なぜ検知をしたいかというと不正なクライアントを識別する機能と関係しています
だったら、なぜサーバからクローズしない。
429:デフォルトの名無しさん
06/03/10 22:35:41
終了コード云々はプロトコルの問題です 文字コード云々もプロトコルに含まれます
socketのcloseとdisconnectの仕様についてが元々の質問です
Objective-C+OSX 以外のsocketの仕様については一部述べています
その上でObjective-C+OSXのsocketの仕様についてお尋ねしているのです
問題を切り分けた上で質問しているということです。
>だったら、なぜサーバからクローズしない。
httpのように直ぐ切断するものでなくて 接続が続くタイプのサーバーだからです
430:デフォルトの名無しさん
06/03/10 22:40:42
だったら、ふつうにサーバに切断要求を出せばいい
プロトコルも当然自分で規定してるんだろう?
切断用のコマンドなりなんなり決めればいいじゃないか
431:デフォルトの名無しさん
06/03/10 22:50:12
切断用のコマンドも決めていますよ
ただsocketの段階で他の環境と動作が異なっているので 質問しました
プロトコルがテキストベースの場合CRLFなどを読むコードを書かないとsocketの切断処理を書けない
のであれば 特殊だと思いましたので 間違っているのかどうか確認したかったのです
とりあえず動かすということでなくて 問題を切り分けした上で プロトコル関係なく
OSXのsocketの動作として どうなのかが質問のポイントです
432:デフォルトの名無しさん
06/03/10 22:52:55
誤:プロトコルがテキストベースの場合CRLFなどを読むコードを書かないとsocketの切断処理を書けない
のであれば
正:プロトコルについて いろいろ決めて そのコードを書かないとsocketの切断処理を書けない
のであれば
433:デフォルトの名無しさん
06/03/10 22:58:21
TCP socketと自分プロトコルのクローズを混同してる。
RealBasic, Java, Windows環境でも検出されるというが、
言語環境とOS環境も混同してる。
当然、UNIX Cの socketでも確認したんだよな?
434:デフォルトの名無しさん
06/03/10 23:06:26
なあ、とりあえずObjective-C関係なくないか?
ネットワークプログラミングのスレとかに移動してもらえると助かるのだが。
435:デフォルトの名無しさん
06/03/10 23:06:35
混同なんてしていません
あなたが勝手に間違っているだけとしか 思えませんが
UNIX C の socket とは何ですか?
なぜ そんなもので確認する必要があるのですか?
436:デフォルトの名無しさん
06/03/10 23:07:04
UNIX Cの socketだけ まだです
と言ってもObjective-Cから中で呼び出しているようですが 今度確認してみます
Windowsの言語と言っても沢山ありますから ウィンドウズ環境とまとめただけです
TCP socketのクローズについて聞いているのですが
プロトコルのクローズについての返答が多いです
437:デフォルトの名無しさん
06/03/10 23:09:58
偽者行為して何になる>435
こういうやつが多いのですか マカーは
438:デフォルトの名無しさん
06/03/10 23:17:50
なんでマカーという単語が出てくるんだ。
439:デフォルトの名無しさん
06/03/10 23:22:39
新マックの方にも書いたのですが
質問の意味が直ぐわかる方が半分ぐらい
うざがってか なんでか からむ人が半分ぐらい
という感じだったからです
440:デフォルトの名無しさん
06/03/11 00:16:27
socketをクローズした時に、TCP FINが飛ばないって話ですか。
単にライブラリの誤用だと思いますけど。
ライブラリは止めて、NSStreamかCFStreamを直接使ってみたらどうです?
441:デフォルトの名無しさん
06/03/11 00:38:06
ありがとうございます
ライブラリといってもソースを読みましたが単純なものでしたが
できるだけ低レベルAPIでやってみます
442:440
06/03/11 01:08:38
プロトコルで皆に突かれている事も妥当なので、再考した方が良いですよ。
クライアントが終了コマンドを送ってそのままクローズすると、コマンドが届かなかったりします。
切断は、終了コマンドを受け取ったサーバ側が行う事が定石です。
443:デフォルトの名無しさん
06/03/11 01:10:20
いつまでもサーバが待ってる方が変だと思う
444:デフォルトの名無しさん
06/03/11 01:32:31
日本語は空白じゃなくて「、」で区切るんだよ。
445:デフォルトの名無しさん
06/03/11 05:51:19
基本的に切断はサーバ側で行っていますが
Objective-C+OSXのsocketでcloseを検知しませんでしたので質問しました
予期しないクライアントの接続方法についてサーバー側では常に定石外のことも考えるべきだと思います
。を使わない時は、も使いません いつも使わないわけではありません
失礼しました
446:デフォルトの名無しさん
06/03/11 14:40:01
OS X のソケットといっても BSD と異なるとは思えないけれど。
447:デフォルトの名無しさん
06/03/15 00:36:57
さて、Objective-Cの話に戻ろうか
448:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/03/17 08:03:12
-- 近所の autorelease プールにちょっと泳ぎに行こうと思うんだけど、誰か一緒に行かない?
-- 僕は遠慮しとくよ。 何がリリースされてるか判らないからね。
450:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:30:52
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
451:デフォルトの名無しさん
06/03/25 23:22:17
[self hosyu];
452:デフォルトの名無しさん
06/03/27 10:25:14
∧||∧
( ⌒ ヽ MonaOSにlibobjc移植してみたけどコンパイルできない・・・
∪ 。ノ
∪∪
453:デフォルトの名無しさん
06/03/28 11:45:35
MonaOSってObjective-Cで書かれてんの?
454:デフォルトの名無しさん
06/03/28 12:43:09
>>453
C++とかC#とかぐちゃぐちゃだよ
単にObjective-Cが使いたかっただけなんだ
455:デフォルトの名無しさん
06/03/28 18:55:29
Objective-C良いよね。
456:デフォルトの名無しさん
06/03/28 19:10:57
だよね。
457:デフォルトの名無しさん
06/03/29 00:51:28
[[NXApp alloc] init] とか見ると快感すら覚える。
458:デフォルトの名無しさん
06/03/29 20:49:22
[[Object alloc] init] と [Object new] はどうちがいますか?
459:デフォルトの名無しさん
06/03/30 09:50:39
>>Object<<
どっちも使えねぇという意味で違わない
460:デフォルトの名無しさん
06/03/30 19:29:03
NXApp ってあんた何年前の話よ。
alloc] init] と new ] の違いは、
後者は普通使わなくて前者をよく使うというだけでは、慣習的に。
461:デフォルトの名無しさん
06/04/02 01:58:47
俺の人生はNeXT Computer Inc.が消滅した時に終わったから...
462:デフォルトの名無しさん
06/04/02 10:24:39
すろやまさん?
463:デフォルトの名無しさん
06/04/02 13:46:30
荻原本復刊記念age
464:デフォルトの名無しさん
06/04/02 15:01:11
どう変わるかな、しかし高いので立ち読みだけにします。
465:デフォルトの名無しさん
06/04/02 15:14:50
萩原盆とはなんぞや
466:デフォルトの名無しさん
06/04/02 16:00:49
>>462
いい読みだが、漏れはあんな負け組さんじゃない。
467:デフォルトの名無しさん
06/04/02 16:51:42
>>265
これだろ?
「Objective‐C―MacOS Xプログラミング入門 MacOS Xプログラミング入門」
荻原 剛志 (著)
Human Interface Guidelines も復刊してくれ
468:デフォルトの名無しさん
06/04/02 19:09:49
>>466 人生終わってるのに勝ち組カコイイー
469:デフォルトの名無しさん
06/04/02 19:53:05
すろやまさん乙
470:デフォルトの名無しさん
06/04/02 22:32:34
よく+(id)sharedInstanceみたいな感じでインスタンスをひとつだけ作ってそれを返すメソッドがあるけど、
あれってどうやって実装してるの?
471:デフォルトの名無しさん
06/04/02 23:36:49
?
単純にsingletonじゃねーの?
if (_object==nil){
_object = [[Hoge alloc] init];
}
return _object;
Hoge alloc, Hoge initは非公開にしてこんなかんじ?
もうちょっといろいろしてると思うけど
#そういう話じゃない?
472:デフォルトの名無しさん
06/04/03 00:26:41
URLリンク(developer.apple.com)
473:デフォルトの名無しさん
06/04/03 09:31:45
Javaじゃあるまいし、initを非公開になんてしないんじゃね?
普通にinitでもファイルスタティックな変数に入れた共有インスタンスを返せばいい。
474:デフォルトの名無しさん
06/04/03 13:10:45
Amazon登場
Objective-C Mac OS Xプログラミング
荻原 剛志 (著)
URLリンク(www.amazon.co.jp)
475:デフォルトの名無しさん
06/04/03 19:53:46
ありがとうございます。
Singletonっていうんですね。デザインパターンについてはあまり勉強してませんでした。
476:デフォルトの名無しさん
06/04/03 20:27:51
>>474
前作を持っている人は購入の必要はなさそうですか?
477:デフォルトの名無しさん
06/04/05 03:47:17
Objective-C++ で boostって使えます?
ヘッダインクルードすると大量のエラーが出ますが
やっぱりアウト?
478:デフォルトの名無しさん
06/04/05 06:57:20
externはしたのか。
479:デフォルトの名無しさん
06/04/08 18:24:50
レビューまだー?
480:デフォルトの名無しさん
06/04/08 20:34:31
せめて目次出して...
481:デフォルトの名無しさん
06/04/09 01:15:38
>>480
前の本との比較としては
・CHAP13「アプリケーションの構造」CHAP19「キー値コーディング」が追加。
・CHAP11「オブジェクトのコピーと保存」にアーカイブとプロパティリストについて追加
・第8章「例題:カードゲームのシミュレーション」が削除
という感じ。ディープすぎる内容が本文からコラムに移されていたりと
読みやすさとしても良くなってると思うよ。
482:デフォルトの名無しさん
06/04/09 07:59:45
前の持ってたらいらねーかなー
高いしなー
483:デフォルトの名無しさん
06/04/11 15:22:51
なぜか前の2冊持ってる俺
484:デフォルトの名無しさん
06/04/11 15:57:46
>>483
ヤフオクで高値で売ろうとしていたが、
復刊に気付かず売り抜けられなかったってこと?
485:デフォルトの名無しさん
06/04/11 16:45:44
萩原本買ってきた。
wktkしながら読みはじめる所。
次は、ヒレガス本のTiger版が欲しい。
つか、TigerであれだけAPIが増えたのに、それ関係の書籍が出ていないし。
486:デフォルトの名無しさん
06/04/11 17:21:24
出ないだろう。Macプログラム本は基本的にはどこの出版社も
出したがらない。mixiのどこだったか忘れたけど2年がかりで
Macプログラム本を書いたのにボツにされた人がいた、とか
書いてあったよ。
487:デフォルトの名無しさん
06/04/11 18:22:28
ヒレガスじゃないけど、Tiger本出るよ。
488:デフォルトの名無しさん
06/04/11 18:42:14
>>476
是非Web公開してほしいじゃないか
489:デフォルトの名無しさん
06/04/11 19:06:19
>>486
んなこたあない
Macプログラム本は種類が少ないから結構売れる。
490:デフォルトの名無しさん
06/04/11 20:48:52
>>481
じゃあおまえが出版社つくって売ってやれ
491:デフォルトの名無しさん
06/04/14 11:37:31
>>487
ソースきぼん。
492:デフォルトの名無しさん
06/04/14 17:03:33
CHAP15の例外とエラーは、Tiger向けにかなり書き直されてる。
購入推奨。
ただし、スレッド周りダメっぽい。
volatileとメモリバリアの区別が付いていないように読める。
493:デフォルトの名無しさん
06/04/14 23:25:05
>>491
本人か周りの人だろ。ローカスか広文かBNN
って、全部出版社潰れたんだっけ?
494:デフォルトの名無しさん
06/04/16 14:31:49
volatileって、実行コードになった時、該当変数をレジスタで保持しないって指定だよね?
たしか、別タスクで書き替えられる可能性のある変数の変更がちゃんと反映されるように保障する指定
495:デフォルトの名無しさん
06/04/16 15:16:35
>>494
それもあるけど最適化もしない。
while (i--);
なんて文は大抵最適化で消されるけど、
iがvolatileだったら消されずに実行される。
496:デフォルトの名無しさん
06/04/17 00:03:09
それ買ってObjective-Cっての勉強しようと思ったが、
値段見て愕然とした、米買えなくなるから諦めた。
497:デフォルトの名無しさん
06/04/17 00:23:18
>>494
違う。最適化コードの出力を禁止するだけ。
組み込みとかでメモリにI/Oが割当たっている時に、
書き込みが省略されたりすると意味が変わってしまう時に使う。
一方ハードウェアの実行時最適化(命令の並べ替え)には影響しないので、
マルッチスレッド下での排他制御には意味を持たない。
メモリバリアとか、メモリの可視性とかを調べよう。
498:デフォルトの名無しさん
06/04/17 01:04:49
>>497
>>494は排他なんて言ってない。
変更が反映されると言ってるだけだから、参照だけだろ。
むしろvolatileだけで排他なんかかけたら問題だw
499:デフォルトの名無しさん
06/04/17 08:49:31
>>498
違う。参照も保証されない。
お前もメモリバリアを勉強し直せ。
500:デフォルトの名無しさん
06/04/17 09:23:37
CのvolatileとJavaのvolatileが混同されているな
501:デフォルトの名無しさん
06/04/17 12:15:16
>>499
そうね。
Cの場合は下記を参照
URLリンク(www.yuasa.kuis.kyoto-u.ac.jp)
Javaはこのあたり参照
URLリンク(www.netgene.co.jp)
C/C++の場合は、volatileはスレッド間のメモリ可視制御を何もやっていないけど、
Javaについては意味がある。
現状Cocoaの場合、インラインアセンブラでメモリバリアを差し込むか、
メモリバリアを入れるOSコールを呼び出す必要がある。
Cocoaが下請けに使っているpthreadについては、「メモリ同期を行う関数」一覧があるので調べられる。
が、Cocoaのどのクラスのどのメソッドが該当するのかは、ドキュメントが見当たらないので推測になる。
念のために書いておくが、494の認識はマルチプロセッサ登場前は概ね正解だった(それでもCPUによる)。
そのため嘘を書いている本は大量に残っている。
ちゃんとした本はあまり無いが、Effective C++を書いたエロイ人のドキュメントもあるので、
英語が読める人には推奨しておく。
URLリンク(www.nwcpp.org)
502:デフォルトの名無しさん
06/04/17 16:08:59
Objective-C の @synchronized ではいかんの?
マルチスレッド書いたことないのですいません
503:デフォルトの名無しさん
06/04/17 17:02:49
>>502
問題無い。lock系の操作はメモリバリアが入ってる。
ダメなのは、「4バイト以下のvolatile変数を使えばロックを使わないで済む」という勘違い。
複数のスレッドが変数にアクセスする場合の選択支は二つあって、
・常にlockして読み書きする。
・読み書きのポイントにメモリバリアを入れる。
のどちらか。
後者の方が性能面で有利だけど、前者を使う方がミスが少ない。
@synchronizedを使うのが一番確実。
ちなみにダメな理由を大雑把に説明すると、最近のCPUはアセンブラコードの順番を勝手に入れ替えて最適化処理をやっている。
その結果、コード上とは異なる順番でメモリ上の変数が書き換わったりしている。
これは単一のCPUから見る限り問題無い(ように最適化されてる)のだけど、他のCPUで動作するスレッドから見ると不味い事になる。
例えば、カウンタとフラグに関係を持たせたりしていると、タイミング次第で誤動作してしまう。
他にもCPU単位にメモリキャッシュがあったりするので、一部の変数の書き換えだけが延々と他のCPUに見えない時もある。
504:デフォルトの名無しさん
06/04/17 17:33:08
津波に@synchronizedとNSLock系の上手な使い方について詳しい解説はございませんかのう
その・・・日本語で・・・
505:デフォルトの名無しさん
06/04/17 18:00:46
>>540
期待値に達しているか判らないが、萩原本にはNSLock関係も載っている。
コラムのvolatile関係を読み飛ばせば問題無いのでは無いかと思う。
506:デフォルトの名無しさん
06/04/17 20:46:35
買っては見たものの、4200円は高杉だろ。
507:デフォルトの名無しさん
06/04/17 21:22:31
なんだ?
リア工房の俺でも買えたぞ
508:デフォルトの名無しさん
06/04/17 21:57:51
プログラム系の書籍で4桁ぐらいでグダグダいってたら全然買えない
素直に諦めろ
509:デフォルトの名無しさん
06/04/17 22:05:04
いや、あの内容で4200円かと思うとつい。
510:デフォルトの名無しさん
06/04/17 22:38:15
パチスロの台の前に30分居たと思えば安いものだ。
511:デフォルトの名無しさん
06/04/17 23:59:04
抜きの1/4と思(ry
512:デフォルトの名無しさん
06/04/18 00:38:33
時間を買うのであれば安いだろ
513:デフォルトの名無しさん
06/04/18 07:02:47
米と比べちゃうよね…
514:デフォルトの名無しさん
06/04/18 08:59:26
萩本は一ヶ月分の米に相当するということでしょうか。
515:デフォルトの名無しさん
06/04/18 19:43:49
米一俵の精神で頑張ってくれたまえ。
516:デフォルトの名無しさん
06/04/24 21:07:27
HMDTのTiger本きたね
517:デフォルトの名無しさん
06/04/25 01:18:54
まだかじった程度だけど、
やっぱC系の言語って基本的に趣味の領域なのかなと。
大規模開発だと「プログラマに任せる」っていう設計思想は
危険すぎるから。
「これで、Objective-Cのオブジェクト型は、原理的に動的型であり、
静的な型は目安にすぎないことが理解できただろう。
言語として型の厳密性を保証することはなく、適切なオブジェクトが
代入させるかどうかの判断は、プログラマやフレームワークにまかされることに
なる。実際にコードを書いてみると、このいわばルーズな文法が、非常に
楽であることに気づく。
しかし、次のような疑問も浮かぶだろう。そんないい加減なコンパイルで、
本当に実行時大丈夫なのか、と。これに対しては、次のように答えることが
できる。正しいオブジェクトが渡るかどうかはプログラマが保証することで
あり、ある程度の経験を積めば、基本的には大丈夫だろう、と。 」
なんてことを自信満々に言っちゃってる『ダイナミックObjective-C』の
作者さんはきっと企業内でコード書いたことないんだろうなあ。
ガベコレも導入するみたいだけど、なぜ Java を捨てたのか?Jobs との因縁か?w
こんなマイナー言語をメインに据える Apple ってソフト自社生産の任天堂路線?
デザイン的に洗練されれば Windows でもいいのに、Vista のスタートボタンを
糞にした MS に未来はないよ。とほほ
518:デフォルトの名無しさん
06/04/25 01:26:51
企業の業務用アプリケーションを構築する際にプロジェクト内に
一定比率で存在するへたれプログラマを相手にしてないんじゃね? > Objective-C の適用領域
519:デフォルトの名無しさん
06/04/25 02:40:51
>>517
Java は捨てていないし、小規模開発が趣味の世界ではない訳だが。
型云々も大事だけれど、個人的にはクロージャを捨てたのが残念。
520:デフォルトの名無しさん
06/04/25 04:32:44
>517
著者は企業プログラマじゃなかったっけ?
521:デフォルトの名無しさん
06/04/25 06:47:31
>>519
>Java は捨てていないし
つ URLリンク(developer.apple.com)
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:デフォルトの名無しさん
06/04/25 06:54:18
>>518
型チェックがあるおかげで、へたれでもとりあえず動くものが作れるってのは
企業にとってプラスなのかマイナスなのか。
523:デフォルトの名無しさん
06/04/25 08:07:35
>>522
「型チェックがあるおかげで、へたれでもとりあえず動くものが作れる」→×
「型チェックがあるおかげで、へたれがコンパイルを通すのに時間がかかり、スケジュールが遅れる」→○
へたれが作ったものはコンパイルできるってだけで、動くって言いきるには無理があるぞ。
Objective-C ってーか動的な型付け言語は、「プログラマ==ユーザ」という環境下で最大のメリットが
出てくるもんだと思う。
524:デフォルトの名無しさん
06/04/25 08:20:11
id嫌い
便利なのは認めるけど、自分をあんまり信じられないから
コンパイル時の型チェックで内部変更の変更必要箇所を探させてたから
チェック方法が1つ減るから。
#Squeak(Smalltalk)も同じ理由で苦手
525:デフォルトの名無しさん
06/04/25 09:29:04
>521
「とりあえず今までどおり使えるけど、Javaはこれ以後サポートしないよ」
っていうのは、Javaを半ば捨てたのと一緒では?
>523
誰かが言ってたんだけど
「どんなプログラマでもJavaでは平均的なプログラマになれる」
「LISPではプログラマは力量にあったプログラムしか書けない」
というのがあった。Javaだったらヘタレを雇っても安心、というのはある。
Obj-Cだったら能力のあるプログラマじゃないと
良いものを書いてもらえなさそう。
そういう意味で >524 には激しく同意。自分は信じられない。
526:デフォルトの名無しさん
06/04/25 09:29:30
Java VM って Java で書いてあるの?
527:デフォルトの名無しさん
06/04/25 10:07:15
静的型チェックの無い言語を嫌悪する事は、プログラマの性格的素質としては良い傾向だと思う。
が、単に経験が足りない。
企業内でJavaを使ってWebベースのシステムを書かされているエンジニアは多い。
しかし良く考えれば、XMLやJSPをJavaのコードと結合するためにリフレクションまみれのフレームワークを使わされている。
そしてある日、「それだったら、全部動的言語で良くね?」と悟る。
実際rubyやphpでシステムを書き出すと、馬鹿らしくてJavaを使う気が失せるし、XMLがインフレを起こしている事に気がつく。
その後にObjective-Cを触ってみると、たぶん作者さんと同じ心境になれる。
>>519
クロージャをCのランタイムに載せたら神だと思うが。
匿名クラスや、匿名メソッドと勘違いしていないか?
528:デフォルトの名無しさん
06/04/25 10:08:09
なんかよく分からんが、企業内ではJava使えばいいじゃん。
WinでもMacでも動くんだから。
適材適所でしょ。
529:デフォルトの名無しさん
06/04/25 12:30:06
>>526
>Java VM って Java で書いてあるの?
確か、C/C++で書かれてあったはず。
530:デフォルトの名無しさん
06/04/25 12:59:50
>>525
Cocoa-Javaはこれ以上新しい機能を追加しないってだけで
Javaを捨てたわけではないと思うけど。
531:デフォルトの名無しさん
06/04/25 13:05:36
>>529
なるほど。
じゃあ、Java 自体が趣味の領域なんだろうね。 >517
532:デフォルトの名無しさん
06/04/25 15:41:20
C/C++はある程度コントロールできる奴ら(少数)向き
チェックの多い言語は書き方がある程度強制されるから多人数向き
533:デフォルトの名無しさん
06/04/25 17:03:05
OS9にもこれ以上新しい機能は追加されないと思うけど
まだ捨てられてないんだっけ?
534:デフォルトの名無しさん
06/04/25 19:03:44
idはたまに、共通の親クラスつくるの面倒な時とか使う
それより面倒なのがプリミティブな型を使うとき
ヘッダーにメソッド書いておかないとコンパイルできなかったり、動作がおかしかったり
NSNumberを使うとタイプ量が多くて面倒臭い
535:デフォルトの名無しさん
06/04/25 19:24:31
発展途上のプリミティブな型がある言語にObjective-Cっぽいところを持ち込んでしまえばいいんじゃ?
536:デフォルトの名無しさん
06/04/25 20:20:51
それがObjective-Cなのではあるまいか
537:デフォルトの名無しさん
06/04/25 20:35:51
つまり、発展途上のプリミティブな型のあるC言語にSmallTalkっぽいところを持ちこんだのがObjective-Cだと言いたいのか?
その通りだな。
538:デフォルトの名無しさん
06/04/25 21:05:36
>>520
既に退職してる。
539:デフォルトの名無しさん
06/04/25 21:12:11
>>531
あほですか?
低レベル(基礎的)な部分でC系の言語を使うのは全く問題ない。
フレームワークもまたしかり。
ただそういったランタイムor実行環境に依存する部分を公開するのは頂けない。
バグや変更があったときに影響が大きすぎる。
だからObjective-Cは頂けない。なんでもできるとか言って喜んでる奴は
やっぱり趣味でコード書いてる奴の言うことだと思う。
構造体化でカプセル化も容易にくずせる言語をObjectiveって...
「オブジェクトっぽいC」もしくは「オブジェクト的な皮を被せただけのC」
ってことなんだね。
540:デフォルトの名無しさん
06/04/25 21:30:28
>>539
うんまあ、最後の段落はまさにその通りなんだけどさ、
キミの使ってるOSって何で書かれてるかな。
多分Cだと思うよ。
それはなんでかな。
ランタイムや実行環境をいじれるからだよね。
ハードウェアに合わせてバリバリチューンも出来るからだよね。
でまあ、キミの価値観だとOSって趣味の領域なのかね。
541:デフォルトの名無しさん
06/04/25 21:32:33
モチロンソウヨ
542:デフォルトの名無しさん
06/04/25 21:55:48
IT土方向きではないな
最終成果物がイメージ(設計)できると動的のほうが効率いい
543:デフォルトの名無しさん
06/04/25 22:49:09
なんか
544:デフォルトの名無しさん
06/04/25 22:53:52
>>540
まあ極端な言い方をすればそうだね。
OSを純粋な「ソフトウェア」かと言えば俺は違うと思うから。
要は一部の「オタク」的な人間がハードウェアに依存した
部分でごちゃごちゃやってる部分はみたくないというか、
ソフトにとっちゃ本来はどうでもいいことじゃない?
これからは少しは変わるかも知れないけど、依然として
iLifeを使いたければMac上でなければならないし、Windowsで
使い勝手のよかったソフトはマック上で同じように動かすこと
ができないなんて、もしくは買い直せなんてユーザーにとったら
やっぱり何それって感じだと思うよ。
所詮はハードのおまけかと。
個人ユースだったらOSがバージョンアップするごとに
ソフトが動かなくなっても「好きで付いてきてるんだろ」的な
態度でもなんとかなるけどw、
企業向けじゃそうはいかないからな。
なぜJavaがこれほど社会的な基盤として、また企業の商売道具として
発展し続けているかといえば、ソフトはソフトだと言えるところに
俺はあると思ってる。だからこそオープンソースという勢力を巻き込んで
そのソフトを使用するのに今までウン万円も支払わなければいけなかったことが
変わりつつあるんじゃないかな。Eclipse しかり、OpenOffice しかり。
Objective-C をかじってみて気がついたのは、Appleは所詮ソフトを
Macのおまけとしかみてないんじゃないかってことなんだよ。
545:デフォルトの名無しさん
06/04/25 23:42:55
マルチプラットフォームがうれしいなら GNUstep でも使ったら?
546:デフォルトの名無しさん
06/04/25 23:50:26
>そしてある日、「それだったら、全部動的言語で良くね?」と悟る。
それは悟りじゃない。単に面倒くさくなっただけ。
動的言語を使用した方が良い局面が増えているのは事実だが、
一事が万事というのはプログラマ的じゃない。
547:デフォルトの名無しさん
06/04/26 06:56:48
プログラマ的発想から言えば、出来るだけ今あるものを使いたいと考える。
Objective-Cだってそういう発想から作られている。
でも今現在、出来るだけ今あるものを使おうとすると、Objective-Cはありえない。
JavaやC++の最大のメリットは型チェックでもクラス指向でもなく、使っている人が多いということ。
それとソフトがハードのおまけと考えてるのはAppleより、SunやIBM。
ハードを第一に考えるから、オープンソースに肩入れできる。
Appleも頑張っちゃいるが、Appleにとってはソフトも大事な売り物である以上、
全てをユーザーに委ねる訳にはいかない。
Xcodeがあれば俺は満足だけどね。
548:デフォルトの名無しさん
06/04/26 11:56:21
>>547
>それとソフトがハードのおまけと考えてるのはAppleより、SunやIBM。
IBM にとってはハードもオマケだろ。サービスで喰ってるんだから。
>ハードを第一に考えるから、オープンソースに肩入れできる。
RedHat みたいな企業の事はどうお考えで?
549:デフォルトの名無しさん
06/04/26 12:35:51
Objective-C の言語仕様や開発環境がどういうつーより
使用者が多いほうがえらい的な話になってるようなんで
別板いったほうがよくねすか?
Java や C++ に開発者がいっぱいいて資産がたくさんあって
うれしいならソレ使えばよろし。ここは「メモリを直接ドライブできるのに
動的結合できるなんて、ハァハァ」ていうひとのスレだと思うし。
550:デフォルトの名無しさん
06/04/26 13:27:32
俺は>>544が別スレなり板に行けばいい話だと思うな。
どうもCが嫌いみたいだから、C叩きスレとかに行けばいいと思う。
551:デフォルトの名無しさん
06/04/26 14:28:12
民主党、共産党と同じでなんでも叩きたいだけでしょ。
その場に応じて主張を変える所なんかもそっくりだし。
枯れ木も山の賑わい。
ほっとけばいいんじゃない?
552:デフォルトの名無しさん
06/04/26 21:19:11
>>547
ではなんで今あって、よっぽど使ってる人が多い言語の Cocoa-Java Interface を
Apple は捨てるんでしょうね?
Microsoft の .NET 戦略をみてもソフト会社だけあってか、ハードから
隔離させようとしてるのに、Apple は何でこんなマイナーで泥くさい言語にこだわるのか。
553:デフォルトの名無しさん
06/04/26 21:42:45
Cocoa-Javaはこれから先が無いにしても、Javaそのものを排除してるわけじゃなし。
まあAppleの戦略について、ここで語ってもしかたないべ。
ところでマイナーなのは間違いないが、Objective-Cは泥くさいか?
エレガントでスマートなコードを書いてる自信はないけどさ。
554:デフォルトの名無しさん
06/04/26 22:02:38
setValue:a forKey:b みたいな書き方、俺は好きだね。
setValueForKey(a,b)なんて泥臭くてw
555:デフォルトの名無しさん
06/04/26 22:09:15
>>552
ハードとは十分「疎」になってるでしょ。OPENSTEP は SPARC でも
動いてたんだから。Apple からしたら、Java の様に OS からも「疎」
にする必要は無いし、Objective-C で問題無いんじゃないの。
C の資産を丸ごと使えるわけだから、ユーザベースが少ない事が問題に
なるケースは少ないだろうし。
556:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/04/26 22:36:46
つうか、PHP 4で大規模開発なんて、おれは関わりたくないな。
558:デフォルトの名無しさん
06/04/26 23:05:32
趣味でObjective-C使ってる自分には、>>554で十分だと思った。
そこは本質ではないんだろうけど。
559:デフォルトの名無しさん
06/04/27 08:37:51
Cocoaフレームワークに静的なJava言語が対応しきれないというのも原因なのかもね。
URLリンク(pcweb.mycom.co.jp)
560:デフォルトの名無しさん
06/04/27 10:47:22
つか、Sunの企業利益のために割く人的資源は無いって事だろ?
561:デフォルトの名無しさん
06/04/27 12:37:41
Cocoa+Javaは、引数が構造体や配列になっているメソッドがシカトされている事が多い。
機械的にバインディングを作れないので、力尽きたのでは無いかと思われ。
あとJavaのGCが動くタイミングで落ちる等の不具合が、とうとう直せなかったような気がする。