Objective-C
..
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
情報ありがd。
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
違う。参照も保証されない。
お前もメモリバリアを勉強し直せ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4854日前に更新/229 KB
担当:undef