Objective-Cat TECH
Objective-C - 暇つぶし2ch577:デフォルトの名無しさん
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ずつ増えてく。
これって仕様なの??それとも他の理由が??
気にしなくていいということですかね?
もし本当にリークしてるなら、ウィンドウをアクティブにするのは
極力控えた方がいいってことなのかな~(^^;)

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

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

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

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

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

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

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

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

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

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

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

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

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

741:デフォルトの名無しさん
06/09/29 21:20:21
>>740
そもそもretainできない件

742:デフォルトの名無しさん
06/09/29 21:31:30
-dealloc の中で「dealloc されました」って通知すればいいんでないの

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


744:デフォルトの名無しさん
06/10/03 22:26:27
Java出身ですが、objcに興味津々
てかcocoaとかのライブラリーに興味あり

今とりあえずCを勉強中。preprocessorってコード読みにくい。。。

で、Cをひとまず覚えたらobjcの本とかPDFとか何を読むのがおすすめですか?
英語でかまいません。むしろ英語がよい。

745:デフォルトの名無しさん
06/10/03 22:45:17
Apple のサイトに一杯あります。
あと、Cをそんなに勉強する必要はないと思う。
URLリンク(developer.apple.com)
から好きなだけ読め。
言語自体は
URLリンク(developer.apple.com)
それをさっと眺めたら
URLリンク(developer.apple.com)
で実際にappをかいてみて、そのあと
URLリンク(developer.apple.com)
で基本を学ぶのがいいと思う

746:デフォルトの名無しさん
06/10/03 22:54:10
>>744
自作のCでやるクラス・ライブラリーは完成したんですか?

747:デフォルトの名無しさん
06/10/04 01:17:36
>>746
すいません。よくわかりません。

>>745
サンクスです。本とかよりappleのpdfで十分ってことですね。

とりあえずcは基礎だけは勉強しておこうと思ってます。
structすらまだ学んでないので。。。

748:744
06/10/04 01:31:01
cocoaのこの辺りがいけてるとか、充実してるとかってありますか?
CやJavaに比べて

ぱっとみCoreAudio, CoreImageは凄そうと思いました

749:デフォルトの名無しさん
06/10/04 02:39:43
Cocoaっつーか、IBが面白い。

750:デフォルトの名無しさん
06/10/04 09:28:13
Objective-C のいいところは、C++/Java とちがって
非常にダイナミックなところでしょう。
binding 多用しだすともう殆どスクリプト言語状態だと思います。


751:745
06/10/04 09:30:31
>サンクスです。本とかよりappleのpdfで十分ってことですね。
充分かどうかは... 本もいいのがいろいろあるよ。
ヒレガスとか。
URLリンク(www.cocoadev.com)
に書評があるのでみてみてね。

752:デフォルトの名無しさん
06/10/04 20:57:38
>>751
ひれがす?

753:デフォルトの名無しさん
06/10/05 06:36:37
>>744はCocoaとObjective-Cを混同している予感

754:デフォルトの名無しさん
06/10/05 08:20:41
混同してるようには見えんが

755:744
06/10/05 12:38:03
>>753
Cocoaはobjcのライブラリーでしょ?

>>751
ありがとうございます。参考にします。

756:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/10/06 06:37:45
Obj-C自体実質MacOS X専用言語だからなー


757:デフォルトの名無しさん
06/10/06 11:40:45
はつみみです

758:デフォルトの名無しさん
06/10/06 14:38:05
はなしし?

759:デフォルトの名無しさん
06/10/06 15:35:07
Mr.ダンゴリオン・・・あなたは一体何者なんですか?

760:デフォルトの名無しさん
06/10/06 15:37:17
お団子ちゃんの退化系

761:デフォルトの名無しさん
06/10/06 15:46:14
ウソップとそげキングみたいなものでつか?

762:デフォルトの名無しさん
06/10/07 00:37:38
ってか Mac 以外の環境で Objective-C 触ってる物好きなヤツっているの??


763:デフォルトの名無しさん
06/10/07 00:39:14
いまだにOpenStep使ってる椰子とか

764:デフォルトの名無しさん
06/10/07 01:16:13
白豚さんとか

765:デフォルトの名無しさん
06/10/07 01:52:05
GNUstepではだめ?Windows環境で学びたいんだが...
つーわけで、とりあえずcygwinでApacheモジュール作ってみた

766:デフォルトの名無しさん
06/10/09 10:18:53
Objective-Cのソースコード整形ツールってあるん?
人から渡されたコード読んでるけど汚くってかなわん。
両刀使いだからWinでもMac用でもかまへん。

767:デフォルトの名無しさん
06/10/09 13:11:40
ObjC 2.0でますますCocoa専用言語な印象が強まったんですが。

768:デフォルトの名無しさん
06/10/09 21:41:54
GNUstepの中の人たちが頑張ってくれるだろう。
もしくは中の人になれ。

769:デフォルトの名無しさん
06/10/10 01:00:55
>>766
汚いソースの例が見たい

770:デフォルトの名無しさん
06/10/10 01:53:17
WinとMacで両刀使いか
ならばMonaも使ってると三所責めだな

771:デフォルトの名無しさん
06/10/14 20:42:55
ObjCをコンパイルできる無料のコンパイラってgcc以外にある?

772:デフォルトの名無しさん
06/10/15 00:09:03
POC 使えば、原理的にはどんな C Compiler でもコンパイル出来るはず。

URLリンク(users.pandora.be)

773:デフォルトの名無しさん
06/10/15 13:31:16
>>772
ちょっくら読んでみたけど、これってObjc -> Cに変換するプリプロセッサ?

774:デフォルトの名無しさん
06/10/15 14:08:58
うn、中々面白いよ、でも癖があったりするからちょっと困る

775:デフォルトの名無しさん
06/10/16 22:38:16
macでプログラミングをしてみたいのです
mac関連のプログラミング本はほとんどObjCで書かれていますが
この板ではObjCはあまり人気がないように見えます。
みなさんはぶっちゃけどの言語をお勧めしますか

776:デフォルトの名無しさん
06/10/16 22:44:33
ぶっちゃけObj-C

777:デフォルトの名無しさん
06/10/16 23:21:46
ObjCスレで聞いてObjC以外の答えが返ってくると思うのかい?

778:デフォルトの名無しさん
06/10/17 00:30:34
Obj-C最高!

とまで言わないがかなりイイ!

779:デフォルトの名無しさん
06/10/17 06:51:47
Macでのプログラミングの話題は新Mac板の方が活発。

780:デフォルトの名無しさん
06/10/17 10:12:35
>>777
このスレできいて、違う言語があがればそれこそObjCを見限ろうと
思ってました

781:デフォルトの名無しさん
06/10/17 10:40:03
う~ん、言語の善し悪しというよりはライブラリの善し悪し、そのライブラリを使うためのObjC、かなぁ?
Cは好きだけどCarbon onlyで書こうとは思わんし、Cocoa-javaも付け焼き刃の印象しかない
WebObjectsみたいに気合いが入ってなさそうだし>>Cocoa-Java

782:デフォルトの名無しさん
06/10/17 11:41:21
見限るとか見限らないとか、そんな大層な問題じゃないような…
気になったら遊んでみればいいし、飽きたら忘れれば良い

783:デフォルトの名無しさん
06/10/17 13:23:53
というか ObjC は C とオブジェクト指向を知ってたら文法は屁でもない。
C++ 知ってたらとりあえず一日でだいたい使えるようになる。

Cocoa の API をつかむのは案外時間いるかもだけれども。

784:デフォルトの名無しさん
06/10/17 13:38:36
ObjC→C++はどうでつか?

785:デフォルトの名無しさん
06/10/17 14:40:34
C++ はとんでもない機能が沢山あるので、そこまでやりたければじかんがかかるでせう

786:デフォルトの名無しさん
06/10/17 15:06:24
>>781
WebObjectsも気合いは入ってない

787:デフォルトの名無しさん
06/10/17 15:53:38
ていうか Cocoa-Java はとうとう deprecate された

788:デフォルトの名無しさん
06/10/17 17:31:08
もうだめぽ

789:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/10/17 18:31:34
Cocoa-Ruby
まじでおすすめ

790:-○◎○
06/10/17 19:01:04
この道を行けばどうなるものか、危ぶむなかれ。
危ぶめば道はなし。踏み出せばその一足が道となる。
迷わず行けよ。行けばわかる

ありがとう、ダンゴリオンさん
Cocoa-Ruby でいってみます

791:デフォルトの名無しさん
06/10/17 22:33:56
ちなみに RubyCocoa だと思ふ...

あと、RubyCocoa は Objective-C+Cocoa をやってから
やっぱスクリプトがいいや~、と移行するものであって
それではじめるものではないと思うけどどうでせう。

Obj-C 有る程度わかってないと Cocoa のドキュメント読めないでそ。

792:デフォルトの名無しさん
06/10/22 13:58:29
Smalltalk、Objective-C、Ruby
メッセージ指向なオブジェクト指向言語の方がCocoa向きだよね

793:デフォルトの名無しさん
06/10/22 15:02:51
>>792
>メッセージ指向
なんだそれ?


794:デフォルトの名無しさん
06/10/22 15:06:33
>>>792
Ruby は違うでしょ。単に動的なだけ。

795:デフォルトの名無しさん
06/10/22 20:38:38
>>793
アラン・ケイのオブジェクト指向。メッセージングという考え方を表現や問題解決の中心に据える。
対して、C++、Eifflel、Java などが立脚しているのは「クラス指向」なビアルネ・ストラウストラップの
オブジェクト指向。抽象データ型を(Simulaの)クラスという機能を用いて実現するという考え方。

>>792,794
Ruby のポリシーは、「いろんな言語のいいとこどり」なので、オブジェクト指向についても
どっちつかず。

796:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/10/22 20:43:12
メッセージ指向っていえばWin32のウィンドウクラスの考え方がそうだ
汚いが。

797:デフォルトの名無しさん
06/10/23 03:35:31
caseの化け物のことか

798:デフォルトの名無しさん
06/10/23 07:08:43
>>795
解説アリガ�ォ。
結局動的か静的かになるんだろうけど、どちらもオブジェクト指向つーのは分かりづらいな。
オブジェクト指向メッセージ指向?
オブジェクト指向クラス指向?

指向指向うるさいなw


799:デフォルトの名無しさん
06/10/23 09:51:02
メッセージ指向とクラス指向って排他なの?
あとクラス指向って本当にStroustrupがベースなの?

800:デフォルトの名無しさん
06/10/23 21:03:11
>>798
ケイのオブジェクト指向、ストラウストラップのオブジェクト指向でおk

動的か静的か…のくくりだと語弊があるかも。
ケイは静的型チェックを否定しているわけじゃなく、ストレスなしに使える
静的型チェック機構の存在を知らない…と言っているだけだし。

>>799
排他ではない。けれど、前提となるもの、視点が違うから適所でうまく切り替えるべき。
たとえば、ストラウストラップの…は抽象データ型に軸足をおいているから、
クラスやオブジェクトの中身の設計や見せ方に重きを置くけれど、ケイの…は
そういうことには頓着しない、とか。
別の例では、ストラウストラップの…は基本データ型との混在を許すが、ケイの…では論外、とか。

抽象データ型を SIMULA のクラスを使って…というアイデアは、ストラウストラップが
C++ の前身である C with Classes で試したのが最初。メイヤーは、C++ にあれこれ
いちゃもんを付けたり、ストラウストラップの主張を黙殺したりするけど、言っていることは
ほぼ、ストラウストラップ+α(契約によるプログラミング)の類で、新機軸を打ち出しているわけではない。

まあ、ストラウストラップ自身は「クラス指向」という言葉を使っているわけではないので、
(彼は、「抽象データ型のスーパーセット」、「継承によるプログラミング」と称している)
799が疑問を呈しているその「クラス指向」がなにかにもよるけれど…。いずれにせよ、
よく言われる「カプセル化・継承・多態性」とかのオブジェクト指向は、ストラウストラップので、
ケイのじゃない。

801:デフォルトの名無しさん
06/10/24 01:24:11
>>800
ん、そうだっけ?
Smalltalk78の時点で継承という概念は導入されているし、メッセージを飛ばすSmalltalkはそもそも多態性だろう。
カプセル化については、オブジェクトを作るという行為そのものがカプセル化ではないのか。


802:デフォルトの名無しさん
06/10/24 01:49:39
カプセル化はアクセス制御出来ないとダメなんじゃないの。

クラス指向とオブジェクト指向は、何を本質とするかであって、
単にマッピング出来るかどうかの問題じゃないんじゃないかな。

803:デフォルトの名無しさん
06/10/24 02:03:45
>>801
いや。それは Smalltalk がその三点を満たしているかと問われれば、たしかにそうなるけど…。

でも実際のところ、ケイは彼のオブジェクト指向において、そういうことは言っていないし、目指してもいない。
本気でそう(「カプセル化、継承、多態性」がケイのオブジェクト指向においても要件である…)
と信じているなら、下のにひとおとり目をとおしてから出直してきてくれると助かる。

URLリンク(www.purl.org)
URLリンク(lists.squeakfoundation.org)
URLリンク(gagne.homedns.org)

もちろん、こうしたケイの意向があったとしても、Smalltalk ユーザーがそれを無視して、
ストラウストラップのオブジェクト指向を(部分的ながらも) Smalltalk を用いて実践したいと思ったとしても、
それを妨げるものは何もないわけだけれども…。

たとえば、この人なんか Smalltalker として有名だけど、典型的なストラウストラップの
オブジェクト指向実践者(の、わりに C++ には批判的なのが笑える)。

URLリンク(www.sra.co.jp)

804:デフォルトの名無しさん
06/10/24 02:20:10
>>802
ダメってことはない。なぜなら、カプセル化、継承、多態性というのは、Smalltalk にも
当てはまるようにデフォルメされているから。Smalltalker はケイをないがしろにした上に、
ストラウストラップの考えも都合よく骨抜きにしてしまった。じつに傲慢な奴らだ。w 

ただ、802 のいうことは当たらずとも遠からずで、ストラウストラップが要件としてあげた
ものは、抽象データ型、継承、仮想関数を用いた動的性…に加えて、静的型チェック、
多重継承、アクセス制御…なので、これにはちゃんと含まれている。

URLリンク(portal.acm.org)
URLリンク(www.research.att.com) (上の '90 改訂版。内容はほぼ同じ)

だから、真にストラウストラップのオブジェクト指向を実践するには、ほんとうは、
Smalltalk ではダメ(だからデフォルメして対応せざるをえなかったわけだけれども…)。

805:デフォルトの名無しさん
06/10/24 13:45:01
Smalltalkの多態は継承ツリーがどうこうという話ではなく、
呼ぶメソッドを実装されてるか、という1点にかかっているあたりクラス指向
というよりメッセージ指向な感じがするわけだけど、

Simula の末裔の C++ が template で似たようなスタイルを実現している(しかも
それが標準ライブラリとして広く使われている)あたりとか面白いですよね。


806:デフォルトの名無しさん
06/10/25 22:27:12
gccがこんなエラー吐いてくれるぜwwww

In file included from linking.m:28:
objc/Object.h:38: error: 構文解析エラー before '{' token
objc/Object.h:43: fatal error: method definition not in class context

807:デフォルトの名無しさん
06/10/25 22:42:49
ただ単にObject.hが壊れてるだけじゃね?

808:デフォルトの名無しさん
06/10/30 20:28:49
URLリンク(developer.apple.com)
の32ページに、

Objective Cでは、インスタンス変数にデフォルトで@protectedというラベルが付きます。GCC 4.0
では、これを明示的に警告するようになりました。また、将来のコンパイラではこれをエラーとし
て取り扱います。この問題を修正するには、Objective-Cインターフェイスでインスタンス変数のス
コープを明示的に指定してください。

ってあるんだけど、これってインスタンス変数を定義する時に今までは省略していた@protectedを書かなければいけなくなるってこと?

809:デフォルトの名無しさん
06/10/30 22:55:46
デフォルトで~っていうのは、書かなくても @protected 扱いになるということだと思われ
エラー/警告が出るのは、他の class からインスタンス変数を @public として操作した場合の話じゃないかな

810:デフォルトの名無しさん
06/10/30 23:03:19
220度くらいズレてる気がする

811:デフォルトの名無しさん
06/10/30 23:09:34
適当な事を行ってすいませんでした m(__)m

812:デフォルトの名無しさん
06/10/30 23:41:11
>>808
いつの間にか翻訳、英語版に追いついてるな。
ObjC 2.0でまた置いて行かれそうだが。

813:デフォルトの名無しさん
06/11/05 02:24:57
インスタンスメソッドから、インスタンス変数と同名のグローバル変数へアクセスすることはできないのでしょうか?
早い話、

グローバル変数
const int foo = 100;

- (id)init {
[super init];
self->foo = foo;
return self;
}

上記のような感じでグローバル変数でインスタンス変数を初期化したいのです。
何か良い方法は無い物でしょうか?

814:デフォルトの名無しさん
06/11/05 02:40:51
そのことやるくらいなら、マクロで初期値設定した方がいい

815:デフォルトの名無しさん
06/11/05 02:49:14
すみません、正確には変数じゃなくて配列なんです。
元々はC++のソースで、namespaceで対応されている部分なのですが……。
やはり同名のグローバル変数にはアクセス出来ないのでしょうか?

816:デフォルトの名無しさん
06/11/05 04:25:59
static int global_foo() { return foo; }

817:デフォルトの名無しさん
06/11/05 04:30:18
Objective-C++ にして、普通にnamespace::varじゃいかんの?
手元で確かめずに言ってすまんけど。

818:デフォルトの名無しさん
06/11/05 20:16:00
>>817
なるほど、Objective-C++という逃げ道がありましたね……。
何の問題も無くクリア出来ました。ありがとうございました。

819:デフォルトの名無しさん
06/11/06 09:26:41
>>813
Objective-C++ じゃない場合でも以下でいけるんじゃね?
const int foo = 100;
static int getFoo(){ return foo; }
- init{
 self->attr = getFoo();
 return self;
}

820:デフォルトの名無しさん
06/11/06 12:48:51
こんなのがあったべ。
URLリンク(www.informit.com)
GCC のテストスートにObjC2.0のサンプルコードがあるらしい
URLリンク(gcc.gnu.org)

821:デフォルトの名無しさん
06/11/07 17:06:10
がー。
Windowsで使えるObjCコンパイラってないの?Cygwin+gccは面倒い。

822:デフォルトの名無しさん
06/11/07 20:38:03
つMinGW

823:デフォルトの名無しさん
06/11/15 14:48:56
>820
クロージャが無いって明言されてるorz

824:デフォルトの名無しさん
06/11/15 19:08:38
ObjCって今でもプリプロセス段階でCに変換されてるの?

825:デフォルトの名無しさん
06/11/15 21:46:05
してないでしょ、多分>>プリプロセスでC変換
もししてたらインテルのコンパイラも使えるの?

826:デフォルトの名無しさん
06/11/15 21:56:07
GCCとかではCに変換したりせずにそのままコンパイルしてるはずだけど、
Cに変換するプリプロセッサも出回ってるからそれ使えばIntelのC/C++ Compilerも使えるかと。

827:デフォルトの名無しさん
06/11/15 22:05:50
クロージャー無いのか、残念だ

Smalltalkでdo:メソッド見たときは感動したんだよな

828:デフォルトの名無しさん
06/11/15 22:19:07
ifTrue:メソッドとかやりすぎw>>SmallTalk

829:デフォルトの名無しさん
06/11/15 22:33:37
確かにw
でも至るところにデザインパターンを見ることができて面白いよね
Booleanクラスに何もしないifTrue:とifFalse:を定義して
TrueクラスのifTrue:がクロージャーを評価し、
FalseクラスのifFalse:がクロージャーを評価する


ここまでObjective-Cに求めるつもりはないけど
クロージャーを導入するとどうしてもよりSmalltalk化しちゃいそうだね

830:デフォルトの名無しさん
06/11/15 23:39:48
>>828
アラン・ケイもそんなふうに言っているよね。彼の手を離れてからずいぶんとLISP化しちゃったから。

831:デフォルトの名無しさん
06/11/15 23:44:56
ケイは message passing style の発案以外で Smalltalk に対して何かしたんだっけ?

クロージャは今回入らなかっただけで、いずれ入ると思うよ。

832:デフォルトの名無しさん
06/11/16 00:22:53
>>829
茶々入れでスミマセン。

厳密には Boolean に定義されている #ifTrue: と #ifFalse: はあくまで仮想メソッド、
つまり、サブクラスで再定義されることが期待されるメソッド…という位置づけになっていて
(C++ のオブジェクト指向の影響)、引数ブロックを無視する #ifTrue: や #ifFalse: は
False、True クラスにそれぞれ普通に再定義されています。現実は、あまりおもしろみがないですね。

もっと夢のない話をすると、メッセージ ifTrue: [] や ifFalse: [] はコンパイル時にはインライン展開されて
しまうので、実際にはメソッドとしての #ifTrue: や #ifFalse: がコールされることはなかったりもします。
(なので、#ifTrue: や #ifFalse: の定義を書き換えるイタズラをしても、実際には何も起こせません)。

833:デフォルトの名無しさん
06/11/26 18:12:51
ja.wikibooks.orgにはObjective-Cの記事がないのな。

834:デフォルトの名無しさん
06/11/26 21:16:51
抽象クラスとプロトコルってどう使い分ければいいの?

835:デフォルトの名無しさん
06/11/27 01:12:06
抽象クラス(Objective-Cに抽象クラスという仕様はないから、単なるクラスだが)は継承しないと使えない。特定の実装を強制させるなら抽象クラス。
実装は各クラスで好き勝手にしていいか、すでに他のクラスを継承していて抽象クラスを使えない場合はプロトコル。利便性を考えて、プロトコルの参考実装として抽象クラスを用意することもある。

使い分けようとしなくても、実装を何度も見直すうちに自然と使い分けられるようになると思うよ。

836:デフォルトの名無しさん
06/12/03 00:19:53
gdbでObjCのメソッド名指定でブレイクはることは、できないのでしょうか?
ライン指定は出来ます。
gcc 4.0.1-Apple
gdb 6.3.5-Apple




837:デフォルトの名無しさん
06/12/03 07:06:16
URLリンク(developer.apple.com)

> Objective-C method: b -[Foo bar], or for an action method example, b -[Foo bar:]

838:デフォルトの名無しさん
06/12/04 22:16:51
返事できなくてすみません。
メッセージ呼び出しとおなじ書式なんですね。
失礼しました。


839:デフォルトの名無しさん
06/12/31 01:55:01
書き始める前に何重のネストになってるか明確でないとダメなのがイマイチな気がする。
見た目だけでも、メジャーな言語風だったら、かなり敷居が下がると思うんだけど。
この書き方のメリットって、何かあるの?。

840:デフォルトの名無しさん
06/12/31 11:43:19
まあ、Objective-C が出来た頃はどのオブジェクト指向言語もメジャーじゃなかったので、ね...
そんなに見た目って敷居になるのかな?Cocoa と他のクラスライブラリの違いのほうが余程問題だと思うけど...
たとえば Cocoa Java があったけど、だからといってそんなに書きやすかったかというと疑問。
[[[ の数がはじめに判らないのが面倒なのは同意。メリットは、つねに引数に名前が書いてあるので、あとで読んだときになにをやっているかが分かりやすい、かな。

841:デフォルトの名無しさん
06/12/31 17:33:20
Smalltalkという超メジャーなオブジェクト指向言語風の書き方じゃないか。

842:デフォルトの名無しさん
06/12/31 18:25:56
Smalltalk は [ ] はなかったんじゃなかったっけ?
というか、[ ] はあったけどそれはクロージャだったので、用途が違ったんでは...

843:デフォルトの名無しさん
06/12/31 23:52:38
Objective-Cってリフレクション以上に動的な事できるよな?

844:デフォルトの名無しさん
07/01/01 00:04:54
ポージング (Posing) とかできますよ
URLリンク(journal.mycom.co.jp)
メソッドスウィズリング (Method Swizzling) とかも。
URLリンク(www.cocoadev.com)
まあランタイムのAPI呼べば何でも出来ます。

845:デフォルトの名無しさん
07/01/01 00:18:35
>>844
ありがとうございます。ランタイムの弄りかたさえわかれば何でも出来るのか。

846:デフォルトの名無しさん
07/01/02 01:57:16
>>842
[ ] はなかったけど、
  receiver selector:arg
って形は同じでしょ。

847:デフォルトの名無しさん
07/01/02 06:22:38
見かけだけはね

848:デフォルトの名無しさん
07/01/02 08:22:31
見かけは重要だ。つか、内部的にも一緒なんじゃないの。
動的言語のメソッド呼び出し方法なんて一種類しか無いような。

849:デフォルトの名無しさん
07/01/03 22:45:09
emacかXcodeつかって仰山のソースコードのインデントを一括で行う方法ってありませんか?
いっこいっこ開いてメニュー選ぶのかったるいです。

850:デフォルトの名無しさん
07/01/03 23:23:38
emacsならelisp書けばよか

851:デフォルトの名無しさん
07/01/03 23:37:09
>>850
emacs elisp インデント
などとGoogleで検索してみましたがよくわかりませんでした。
当方少しのコマンドラインなら打てます。例えば
find . -name *.m -exec emacs -batch -indent {} ¥;
などといった簡単なやり方ではなくて、何か特殊な方法なんでしょうか?

852:デフォルトの名無しさん
07/01/04 02:00:27
スレ違いだボケ

853:デフォルトの名無しさん
07/01/04 05:56:55
emacs インデント
でぐぐればいいんじゃないかな。
URLリンク(www.bookshelf.jp)
もちろんObjective-Cモードにしてね。

854:デフォルトの名無しさん
07/01/04 11:44:55
>>853
ありがとうございます。
それみても私の理解不足で、エディタ内で行う編集作業のコマンド集にしか見えないです。

>>852
ごめんなさい。
すれ違いとのことで以降はemacsスレッドを探してそこで聞いてきます。


855:デフォルトの名無しさん
07/01/04 22:07:54
Objective-C に対応したソースコード整形ツールって無いのか。


856:デフォルトの名無しさん
07/01/04 22:11:43
>>855
NeXT Step には独自改良版の GNU Indent が対応していたそうですがそれ以外だと単体の整形ツールは存在しません。
現状私の知る範囲ですとXcode、emacsなどの「エディタ」のソース整形機能を引っ張ってくるほかないです。

857:デフォルトの名無しさん
07/01/04 23:15:25
>>856
NeXTが独自改良したならばソースがどっかにころがってんじゃねーの?
GNUって逝ってんだから。

ぐぐっても出てこなかったけど(w


858:デフォルトの名無しさん
07/01/04 23:56:07
だれかこれを改造してObjective-Cでも使えるようにしてくれ
動的な言語だと難しいかもしれんが
URLリンク(www.tamacom.com)

859:デフォルトの名無しさん
07/01/08 14:16:12
MacPortsで試しにGNUStepを入れてみたけど、これってなんとなく手作り感が
出てて良いね。
でも、ProjectCenterの*.gormをクリックしても、Gormの起動に失敗してしまう。
何か設定とかあるのかな。


860:デフォルトの名無しさん
07/01/13 00:09:59
>>859 です。
*/System/Applicationsにパスを通してできました。

一応簡単なサンプルを作ってみたんだけど、
あまり期待してなかったのもあったから、使ってみてxcodeとほとんど同じような感じで使えて
予想以上に便利なんでびっくりした。
これってLinux等のGUIアプリの作成でもうちょっと普及してもよさそうだけどな。

861:デフォルトの名無しさん
07/01/25 12:35:54
xcodeってjavaはどの程度サポートしてるの?

862:デフォルトの名無しさん
07/01/25 17:58:12
Xcode part4
スレリンク(mac板)

863:デフォルトの名無しさん
07/01/25 18:23:40
thx

864:本田
07/01/25 19:47:35
>ディベロッパー:Windows環境下でMacのAPIによるコーディングを可能にするCocotron
URLリンク(opentechpress.jp)

>COCOTRON
URLリンク(www.cocotron.org)

865:デフォルトの名無しさん
07/01/25 21:04:50
Cocoaスレでとうの昔にガイシュツ

866:デフォルトの名無しさん
07/02/22 20:50:41
oneway voidって別に
メソッドを別スレッドで実行するわけではないよね?

867:デフォルトの名無しさん
07/02/23 08:29:29
使ったことないけど、そういうことじゃないんじゃない?
リモート側の応答を待たないだけということじゃないかな。
実は別スレッドで受信待ちして、デリゲートで通知とかあるのかもしれないけど。




868:デフォルトの名無しさん
07/02/23 14:35:39
そういうことじゃないんじゃないんじゃないかな?

869:デフォルトの名無しさん
07/02/23 16:25:24
分散オブジェクトのときのみ使用されます。
NSConnection 使わなければまったく意味はないです。

870:デフォルトの名無しさん
07/02/24 15:28:13
Apple Inc.、Objective-Cの商標登録出願
URLリンク(www.appleinsider.com)

これまた問題にならないかね。

871:デフォルトの名無しさん
07/02/24 20:04:22
なんでそういうわけ解らんことするんだろうねアップルは

872:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
07/02/24 21:41:36
DRM反対を唱える一方で自らも版権ゴロか

873:デフォルトの名無しさん
07/02/24 22:15:01
糞ダンゴは去ね。

874:デフォルトの名無しさん
07/02/26 02:04:30
わざわざ商標なんて取らなくたって、
誰もObj-Cなんて名前の製品出さないってば。

875:デフォルトの名無しさん
07/02/26 11:13:24
実質的にまともに商用利用してるのAppleだけだしね
まぁコンパイラはgccだし将来的に使うやつが万に一つくらいで
出てくるかもしれないとかで取ってるのかねぇ…

876:デフォルトの名無しさん
07/02/26 12:49:51
1995年に、開発元のStepstone社から、NeXT社が言語と商標を買い取ってる。
Appleが商標を取得しなおす理由はよく判らない。
URLリンク(ja.wikipedia.org)

877:デフォルトの名無しさん
07/03/01 15:45:11
>>876
URLリンク(www.apple.com)
"Objective-C"は登録されていない商標。

878:デフォルトの名無しさん
07/03/02 01:21:47
でも、例えばボーランドがObj-Cコンパイラを作ったら、
"Borland Objective-C (TM) Compiler"
みたいな名称になるんでしょ。

879:デフォルトの名無しさん
07/03/02 02:03:45
「Redmond, start your photocopies.」
なーんて言ってたら、マジでVistaでCore Audioをまんまパクられたから
焦って商標を取得したとか?


880:デフォルトの名無しさん
07/03/02 15:07:39
そもそも言語名って商標として登録できんの?
よくわからんのだけど、SunがJavaの商標を持ってたりMSがC#の商標持ってたりするの?

881:デフォルトの名無しさん
07/03/02 16:42:13
いや、そりゃ持ってるだろ。MSは知らんけど昔のSunはJavaをかなり厳格に管理してた。

882:デフォルトの名無しさん
07/03/28 18:37:41
Objective-CでWin32アプリ書こうかと思ったんだけど、
そもそもWindowsで使えるObjective-Cの処理系ってある?

883:デフォルトの名無しさん
07/03/28 18:51:42
GNUstep

884:デフォルトの名無しさん
07/03/28 21:17:48
Objcの処理系って意味なら gcc でOK。
# ってか他にまともに動く処理系ってある?

885:デフォルトの名無しさん
07/03/28 21:19:16
MinGWのObjective-CでWin32API使って書いたほうが
今のところは実用的だと思うけど

886:・∀・)っ-○◎●
07/03/29 01:28:09
Cで十分ってことじゃんそれ
Win32のメッセージAPIまわりがObj-Cのメッセージに綺麗にラップされてるならまだわかるが

887:デフォルトの名無しさん
07/03/29 02:48:14
>>886
まぁまったくその通りだと思うのだが>>882がラッパを書いてくれればOK

888:デフォルトの名無しさん
07/04/02 21:18:45
文字列オブジェクト定数に使われるクラスに自作のクラスを使えない?
コンパイラオプションにあるあらかじめ用意されたクラスしか使えないの?

889:デフォルトの名無しさん
07/04/03 02:18:05
>>888
URLリンク(www.mhatt.aps.anl.gov)
こういう話?

890:デフォルトの名無しさん
07/04/05 20:17:50
>>889
それそれ!
どうもありがとうございます!

891:デフォルトの名無しさん
07/04/13 12:39:32
Cocoaプログラミングの無料セミナー開催
今月4月にCocoaプログラミングの無料セミナーの初級・中級・上級を東京初台
のアップルセミナールームで開催し ます。次期OS Leopardには、Objective-Cの
APIのみで提供される新機能がたくさ んあります。今後、Cocoaの習得はMac OS
ソフトの開発に必須となります。是非 この機会をご活用下さい。講師はHMDTの
木下誠さんです。
URLリンク(developer.apple.com)


892:デフォルトの名無しさん
07/04/22 20:16:44
今更の質問かもしれないですが、NSURLConnectionで2chデータの差分を取得しようとした時に416エラーが返ってくるのをどう解釈して良いのか分からず困っております。
NSURLRequest内容:
{
Accept = "text/plain";
"Accept-Encoding" = "gzip, deflate";
"Accept-Language" = ja;
"Cache-Control" = "no-cache";
Connection = close;
Host = "news21.2ch.net";
Pragma = "no-cache";
Range = "bytes=6198-";
Referer = "URLリンク(news21.2ch.net)
"User-Agent" = "Monazilla/1.00 (Jane/0.01)";
}

NSURL内容:URLリンク(news21.2ch.net)

他方、cURLで取得しようとするときちんと差分が取得できます。
curl -H 'Range: bytes=6198-' -v -A 'Monazilla/1.00 (Jane/0.01)' -H 'Accept: text/plain' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Connection: keep-alive' URLリンク(news21.2ch.net)

893:デフォルトの名無しさん
07/04/23 08:06:01
NSURLConnectionではヘッダー部分の、特にHTTP/1.1とかのパラメーターが触れないので、
この辺が原因なのでしょうかね、ほかに何かおかしな事をやってるのでしょうか、
NSURLConnectionのバグ?

894:デフォルトの名無しさん
07/04/23 16:50:01
NSURLRequest の内容と
curl に渡している物が違うのはわざとですか?

ステータスコード 416 の意味は何かご存知ですか?

Accept-Encoding : gzip の場合は何が起こりますか?


NSURLConnectionのバグだと思うのでしたらバグレポート出せばよいと思いますよ。

895:デフォルトの名無しさん
07/04/23 20:05:10
416は範囲がそれているという意味でしょ、んでConnection = closeでもConnection = keep-aliveでも
ストリームで受け取る場合に挙動はかわらないっぽいです。
curlでAccept-Encoding : gzipを付けなかったのは-vで出されるヘッダフィールドはzipがかからないと考え、
gzip に渡して解読できないかもと思ったからで、416の本筋ではないです。

ヘッダを全くそろえても、NSURLConnection側のみ416エラーが出てます。
ただし、Range設定しない場合はきちんとダウンロードできます…。

今はとりあえずCore Foundationで直読みできるかどうか試してるところです。

896:デフォルトの名無しさん
07/04/23 20:12:25
>>894
つまりcurlのverboseを見るため、意図してAccept-Encodingヘッダを飛ばしてます。

416とはRange指定範囲が本体の範囲から外れている事を意味していると思うのですが、
もし違う解釈があるのなら指摘いただけるとありがたいです。
curlでは正常に範囲指定が受け付けられているのに、NSURLConnectionでは範囲外と返ってくる。
ヘッダ情報が微妙に違うのか、何が原因なのかよくわからないのです。

897:デフォルトの名無しさん
07/04/23 22:37:46
tcpdumpとかでヘッダを覗いてみたらすぐに解決するんじゃない?


898:デフォルトの名無しさん
07/04/24 12:55:18
Accept-Encoding : gzip に答えてサーバーが gzip してコンテンツを返す
かつ
レンジ指定の場合
そのレンジは”何に対して”のレンジでしょう?

元のコンテンツですか?違いますか?
違う場合は、何に対してですか?

899:デフォルトの名無しさん
07/04/25 08:09:24
>>898
curl -H 'Range: bytes=6198-' -A 'Monazilla/1.00 (Jane/0.01)' -H 'Accept-Encoding: gzip, deflate' -H 'Accept: text/plain' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache'
-H 'Connection: keep-alive' URLリンク(news21.2ch.net) | gzip -d -c

curl: (18) transfer closed with outstanding read data remaining
あれ、zip元のデータ長ではないのですね…

900:デフォルトの名無しさん
07/04/25 22:09:45
2ch の dat を差分取得しようとするときに誰もがはまる罠です。

不意のコネクション切断等のときに、
その続きを取得する時のことを考えれば、
この動作が”正しい”ことが分かると思います。

http コンテンツで 2ch の dat の様に差分を取得できる物って
そんなに無いと思いますよ。

901:デフォルトの名無しさん
07/04/29 22:42:59
selfでないインスタンスオブジェクトに対して->を使って
@protectedまたは@publicなインスタンス変数にアクセスするのって
お前ら的にはどうなの?

902:デフォルトの名無しさん
07/04/29 22:48:35
そういうおまえはどうなのよ

903:デフォルトの名無しさん
07/04/29 23:40:48
インスタンス変数fooがあったとして、
メソッド内でselfを書き換えるとself->fooはもちろんとして
修飾なしのfooも実体が書き換えた後のインスタンスのインスタンス変数になるみたいなのですが、
これって処理系(gcc)依存の挙動でしょうか?それとも言語規約通りの挙動でしょうか?
すなわち、メソッド内において(& foo == & self->foo)が常に成り立つのでしょうか?

904:デフォルトの名無しさん
07/05/05 03:16:03
《プログラミング言語の本来あるべき正しい進化》
C言語→Objective-C→D言語

《忌まわしき現実》
C言語→C++→JAVA→C#

905:デフォルトの名無しさん
07/05/05 04:36:28
>>904
《忌まわしき事実》
C++(膨張した言語仕様への反省)→Java(もっと簡素・洗練しろ!)→C#

906:デフォルトの名無しさん
07/05/05 06:41:41
《とりあえずそれなりの仕事になった順番》
C → C++ → Perl → ASP → PHP → Ruby → Java


907:デフォルトの名無しさん
07/05/05 09:17:03
そしてNemerleの時代へ

908:デフォルトの名無しさん
07/05/05 13:28:30
Visual Objective-C出たら考える

909:デフォルトの名無しさん
07/05/05 18:26:33
そんなものでたらCに戻る

910:デフォルトの名無しさん
07/05/05 19:08:06
>>909
まじで、最近は一部C言語に回帰しているね。
プレゼンテーションはJavaとC#に収束。
Web系以外のサーバーサイドは、C言語がいい場合がある。

911:デフォルトの名無しさん
07/05/05 20:05:24
Objective-C.NET

912:デフォルトの名無しさん
07/05/05 23:41:59
言語仕様はObjective-CよりもC++のほうが優れている。
多機能という意味では。
しかしC++プログラマーの大半はC++を使いこなせていない。
大抵はベターCとして使っている。
だからほとんどのプログラマーにとってObjective-Cの機能は十分なんだ。
BorlandのVCL並のRADツールを備えたWindowsで使える統合開発環境さえあれば
Objective-Cは即座にC++を駆逐するだろう。
C++が普及したのはひとえにVisualC++の存在が大きい。

913:デフォルトの名無しさん
07/05/06 00:16:26
>>912
まあ、C++はC and ++だからな。
C++をフルに使いこなすには、C標準ライブラリ使用禁止、非クラス関数禁止でもしないと
追加機能付きCとして使ってしまう。

914:デフォルトの名無しさん
07/05/06 02:43:54
ObjC は C++ に比べて動的型決定なのも受け入れられない理由の一つかと

915:デフォルトの名無しさん
07/05/06 07:50:01
しかし動的型決定のないObjCなんて・・・

916:デフォルトの名無しさん
07/05/06 17:52:53
>>912
>BorlandのVCL並のRADツールを備えたWindowsで使える統合開発環境さえあれば
Mac OS XならXCodeとInterfaceBuilderがある。
ただObjective-CやれるのAppleぐらいだしWindowsへの進出はなさそうだな。

917:デフォルトの名無しさん
07/05/06 21:10:57
InterfaceBuilderのIntel版はあったんだけどね

918:デフォルトの名無しさん
07/05/06 22:29:25
そりゃ、MacOSXはIntel上で動きますから。


と釣られてみるテスト。

919:・∀・)っ-○◎●
07/05/07 00:05:15
NeXT OSのIntel版じゃないの

いや、Windows進出の野望はあったにはあったみたいだよ。
YellowBoxってのが。
ポシャったけど。

APIとしてのQuickTime for Windowsを提供する予定は
無いようだしな。

920:デフォルトの名無しさん
07/05/07 01:47:52
こんなん?

QuickTime 7.1 SDK for Windows (ZIP)
URLリンク(developer.apple.com)

921:・∀・)っ-○◎●
07/05/07 02:03:32
どっちかというとそれプレイヤーのプラグイン書くためのSDKのような

MacのQuicktime APIって、WindowsでいえばDirectXみたいな
もんじゃなかったっけ。

922:デフォルトの名無しさん
07/05/07 06:03:08
WinAPIってこの先どうなるのかね?
それがわからんとWin対応のObjective-Cなんておいそれと作れたもんじゃない。

Obejective-CってのはC言語にオブジェクト指向とかGCとかをマクロ機能を使って搭載したやつだ。
だから言語そのものに機能を組み込んでいるC++とは違うんだな。
ただあれだよね。
常に機能を追加するという発想。
そこはC++と同じ。
JAVAやC#みたいに機能に制限を加えるという発想はない。
Objective-Cを普及させるならば案外その辺がポイントなのかもしれんと思った。

923:デフォルトの名無しさん
07/05/07 07:05:08
という話は15年くらい前から何も変わってない訳で


924:デフォルトの名無しさん
07/05/07 13:51:05
マクロ機能というのは言い過ぎでは...
まあ runtime の上の syntactic sugar であるのは事実だけども。

925:デフォルトの名無しさん
07/05/08 00:35:53
もともと C の思想はプログラマを信じる事だから、C の延長上に機能制限なんてものは無い。
間違いのように見えても、プログラマ様がお書きになられたコードは絶対なのです。

926:デフォルトの名無しさん
07/05/08 01:19:43
まあマシン語も埋め込める最強の言語だし、なんでもできる。
OSを作るための言語だけの事はある。

927:デフォルトの名無しさん
07/05/08 06:52:22
安全性と柔軟性は両立しないと。

928:デフォルトの名無しさん
07/05/09 00:50:53
女は両方好む

929:デフォルトの名無しさん
07/05/09 22:09:08
ちょっと入り組んだ書き方するとLispも真っ青な括弧の入り組み方になるなぁ
カスケード記法があればいいのに
Lispと違ってうまくインデントスタイルが組めないから読みにくい

930:デフォルトの名無しさん
07/05/09 22:30:27
Lispほどネストする必然がないと思うのだが…

931:デフォルトの名無しさん
07/05/09 22:36:27
カスケードくらい追加できる気がするけど、何か文法的に問題があるのかな

932:デフォルトの名無しさん
07/05/14 11:33:35
Objective-Cのオブジェクトシステムの部分はSmalltalkの影響を受けているわけで、
そのSmalltalkはLispの影響を受けているので、括弧が多くなるのはそういう理由からでしょう。

933:デフォルトの名無しさん
07/05/14 12:01:36
ふーん

934:デフォルトの名無しさん
07/05/14 12:37:10
>>932
すごい三段論法だな。w
というか、どうして lisp や smalltalk をろくに知りもしないのに
そういう見てきたような嘘をつくかなー。

objc が smalltalk の影響を受けているのは [ ] の中だけ。
というか、objc の [ ] の中は、smalltalk の世界。
objc は smalltalk のコードを C コンパイラに通すためのプリプロセッサとして
開発された経緯がある。そんなわけで、[ ] のネストの多さは objc の勝手な事情で
smalltalk とは無関係だよ。

あと、smalltalk への lisp からの影響は、everything is an object のポリシーや
クロージャ、ブロッククロージャメソッドのたぐいで、
S 式(つまりこの文脈でいうところの括弧の多さ)じゃあない。

ちなみに残念ながら objc は、これら(lisp からの影響)の恩恵の外にある。
メタクラスやメソッドはオブジェクトじゃないし、ブロッククロージャメソッドはおろか、
ブロック(クロージャ)すら使えない。これらは objc の言語拡張のやりにくさや
イントロスペクションの貧弱さ、コレクションの扱いにくさとして出てくる。

935:デフォルトの名無しさん
07/05/14 14:19:56
ま~たそんなマジレスしちゃって。

936:デフォルトの名無しさん
07/05/14 14:53:23
>>934 がマジレスしてくれなかったら俺がマジレスする所だったわ
危ない危ない…

937:デフォルトの名無しさん
07/05/14 16:53:09
>>934
> ブロック(クロージャ)すら使えな
使える処理系もあるけどね。

938:デフォルトの名無しさん
07/05/14 19:43:36
poc poc チーン

939:デフォルトの名無しさん
07/05/14 21:09:12
説明していただきありがとうございました。
おかげでOjective-Cの勉強を諦めることが出来ました。
感謝します。

940:デフォルトの名無しさん
07/05/14 21:24:24
まだ ObjC にクロージャ入らないんだっけ?

941:デフォルトの名無しさん
07/05/15 00:01:30
クロージャを入れるのは一苦労じゃけん

942:デフォルトの名無しさん
07/05/15 00:05:46
ふーん

943:デフォルトの名無しさん
07/05/15 00:29:33
そこでRubyですよ

944:デフォルトの名無しさん
07/05/15 00:52:11
Objective-Cやっている人はそれがC++よりも優れていると思う?
それともMacについてきたからやっているの?

945:デフォルトの名無しさん
07/05/15 00:59:06
優れているところもあるし劣っているところもある
ちなみにMacOSXについてるのは
Objective-C じゃなくて Objective-C++ だから

946:デフォルトの名無しさん
07/05/15 02:34:24
> ちなみにMacOSXについてるのは
> Objective-C じゃなくて Objective-C++ だから

ちがいます

947:デフォルトの名無しさん
07/05/15 16:14:25
>>944
C++より先にObjCを学んだからC++使ってると違和感を感じることがある。
多分C++が先な人は逆なんだろうけど。

948:デフォルトの名無しさん
07/05/16 19:40:39
俺はどうもC++の変数の型の縛りが苦手だなあ。
virtualとか、何種類もあるキャストとか...

そんなわけで最近はruby。Cocoaも呼べるし。

949:デフォルトの名無しさん
07/05/16 22:01:25
使いやすいのでいいんじゃない

950:デフォルトの名無しさん
07/07/01 21:02:32
ほしゅ

951:デフォルトの名無しさん
07/07/19 04:34:52
URLリンク(ja.doukaku.org)

952:デフォルトの名無しさん
07/07/19 09:40:00
>>947
先にC++だったけどC++使ってると違和感を感じる
やっぱりObjective-Cの方がいいよ


953:デフォルトの名無しさん
07/07/19 09:50:28
>先にC++だったけどC++使ってると違和感を感じる

これって、MFCじゃね?
MFCとCocoaを比較したらCocoaがマシかもしれない。
でもMFCのトンデモ設計とちょーサイアクGUIビルダーよりましといった事に意味は無い。

954:デフォルトの名無しさん
07/07/19 22:22:06
何で C++ == MFC だと思ったのかな?

955:デフォルトの名無しさん
07/07/20 02:14:36
かな?

956:デフォルトの名無しさん
07/07/20 08:50:11
だって、C++Builderなんて使ったらCocoaの変にIDEにコントロールされて
逆にMVCを開発者側が制御できない変なもの使ってられないよ。
MVCを変に制御して困るものでC++といえばMFC。

957:デフォルトの名無しさん
07/07/20 09:52:47
どっからMVCなんて出てきたんだか。

958:デフォルトの名無しさん
07/07/20 10:20:20
URLリンク(developer.apple.com)

959:デフォルトの名無しさん
07/07/27 20:00:51
日本語でok って言うトコロなんだと思う

960:デフォルトの名無しさん
07/08/06 11:22:30
プロトコルと抽象クラスってどういう風に使い分ければ良いのよ

961:デフォルトの名無しさん
07/08/06 12:07:29
Objective-C 2.0 には抽象クラスがあるの?

962:デフォルトの名無しさん
07/08/06 12:32:23
いや、言語仕様にはないけどさ…

963:デフォルトの名無しさん
07/08/07 10:38:33
どっちも使わない。ふつうは informal protocol というか単にセレクタの名前を取り決めておくだけ

964:デフォルトの名無しさん
07/08/07 11:05:51
もうObjective-C廃止にしない?

Mac OS XとC++でポトペタ開発しようよ。

965:デフォルトの名無しさん
07/08/07 11:14:55
C++なんてクソ言語使ってられるかっつーの

966:デフォルトの名無しさん
07/08/07 12:01:59
というか Interface Builder はポトペタの元祖なのでは?まあ癖はあるような気がするけど。バインディング可なパレットきちんと作っておくと殆ど IB だけで出来るべ

967:デフォルトの名無しさん
07/08/07 12:07:23
出来るってだけで、GUIの凝ったコントロールを作る事が不可能だお。

968:デフォルトの名無しさん
07/08/07 12:49:00
ポトペタってなんですか><
インターフェースビルダーよりどこが凄いのか押しえて下さい!!!!

969:デフォルトの名無しさん
07/08/07 13:03:28
コンポーネントを派生して、差分コーディングで処理を足して、画面に"ポトペタ"貼る事でつよ。
他人のハイパーなコンポーネント使ったり、ネットに派生コンポーネントが溢れたりするお。

970:デフォルトの名無しさん
07/08/07 13:16:29
それはまさに IB でパレットから D&D して、カスタムクラスを設定することだとおもうんだけど、どっか違うの?
Apple が提供してる以外の新規パレット自体をつくることもできるよ。
URLリンク(www.bignerdranch.com)

確かにネット上にカスタムパレットが溢れてはいないが ...

971:デフォルトの名無しさん
07/08/07 13:26:51
派生前クラスのソースコードって公開されてる?
やっぱ、クラス派生する場合にはそれが無いとスゲー足かせだお。

972:デフォルトの名無しさん
07/08/07 14:07:21
というか、Cocoa のプログラミングは
1) view はパレットから D&D してカスタムクラス
2) controller も最近はバインディング用のをパレットから D&D
3) model は手で書いても良いし、CoreData でも良い
だとおもうんだけど。

Apple 提供のパレットはソースコードは流石にないよ。でもドキュメントは(英語なら)完備してる。まあ GNUStep が 8割方再実装してるから読みたけりゃよめばいいけど。

ネットにころがってるのは、そもそも数が少ないけども、ころがってるやつはソースも配ってると思うよ

あと、Objective-C はカスタムクラスが面倒だったら、元クラスのソースコードもってなくても元クラスにメソッドを追加できるよ。これは非常に便利。

973:デフォルトの名無しさん
07/08/07 14:12:17
>1) view はパレットから D&D してカスタムクラス

やっぱ、そうだよね。

プロジェクトと強く結びついたカスタムクラスであって、
クラスライブラリのベースクラスが派生したハイパークラスで溢れる、
というイメージじゃないだよね。

974:デフォルトの名無しさん
07/08/07 14:21:49
別にプロジェクトと強く結びついてんくても良いんだけど。

975:デフォルトの名無しさん
07/08/07 14:25:37
まあハイパークラスなんて配られてないからね。
Apple 謹製の NSTextView, WebView は充分 Hyper な気がするけど。

あと、Cocoa ではクラス派生をする前に大抵の処理は delegate で済む気もする。
(コントローラが標準 view の機能を拡張できるみたいなかんじ)

ポトペタでハイパーなコンポーネントののってるページの例をなんか URL おしえてください

976:デフォルトの名無しさん
07/08/07 14:33:25
URLリンク(hp.vector.co.jp)
URLリンク(norg1964.hp.infoseek.co.jp)

977:デフォルトの名無しさん
07/08/08 00:43:11
o ひとつめの URL にあがってるような機能は Cocoa /Carbon API にある気がする
o ふたつめのにはいっぱいカスタム GUI コントロールがのってるけど、
あんまり Apple はカスタムコントロールをつくるのは推奨してない気がするし、
そういうことすると OS X ぽくないソフトになりがちで嫌われがちだと思われる

978:デフォルトの名無しさん
07/08/08 00:45:43
URLリンク(shiira.jp)

こういうカッコいいコントロールもあるよ。まあ Apple がまだ公開してない API を再実装した奴だけど、Interface Builder でふつうに配置してクラスの名前をこれにかえるだけで使える

979:デフォルトの名無しさん
07/08/08 01:38:51
MacのプロアプリのようなUIにしたければカスタムするしかないよね。
スライダーとか機能的にも不十分だしIBにあるパーツだけじゃ足りなくなってきたからパーツの作り方勉強しなきゃ。

980:・∀・)っ-○◎●
07/08/08 02:12:08
リストボックスをオーナーデータ化するにはどーすりゃいいんだ?

981:デフォルトの名無しさん
07/08/08 08:48:20
>あんまり Apple はカスタムコントロールをつくるのは推奨してない気がするし、

これが今の時代の開発ではネック。

>そういうことすると OS X ぽくないソフトになりがちで嫌われがちだと思われる

だからコントロールを派生して元々OS Xの描画の上に描画を足したり処理を足したりするわけじゃん。

982:デフォルトの名無しさん
07/08/08 11:16:36
>>979
ProKitでなんとかなるかもしれないけど。

983:デフォルトの名無しさん
07/08/08 11:40:52
>>981
まあ確かに、機能豊富で、ちゃんと Cocoa の window にマッチするパレット集が一杯おちてたら便利だろうね。
もうちっとデヴェロッパ層が厚くならないとだめかな。

984:デフォルトの名無しさん
07/08/08 12:11:56
ええと、そろそろCocoaスレに行ってくれません?

985:デフォルトの名無しさん
07/08/08 12:20:11
>>978
この黒パネルはLeopardのIBで実装されてる。

986:デフォルトの名無しさん
07/08/08 12:25:15
次スレ
スレリンク(tech板)

987:デフォルトの名無しさん
07/08/08 12:29:14
>>984
Cocoa の話が駄目とすると GNUStep も駄目?

988:デフォルトの名無しさん
07/08/08 12:37:22
漢は黙って objc/Object.h をインポート

989:デフォルトの名無しさん
07/08/08 13:39:09
>987
AppleがCocoaで新たに組み込んだ関係がうぜ~って事じゃね?
IBの話すんならGORMの話しろや!ってきっといいたいに違いないと思ってるのだが(w

あ,クラスライブラリはどうでもいい言語そのものの話をしたいって人だったのかも>984

990:デフォルトの名無しさん
07/08/08 14:22:59
OOP言語ならクラスライブラリと切り離して話できんわ。

991:デフォルトの名無しさん
07/08/08 15:24:09
そこでObjective-C標準クラスであるObjectを…

992:デフォルトの名無しさん
07/08/08 18:27:56
Object.hと同じディレクトリにList.hってのもあるんだけど、
ListもObjective-Cの標準クラス?

993:デフォルトの名無しさん
07/08/08 22:29:02
純粋に Objective-C の話ってなかなか難しいのでは ...
Apple の独自拡張も多いし。

Object と NSObject がどっちが「標準」かというと、
一社/一グループの実装だけじゃなくて、
標準を定めた文書が別個に存在するかという意味では
Openstep のほうが「標準化」されているのではないかと思わなくもない

GCC もせめて GNUStep の non-GUI 部分を一緒に配布してくれればいいのに。

994:デフォルトの名無しさん
07/08/08 22:38:23
基本Java厨で、現在C++で食っていきながら、
Rubyが一番好きかも知れないという俺ですが、
Objective-Cに興味を持っています。
他のOOPLとくらべてどうでしょうか。
メリットとかデメリットとか。


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