[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 10/07 16:29 / Filesize : 229 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Objective-C



1 名前:デフォルトの名無しさん mailto:sage [05/01/29 16:18:12 ]
ほんとプログラマにとってはMacって
本当に興味が無いOSだよねw

Macでの標準的な言語であるObjective Cのスレすら無いし。
過去にはあったんだろうけど。

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

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

731 名前:デフォルトの名無しさん [2006/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 [2006/09/29(金) 01:33:14 ]
まさかと思い、Apple純正のCocoaアプリ「計算機」でMallocDebug
やってみたら、なんと同じリークが…。ウィンドウアクティブにする
たびにリークが同じく40bytesずつ増えてく。
これって仕様なの??それとも他の理由が??
気にしなくていいということですかね?
もし本当にリークしてるなら、ウィンドウをアクティブにするのは
極力控えた方がいいってことなのかな〜(^^;)

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

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

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

736 名前:728 [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 10:23:37 ]
>>735
Objective-C 2.0でガベージコレクションが導入されたら、
Cocoaも原理上リークがなくなるはずだ。

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



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

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

741 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 21:20:21 ]
>>740
そもそもretainできない件

742 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 21:31:30 ]
-dealloc の中で「dealloc されました」って通知すればいいんでないの

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


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

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

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

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

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

747 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 01:17:36 ]
>>746
すいません。よくわかりません。

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

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

748 名前:744 mailto:sage [2006/10/04(水) 01:31:01 ]
cocoaのこの辺りがいけてるとか、充実してるとかってありますか?
CやJavaに比べて

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



749 名前:デフォルトの名無しさん [2006/10/04(水) 02:39:43 ]
Cocoaっつーか、IBが面白い。

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


751 名前:745 mailto:sage [2006/10/04(水) 09:30:31 ]
>サンクスです。本とかよりappleのpdfで十分ってことですね。
充分かどうかは... 本もいいのがいろいろあるよ。
ヒレガスとか。
www.cocoadev.com/index.pl?CocoaBooks
に書評があるのでみてみてね。

752 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 20:57:38 ]
>>751
ひれがす?

753 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 06:36:37 ]
>>744はCocoaとObjective-Cを混同している予感

754 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 08:20:41 ]
混同してるようには見えんが

755 名前:744 [2006/10/05(木) 12:38:03 ]
>>753
Cocoaはobjcのライブラリーでしょ?

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

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


757 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 11:40:45 ]
はつみみです

758 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 14:38:05 ]
はなしし?



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

760 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 15:37:17 ]
お団子ちゃんの退化系

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

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


763 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 00:39:14 ]
いまだにOpenStep使ってる椰子とか

764 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 01:16:13 ]
白豚さんとか

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

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

767 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:11:40 ]
ObjC 2.0でますますCocoa専用言語な印象が強まったんですが。

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



769 名前:デフォルトの名無しさん [2006/10/10(火) 01:00:55 ]
>>766
汚いソースの例が見たい

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

771 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 20:42:55 ]
ObjCをコンパイルできる無料のコンパイラってgcc以外にある?

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

users.pandora.be/stes/compiler.html

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

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

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

776 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:44:33 ]
ぶっちゃけObj-C

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

778 名前:デフォルトの名無しさん [2006/10/17(火) 00:30:34 ]
Obj-C最高!

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



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

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

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

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

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

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

784 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 13:38:36 ]
ObjC→C++はどうでつか?

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

786 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:06:24 ]
>>781
WebObjectsも気合いは入ってない

787 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:53:38 ]
ていうか Cocoa-Java はとうとう deprecate された

788 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 17:31:08 ]
もうだめぽ



789 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/17(火) 18:31:34 ]
Cocoa-Ruby
まじでおすすめ

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

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

791 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 22:33:56 ]
ちなみに RubyCocoa だと思ふ...

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

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

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

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


794 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 15:06:33 ]
>>>792
Ruby は違うでしょ。単に動的なだけ。

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

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

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

797 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 03:35:31 ]
caseの化け物のことか

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

指向指向うるさいなw




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

800 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 21:03:11 ]
>>798
ケイのオブジェクト指向、ストラウストラップのオブジェクト指向でおk

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

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

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

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

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


802 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 01:49:39 ]
カプセル化はアクセス制御出来ないとダメなんじゃないの。

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

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

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

www.purl.org/stefan_ram/pub/doc_kay_oop_en
lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html
gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html

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

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

www.sra.co.jp/people/aoki/IntroductionToOOAOOD/chapter1/Chapter1.htm

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

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

portal.acm.org/citation.cfm?id=679041
www.research.att.com/~bs/whatis.pdf (上の '90 改訂版。内容はほぼ同じ)

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

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

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


806 名前:デフォルトの名無しさん mailto:sage [2006/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 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:42:49 ]
ただ単にObject.hが壊れてるだけじゃね?

808 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 20:28:49 ]
developer.apple.com/jp/releasenotes/DeveloperTools/GCC40PortingReleaseNotes/GCC40PortingReleaseNotes.pdf
の32ページに、

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

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



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

810 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:03:19 ]
220度くらいズレてる気がする

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

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

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

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

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

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

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

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

816 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 04:25:59 ]
static int global_foo() { return foo; }

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

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



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

820 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 12:48:51 ]
こんなのがあったべ。
www.informit.com/articles/article.asp?p=665128&seqNum=3&rl=1
GCC のテストスートにObjC2.0のサンプルコードがあるらしい
gcc.gnu.org/viewcvs/branches/apple/trunk/gcc/testsuite/objc.dg/

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

822 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 20:38:03 ]
つMinGW

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

824 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 19:08:38 ]
ObjCって今でもプリプロセス段階でCに変換されてるの?

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

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

827 名前:デフォルトの名無しさん [2006/11/15(水) 22:05:50 ]
クロージャー無いのか、残念だ

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

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



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


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

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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef