Objective-Cat TECH
Objective-C - 暇つぶし2ch321:デフォルトの名無しさん
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が動くタイミングで落ちる等の不具合が、とうとう直せなかったような気がする。

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

563:デフォルトの名無しさん
06/04/27 20:32:38
わかった、Effective Objective-C が欲しいんだな、たぶん

564:デフォルトの名無しさん
06/04/27 20:51:24
>>564
それはすごく欲しい。

565:デフォルトの名無しさん
06/04/27 21:30:40
俺様が執筆してくれるわ

566:デフォルトの名無しさん
06/04/27 22:20:46
ははっ

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

568:デフォルトの名無しさん
06/04/27 23:07:04
OCUnitがXcode2(10.4)から添付されてる。他のもあたるなら
URLリンク(www.cocoadev.com)
あたり。


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

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

571:デフォルトの名無しさん
06/04/28 04:01:47
>568さんありがとっ!

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

激しく同意だなーこりゃ


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



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

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



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

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

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

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

580:デフォルトの名無しさん
06/05/02 10:05:55
PL/SQL自体がOracleの私物だろ

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

582:デフォルトの名無しさん
06/05/02 12:03:14
URLリンク(ja.wikipedia.org)
IBM DB2は SQL PL
MSは Transact-SQL
というところでスレ違い化してきたので、あとはぐぐって。

583:デフォルトの名無しさん
06/05/07 15:27:54
os x 10.4.6 で man gcc すると Leopard で garbage collection が追加されると
書いてあるという話...
うちでは man gcc-4.0 しないとダメだったけど。
URLリンク(theocacao.com)

584:デフォルトの名無しさん
06/05/09 19:12:24
>578
VBも仲間にいれてやってください・・

585:デフォルトの名無しさん
06/05/09 23:35:34
スマンね。Windows 系は殆ど知識無いんだ。

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

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

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

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

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

590:デフォルトの名無しさん
06/05/23 00:12:11
マカーポーシャ

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

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

receiver do: #something for: #me

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

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

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

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

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

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

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

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

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

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

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

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

構文糖だな(--;;

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

598:デフォルトの名無しさん
06/05/29 15:22:12
nil入れ忘れた

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

600:デフォルトの名無しさん
06/05/29 16:10:58
しかしまあ、@

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

【境界を越える: Javaモデルを超える型定義戦略】
URLリンク(www-06.ibm.com)

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

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


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



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

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

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

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

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


606:デフォルトの名無しさん
06/07/02 09:25:41
>>604
>-fobjc-call-cxx-cdtors
URLリンク(developer.apple.com)

607:こぴぺ
06/07/04 17:31:53
Online会員もOKになってるよ。無料。

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


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

609:デフォルトの名無しさん
06/08/08 04:22:52
Objective-C 2.0

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

だってよ。GC ついたらしい。
URLリンク(www.apple.com)

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

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

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

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


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

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

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

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

611:デフォルトの名無しさん
06/08/08 08:20:38
なるほど

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

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

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

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


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

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

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

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


618:デフォルトの名無しさん
06/08/12 09:02:48
まずAppleに頼むのが筋だろう。

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

620:デフォルトの名無しさん
06/08/12 16:39:14
あとはこの辺
URLリンク(www.channelu.com)
とか Sun のこの辺
URLリンク(docs.sun.com)
とか GnuStep の
URLリンク(www.gnustep.org)
とか。


621:デフォルトの名無しさん
06/08/12 21:48:45
>>619
Appleが翻訳した日本語版は
URLリンク(developer.apple.com)
で、その中に
Obj-C
URLリンク(developer.apple.com)
とか
Cocoa基礎ガイド
URLリンク(developer.apple.com)
などあるね。


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

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


624:デフォルトの名無しさん
06/08/13 15:47:52
何の情報も持たず、憶測で断言してる人ってなんなの?

625:デフォルトの名無しさん
06/08/13 15:50:37
>624は
>616のことね。

626:デフォルトの名無しさん
06/08/13 21:05:11
>>616が何を断言したって?

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

628:デフォルトの名無しさん
06/08/14 00:13:16
で、クロージャは付くのか?

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

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

631:デフォルトの名無しさん
06/08/14 09:28:18
>>630
ワラタ

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

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

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

634:613
06/08/14 15:13:33
>616

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

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

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

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

636:デフォルトの名無しさん
06/08/14 19:51:15
Apple runtime って、 opendarwin だったかなんかで
公開されてなかたっけ?
URLリンク(www.opensource.apple.com)

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



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

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

640:デフォルトの名無しさん
06/08/15 04:52:18
カスを下手に誉めるとつけ上がるのでやめとけ。

641:デフォルトの名無しさん
06/08/15 12:33:30
URLリンク(www.cocoadev.com)
腐敗臭がする。

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

643:デフォルトの名無しさん
06/08/15 17:00:00
Namescape

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


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

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

647:デフォルトの名無しさん
06/08/28 11:12:04
OSにつかわれてこそのプログラミング言語

648:デフォルトの名無しさん
06/08/29 04:10:16
OS って Kernel の事を指してる?

649:デフォルトの名無しさん
06/08/29 14:46:03
OSといってんだからOSだろ

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


651:デフォルトの名無しさん
06/08/29 17:57:10
macosx は、objc でかいてあるの?

652:デフォルトの名無しさん
06/08/29 20:59:31
objcがmacosxでかかれているよ

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

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

654:デフォルトの名無しさん
06/08/30 18:40:16
Perl,Pythonって、どのOSにつかってるのか?

655:デフォルトの名無しさん
06/08/30 23:28:12
あ、sh を忘れてた。

656:デフォルトの名無しさん
06/09/03 03:40:41
>>645
YouOSあたりじゃない?

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

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

659:デフォルトの名無しさん
06/09/07 00:30:20
[self age];

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

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

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

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

 receiver message

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

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

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

 receiver foo:arg1 bar:arg2

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

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

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

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

664:デフォルトの名無しさん
06/09/08 11:45:28
Cocoaセミナーのムービーに中級編追加
URLリンク(developer.apple.com)

665:デフォルトの名無しさん
06/09/08 18:07:49
Objective-CでネイティブなWindowsアプリって作れる?

666:デフォルトの名無しさん
06/09/08 21:18:17
作ろうと思えば作れる

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

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

669:デフォルトの名無しさん
06/09/09 11:49:38
>>665
StepStone


670:デフォルトの名無しさん
06/09/10 09:46:15
>>669
StepStone社ってまだあるんか?

671:デフォルトの名無しさん
06/09/11 20:41:25
[self age];

672:デフォルトの名無しさん
06/09/11 20:43:22
さげちまった

673:デフォルトの名無しさん
06/09/15 18:47:44
[self hoshu]

674:デフォルトの名無しさん
06/09/16 09:42:36
[self sex:self]

675:デフォルトの名無しさん
06/09/16 11:08:36
/* おなにーかよ */

676:デフォルトの名無しさん
06/09/19 00:57:05
[self age];

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

678:デフォルトの名無しさん
06/09/19 02:22:40
Objective-C 2.0

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


679:デフォルトの名無しさん
06/09/19 18:26:27
プロパティってどうよ?

680:デフォルトの名無しさん
06/09/19 19:00:50
もうちょい具体的に

681:デフォルトの名無しさん
06/09/19 19:48:48
>>679-680
ワロタ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使えるだろ。

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



690:デフォルトの名無しさん
06/09/20 07:37:50
はいはい。

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

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

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

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

694:デフォルトの名無しさん
06/09/20 12:52:01
LeopardってRoRも載るんだよな

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

696:デフォルトの名無しさん
06/09/21 02:10:50
Javaは型に対して厳し過ぎるからね



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

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

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

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

700:デフォルトの名無しさん
06/09/21 04:31:55
なにも考えていませんが、

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

ということです。

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

702:デフォルトの名無しさん
06/09/21 04:45:07
OBJECT-ORIENTED PROGRAMMING AND THE OBJECTIVE-C LANGUAGE

あるいは
URLリンク(developer.apple.com)
の The Language > How Messaging Works

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

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

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

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

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

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

708:デフォルトの名無しさん
06/09/21 17:23:33
WinのVBAとかCOMに相当するものはOSAだと思うんだが。

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

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

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

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

712:デフォルトの名無しさん
06/09/22 13:31:19
>>790に期待

713:デフォルトの名無しさん
06/09/22 13:42:15
>>710
ここ読むと分かるかも。
URLリンク(journal.mycom.co.jp)

714:デフォルトの名無しさん
06/09/22 13:50:35

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

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

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

717:デフォルトの名無しさん
06/09/24 21:52:07
VB

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

719:デフォルトの名無しさん
06/09/25 03:25:50
↓無料だよ。
URLリンク(www.turboexplorer.com)


720:デフォルトの名無しさん
06/09/25 19:12:06
>>716
GNUstep

www.gnustep.org

721:デフォルトの名無しさん
06/09/25 22:23:36
GNUstepってOSXで使える?

722:デフォルトの名無しさん
06/09/26 06:44:45
もちろん

723:デフォルトの名無しさん
06/09/26 10:49:05
しかしOSXでGNUStep使う意味があるのだろうか…?

724:デフォルトの名無しさん
06/09/26 11:08:22
>>716
WebObjects
.NET Framework

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

726:デフォルトの名無しさん
06/09/26 19:04:08
>>723
古いバージョンのOSXで新しいAPIを使いたいとか。

727:デフォルトの名無しさん
06/09/27 09:52:43
>>726
そんなに新しいAPI実装されてるの?

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

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

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

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

729:728
06/09/27 15:41:02
書き忘れましたが、

OSX 10.4.7
G4
Xcode 2.4

の環境です。

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

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

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

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


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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch