1 名前:デフォルトの名無しさん mailto:sage [05/01/29 16:18:12 ] ほんとプログラマにとってはMacって 本当に興味が無いOSだよねw Macでの標準的な言語であるObjective Cのスレすら無いし。 過去にはあったんだろうけど。
111 名前:デフォルトの名無しさん mailto:sage [05/02/25 15:04:26 ] 簡単な質問かもしれませんが、分からないので教えてください。 以下のプログラム、核は出来ています。このまま使用しても目的は達成できます。が、 tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/CSJS2EUC.C tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/CEUC2SJS.C この2つのソースコードをJISを経過させずに直接変換させるにはどうしたらいいでしょうか?
112 名前:デフォルトの名無しさん mailto:sage [05/02/25 15:05:47 ] まったく見ていないが、おそらく Objective-C とは何ら関係がない。
113 名前:デフォルトの名無しさん mailto:sage [05/02/26 04:56:52 ] なんか夜9時にいきなりツールを明日の朝までに作れって上司が言って 仕様書いたポストイットを俺の端末に貼って帰りやがった 最初は普通に VisualC++ で作ってたが途中で上司の態度がムカついてきたんで GNUStep と MinGW と コーディング用に Meadow 落としてきて Objective-C と GNUStep の Foundation と Win32API の不気味なコラボレーションで 仕様通りのツールを仕上げてやった 俺が辞めた後でソースみて気絶する奴が出ない事を祈る
114 名前:デフォルトの名無しさん mailto:age [05/02/26 08:04:44 ] >>113 GJ! と言っておこう。
115 名前:デフォルトの名無しさん [05/02/26 17:44:09 ] >>113 苦しむのは後釜と思われ。 その上司は次の誰かに朝までの修正を夜9時に渡して帰るだけだぞ。 内容が解らんので何とも言えんが、因みに本当に非道いケースでは 上司が定時帰宅で責任は部下に擦り付ける罠。 あとその成果物って他のPCでも動く?
116 名前:デフォルトの名無しさん mailto:sage [05/02/26 17:48:46 ] >>115 113じゃないがobjc.dllとgnustep-base.dllいっしょに入れときゃ動くでしょ。
117 名前:デフォルトの名無しさん mailto:age [05/02/26 23:32:11 ] Objective-Cの参考書(日本語)って存在しないのか・・・? 世の中はC、C++、C#、Java、VBがほとんどを占めている訳か? 「Cocoaはやっぱり」以外にOSXでのプログラミングを支援する書籍が無い! Appleは何を考えとるんだ・・・。 英語版をなんとかして読むしかありませんか。
118 名前:デフォルトの名無しさん mailto:sage [05/02/26 23:41:24 ] > Appleは何を考えとるんだ・・・。 イマドキ「日本語の参考書がないから勉強できまちぇん」 とかヌカしてる連中は必要ないということでしょう。
119 名前:デフォルトの名無しさん mailto:sage [05/02/26 23:50:07 ] >>117 ヒレガス本,萩原本,HMDTは? 萩原本は出版社がなくなったみたいだから手に入りにくいかも知れんけど。 Objective-Cの言語についてだったら日本語翻訳がある。 developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/index.html
120 名前:デフォルトの名無しさん [05/02/26 23:50:23 ] >「Cocoaはやっぱり」以外にOSXでのプログラミングを支援する書籍が無い! これはあんまりだろ。
121 名前:デフォルトの名無しさん mailto:sage [05/02/26 23:55:59 ] とりあえずHappy Macintosh developing timeは買っとく事にします。 >>120 書籍ベースの参考書についてはJavaやC++みたいな 習得人口の多い言語と比べるべきでは無かったですね。
122 名前:デフォルトの名無しさん mailto:sage [05/02/27 00:40:30 ] Cocoaはやっぱり!とHMDT本と、HMDTのページのCocoa 1001があればほぼ用が済むと 思うんだけど.... APIリファレンスがちゃんとあるんだしさ。
123 名前:デフォルトの名無しさん mailto:sage [05/02/27 02:12:50 ] Objective-Cって学習コストがかなり低い部類に入ると思うけどなあ。 俺なんて講義でObjective-Cによるフレームワークのを使うからってんで 簡単な紹介とポインタ示してこういうものがあるから覚えてこいでおしまいだったぞ。 当然そっから先の講義のほとんどやレポートに必要だった。
124 名前:デフォルトの名無しさん mailto:sage [05/02/27 04:05:16 ] >> 123 * C言語が使える * 少くとも一つのオブジェクト指向言語が使える 人ならば学習コストは低いでしょうけど… 昔 "10 minutes learning objective-C"(だったかな?) とかいう Web page を読んで文法覚えました。 当時 C や Java を覚えた後だったんで覚えるのに1日はかからなかったなぁ。 #10分じゃ無理だったけど
125 名前:デフォルトの名無しさん mailto:sage [05/02/27 04:55:33 ] > 萩原本は出版社がなくなった うわ、ほんとだ。知らなかった。 www.dgcr.com/cgi-bin/backnumber/back.cgi?mode=right&year=2004&month=9&day=17
126 名前:デフォルトの名無しさん mailto:sage [05/02/27 10:10:34 ] Macに乗り換えてプログラミングに興味があるので、CocoaのObjective-Cでプログラミングをしてみたいのですが、どこから入れば良いでしょうか。 ちなみに、プログラミングの知識は0に近く、WindowsでHSPという言語でちょこっとやったことがある程度です。
127 名前:デフォルトの名無しさん mailto:sage [05/02/27 11:06:54 ] はじめてのMac OS X Cocoaプログラミング―v10.2対応 www.amazon.co.jp/exec/obidos/ASIN/4898143997/ 辺りかなぁ。
128 名前:デフォルトの名無しさん [05/02/27 11:43:37 ] >>127 中村本は取っ付きやすいとはおもうけどCの知識が0だときついよ。 Cの入門書とセットで読むといいかも。
129 名前:デフォルトの名無しさん mailto:sage [05/02/27 12:39:07 ] >>117-122 だべってないでお前らが本書けばいいだけじゃん 一人一殺だ
130 名前:r [05/03/02 23:57:23 ] ここって、Objective-CっつーよりCocoaスレなんだな。 あのさ、NSImageViewのサブクラスを作って、 -(void)mouseUp:(NSEvent*)event; をオーバーライドして、 画像上のマウスクリックのイベントを拾おうとしたんだが、 なんか、mouseUpメソッドが呼ばれないみたいだったんだ。 で、試しに -(void)mouseDown:(NSEvent*)event; も、ついでにオーバライドしてみたら、 mouseUpもmouseDownも呼ばれるようになった。 mouseUpとmouseDownって、ペアでオーバライドしなきゃいけないの? これってマカーには常識?
131 名前:デフォルトの名無しさん mailto:sage [05/03/03 02:27:37 ] そんなことはない 副作用で直ったと思われ
132 名前:デフォルトの名無しさん mailto:sage [05/03/03 18:39:51 ] 言語の敷居は低いが、Cocoaがキツイ。 良く在るC++のクラスライブラリと違ってOSの一部なので、ソースが無い。 かといって、JDKのように挙動が自明でもない。 試行錯誤させられる亊が多過ぎる。
133 名前:デフォルトの名無しさん mailto:sage [05/03/03 18:41:38 ] 演算子のオーバーロードがないから文字列クラスの扱いがきついね std::stringですら遥かにまし
134 名前:デフォルトの名無しさん [05/03/03 19:21:21 ] 早くXCodeがDをサポートしますように
135 名前:デフォルトの名無しさん mailto:sage [05/03/03 22:25:19 ] ソースはある
136 名前:デフォルトの名無しさん mailto:sage [05/03/03 23:15:51 ] >>135 あるの?
137 名前:デフォルトの名無しさん mailto:sage [05/03/04 01:12:28 ] mac mini届いた、Objective-Cを触ってみたが、C++に要した労力に比べると、格段に易い。 文法もすっきりしている、好きになりそうだ。
138 名前:デフォルトの名無しさん mailto:sage [05/03/04 01:39:01 ] >>137 すごいな。 漏れはずっとC++使って来て、PublicBetaを試したとき、 Objective-C自体の書式はすぐに分かったのだけど、 IBとPBの連携の意味を理解するのに半年掛かってしまった。 資料見ても意味分からないから試行錯誤&挫折の繰り返しでなかなか意図を見抜けなかった。 で、ようやくポトペタでGUIアプリが作れるようになったんだけど、 結局Cocoaのクラス構成とかの流儀に馴染む前に嫌になってしまったよ……。
139 名前:デフォルトの名無しさん mailto:sage [05/03/04 08:50:58 ] autoreleaseなんてのがあるので オブジェクト解放のタイミングが分かりづらくなってる気がする。 なかなか気付きにくいよ「イベントループの末尾で削除」なんて。
140 名前:デフォルトの名無しさん mailto:sage [05/03/04 10:19:26 ] そこでGNUstepのGCですよ。 マジほしいな、これは。
141 名前:デフォルトの名無しさん mailto:sage [05/03/06 13:05:38 ] 情報提供してあげてください。 ttp://www.rubyist.net/~matz/20050304.html >どうやらObjective-Cの「カテゴリ」と呼ばれる機能が、以前から悩んでいたselector namespaceに近いもののようだ。基本的な概念は理解できるものの、実際の挙動(と実装)がイメージできず苦しんでいたので、参考にできるものがあるのはありがたい。 >しかし、ちょっとGoogleしてみた範囲内では、その仕様はよくわからなかった。具体的な挙動や実装について参考になる資料はないものだろうか。 >あれ? まてよ。 >今、改めてGoogleしたページを読み返すと、別に有効範囲が静的スコープであるとは書いてないな。そうするともしかしてカテゴリってのは、ただ単に「インスタンス変数が追加できないMix-in」なのか。それだったらすっごい残念なのだが。 >selector namespaceのある言語といえば、他にSmallscript (S#)やJavaScript (EcmaScript 4.0)などもあるが、いずれも現時点で私には理解できていない。 >情報提供歓迎。
142 名前:デフォルトの名無しさん mailto:sage [05/03/07 12:12:31 ] >インスタンス変数が追加できないMix-in でほぼ正解じゃなかったかな…? メソッドも追加ができるだけでオーバーライドすらできないからそれ以下かな?
143 名前:142 mailto:sage [05/03/07 13:13:57 ] すまん… オーバーライドはできたかも…
144 名前:デフォルトの名無しさん [05/03/08 22:09:19 ] idとNSObject*と、他Objective-Cのインスタンスへのポインタって、 全く等価なもんなんでしょうか。 例えばObjective-Cのクラス Fugaが定義されているとして、 次の2行は等価? 非等価? id p = [[Fuga alloc] init]; Fuga* p = [[Fuga alloc] init];
145 名前:デフォルトの名無しさん mailto:sage [05/03/08 22:17:13 ] コンパイル時に型チェックが働くか否かの差
146 名前:デフォルトの名無しさん mailto:sage [05/03/08 22:25:34 ] >>142 Mix-inって、クラスを特定することなく定義できる必要があると思うんだけど。 Objective-Cのカテゴリって定義時にクラスを指定するから、他のクラスで使うことができない。 これをMix-inというのだろうか。そもそもMix-inとは?
147 名前:142 mailto:sage [05/03/09 13:43:29 ] >>146 わたしの中での Mix-in に対する認識は * 基本となる型(Flavor)が存在する * その型に対して追加機能を提供する型が Mix-in * 機能追加すること自体も Mix-in と呼ぶ(?) * 機能追加は,実装でも仕様でもOK * プロトタイプ言語には Mix-in は存在しない(必要ない) * C++ の多重継承でも Mix-in (の概念)は存在する(らしい) という感じです。 なので特定の型(Flavor)に機能追加するだけでも Mix-in だと思ってますが… 世間一般での Mix-in の定義はどうなんでしょうね?
148 名前:デフォルトの名無しさん [05/03/09 18:46:33 ] >>145 ダイナミックバインドってid経由でしか働かないんだっけ
149 名前:デフォルトの名無しさん mailto:sage [05/03/09 20:53:44 ] 仕様の追加は mix-in とは言わないんじゃ、、、 > * C++ の多重継承でも Mix-in (の概念)は存在する(らしい) というか、多重継承だからこそ mix-in が可能なんじゃないか? Ruby は多重継承ができないけど、 mix-in があるので 多重継承と似たことができますよ、ってことにしてるんでしょ?
150 名前:デフォルトの名無しさん mailto:sage [05/03/09 21:04:48 ] 逆 C++ では Mix-in を表現するに多重継承を使う方法がある
151 名前:デフォルトの名無しさん mailto:sage [05/03/09 21:14:19 ] あぁ、まぁ、そうか。
152 名前:デフォルトの名無しさん mailto:sage [05/03/09 21:29:40 ] >>148 developer.apple.com/ja/documentation/Cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_8.html
153 名前:デフォルトの名無しさん mailto:sage [05/03/09 23:04:51 ] ここの住人は基本的にCocoaプログラマ?
154 名前:デフォルトの名無しさん mailto:sage [05/03/10 16:28:59 ] そうみたい でもCocoaに限らない話題希望
155 名前:デフォルトの名無しさん [05/03/10 16:46:04 ] >>154 Cocoa以外でobj-c使う場面ってどんな場面よ
156 名前:デフォルトの名無しさん mailto:sage [05/03/10 16:48:13 ] GNUstepとか。
157 名前:デフォルトの名無しさん [05/03/10 16:51:19 ] メッセージの一つ目の引数にラベルつけらんなくてみんな困ってます
158 名前:デフォルトの名無しさん mailto:sage [05/03/10 17:14:38 ] バカだなー、一つ目をダミーの引数にすればんだよ。
159 名前:142 mailto:sage [05/03/10 17:25:10 ] >>149 Mix-in の概念は実装の追加のみに限定されるものでもないと思うんだが… Java の interface や Objc の protocol も Mix-in な型として使われ る場合があるし,それも Mix-in と呼べると思うけど… Mix-in について解説したドキュメントでいいのないかな? Mix-in評論家(?)の日記くらいか? ttp://www.rubyist.net/~matz/0128.html
160 名前:デフォルトの名無しさん mailto:sage [05/03/10 22:45:41 ] Cocoaをはじめようと思います。Objective-Cを学ぶにはC言語を覚えてからオブジェクト指向を理解したうえで、というのが近道だと聞きましたが、ベースとなるC言語の知識はどれくらい必要でしょうか。
161 名前:デフォルトの名無しさん mailto:sage [05/03/11 00:02:58 ] そりゃ、基本的事項は全てだろ。 テキストがあれば、それの最初から最後まで。 心配しなくてもそんなに分量はない。 けと、その都度実践していかないと(つまり、ソースを作っては試す) 身にはつかない。
162 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:11:55 ] 同意。 でも、多くの人がポインタで挫折すんだよねー。 まぁ、今は良い参考書もいっぱいあるから、昔に比べりゃ全然楽だ。
163 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:40:32 ] 「すればんだよ」とか「けと、」とか日本語じゃない言葉が飛び交ってて 話てるのか何か良く分からないんです。
164 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:42:50 ] >>162 >でも、多くの人がポインタで挫折すんだよねー。 それは数あるポインタの解説書がことごとく間違っていたり 嘘言っていたりして学習者の混乱を増長させているから。
165 名前:デフォルトの名無しさん mailto:sage [05/03/11 02:05:42 ] ポインタと配列の間に関係性を持たせてしまったCの仕様にも責任がある希ガス。
166 名前:デフォルトの名無しさん mailto:sage [05/03/11 02:23:51 ] どうして? ごく自然な仕様だろ。
167 名前:デフォルトの名無しさん mailto:sage [05/03/11 03:15:52 ] int *p; において、 「*(p+i)はp[i]って書き方もできます」って仕様は余計だと思う。 これのせいで、ポインタと配列は全く別ものなのに、 なんだか同じもののように初心者を混乱させている希ガス。
168 名前:デフォルトの名無しさん mailto:sage [05/03/11 05:20:10 ] 同じものですよw
169 名前:デフォルトの名無しさん mailto:sage [05/03/11 08:06:55 ] Xcode2.0はどの程度現状と変わるのか。 Tigerを買うかどうかは、そこの評価次第なんだけど。
170 名前:デフォルトの名無しさん mailto:sage [05/03/11 11:37:37 ] >>169 一番の売りはUML風味のクラス図自動生成とかでない? その辺実際どの位使えるのかは確かに気になる所。 Rationalのアレ並みにとは言わんけどさ(w。それなりにパパッと書いたのがぐりぐり動いてるよーだといいな
171 名前:デフォルトの名無しさん mailto:sage [05/03/11 12:40:57 ] 快適な開発環境がOSに標準でついてくるなら もう少し、Cocoaプログラマが増えてもいいと思うんだが。 Macを再評価する動きというのは無いものか。
172 名前:デフォルトの名無しさん [05/03/11 13:18:32 ] ついにObjCのみのAPIの登場だ。 Developing with Core Image developer.apple.com/macosx/tiger/coreimage.html
173 名前:デフォルトの名無しさん mailto:sage [05/03/11 13:20:47 ] >>170 EOFっていうベースがあるから、 そこそこ行けそうな気がする。 なんで別けたんだろうね。
174 名前:デフォルトの名無しさん mailto:sage [05/03/12 00:27:53 ] Core Imageって,Cocoa系のAPIだったとは。てっきり Carbonだと思っていた。
175 名前:デフォルトの名無しさん mailto:sage [05/03/12 01:33:37 ] Carbonからも呼べるんで、困りはしないんだけど、 Core Image使うところは、.mにせにゃならん。
176 名前:デフォルトの名無しさん mailto:sage [05/03/12 15:12:42 ] >>162 ポインタは難しい的な先入観もたせるのも どうなんだろうなって感じだよね。 何の先入観も無しにやってみて難しくて挫折するのは しょうがないとして、余計な先入観のせいで混乱しちゃうと ちょっとね。
177 名前:デフォルトの名無しさん mailto:sage [05/03/12 17:22:57 ] たぶん、ポインタの理解が「指し示すもの」「アドレス」の2つで混乱してるんだろうな わかる人は両方をちゃんと使い分けてるけど、説明される時はこのうち1つ側の説明しかされないし
178 名前:デフォルトの名無しさん mailto:sage [05/03/12 23:38:06 ] コンピュータってものを理解してれば全く混乱なんかしないよなあ。 もしかしてメモリやアドレスの概念を出さずに説明されるのだろうか? またはCPUやメモリの概念程度の基礎知識すらない奴がC言語を学んでいるのか?
179 名前:デフォルトの名無しさん mailto:sage [05/03/12 23:56:55 ] メモリとレジスタを絡めて教わったよ。 少なくともオレらは。
180 名前:デフォルトの名無しさん mailto:sage [05/03/13 03:34:30 ] やっぱり最初はアセンブラから?(w って、今頃そんなのをやれっても無理あるよなぁ。
181 名前:デフォルトの名無しさん mailto:sage [05/03/13 08:58:19 ] 君が知りたくなければ一生知らないままでいいよ。
182 名前:デフォルトの名無しさん mailto:sage [05/03/13 12:13:04 ] そこでBrainfuckですよ
183 名前:180 mailto:sage [05/03/15 01:26:13 ] >>181 いや、漏れではなく今頃の人に教えるのにアセンブラって言うのも厳しいもんがあるよなぁと。 漏れなんかはTK-80をガキの頃に親から奪って遊びだした世代なんで最初はハンドアセンブル しかなかったんだよな。 今だとそういういい教材はあるけれどなかなかにニッチだしなという事で。
184 名前:デフォルトの名無しさん mailto:sage [05/03/15 06:31:47 ] >>180 にとってアセンブラは厳しかった訳か
185 名前:デフォルトの名無しさん mailto:sage [05/03/15 07:40:38 ] 180の言ってる事はよくわかるけど?
186 名前:デフォルトの名無しさん mailto:sage [05/03/15 08:54:28 ] 最終的にShark使ってG5最適化とか、 今でもアセンブラの知識は役に立つが、 全くもってスレ違い。
187 名前:デフォルトの名無しさん mailto:sage [05/03/15 23:12:17 ] まあまあ、そんなことより >>158 のテクニックの実装方法について、 まじめに考えてみようぜ
188 名前:デフォルトの名無しさん mailto:sage [05/03/16 00:16:11 ] 「スレ番だよ」というのがよくわんない。
189 名前:デフォルトの名無しさん [2005/03/27(日) 01:31:22 ] MacOSXのターミナルで、Cocoaのフレームって使用できますか。 Object をNSObjectにしたいけど、リンクでエラーがでます。 Cocoaのライブラリを探してリンクすればいい、という発想はおかしいですか?
190 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 02:04:35 ] -framework Foundation つけとけ
191 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 11:41:02 ] >>190 おお、ありがとうございます!
192 名前:デフォルトの名無しさん mailto:age [皇紀2665/04/01(金) 16:42:30 ] Cocoaはやっぱり!
193 名前:デフォルトの名無しさん [2005/04/03(日) 16:03:44 ] CoreDetaに期待。Cocoa+Objective-Cはどんどん進化して欲しいね。 ttp://homepage.mac.com/mkino2/backnumber/2004_10.html#October%2020_1 ttp://www.hmdt-web.net/bbs/bbs.cgi?bbsname=mkino&mode=res&no=248&oyano=248&line=0 Mac OS X v10.4 Tiger ttp://developer.apple.com/ja/macosx/tiger/index.html Xcode 2.0 ttp://www.apple.com/jp/macosx/tiger/xcode.html QTKit ttp://blog.so-net.ne.jp/MyCometG3/2005-03-26-1 ttp://homepage.mac.com/mkino2/backnumber/2005_03.html#March%2025_1 ttp://slashdot.jp/journal.pl?op=display&uid=15678 Dashboard ttp://numata.aquasky.jp/programming/dashboard/dashboard.shtml
194 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 12:08:04 ] Mac欲しいなぁ・・・。やっぱWWDCが終わるまでは待ったほうが賢いんだろか。 スレ違いすまん。
195 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 16:11:01 ] PowerMacG5の最上位機種+メモリ8Gなら、今買ってもそれほど損は無いはず。 そんな金の無い俺は夏まで待ちますが。 これだけではなんなので、今Cocoa入門本としてヒレガス本を買うなら原著の第二版がお勧め。 日本語版=第一版は開発環境として10.2を対象としてるので情報が古い。 第二版では10.3=Xcodeに対応して、、GNUstepについてもちょこっと触れていたりする。 著者のページからサンプルも落とせるので、第一版を持っている人なら、 新旧のソースを見比べるだけでも勉強になるかもしれん。 www.bignerdranch.com/products/cocoa1.shtml Xcode2.0対応の第三版も出そうな気もするが参考までに。
196 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 17:16:32 ] OSXは欲しいがMacは要らん
197 名前:194 mailto:sage [2005/04/17(日) 19:32:51 ] 会社でPowerBookG4+XserveG5使ってるんですが、自宅にも欲しいなぁと思って。 ヒレガス本ってのは黄色い表紙でべスパだか何かが写ってる奴ですよね? いまこれを読みながらCocoaプログラミングの勉強中です。Unixyな使い方だけでは もったいないかなと思って。で、ますますMac欲しいなぁ、と。 >>196 OSXってMac以外で動作可能なんですか?自宅にラック導入する予定はないのでXserveはパスね。
198 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 21:06:02 ] >>197 OSXはMacだけ。 GNUstepなら他のプラットフォームでいろいろいける。 が、i18n関係はまだまだダメなので(w 是非そっち方面にも助力を
199 名前:デフォルトの名無しさん [2005/05/20(金) 02:03:50 ] [self age];
200 名前:age [2005/05/26(木) 17:04:19 ] 教えてください NSString* str = [NSString stringWithUTF8String:"test"]; で取得した str は 何時 [str release]; すべきなのでしょうか?
201 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 17:34:52 ] >>200 そもそも release するべきでない。
202 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 08:55:32 ] >>201 たしかにそうだけど、NSAutoreleasePool のインスタンスが用意されてなかったらメモリリークの悪寒。
203 名前:age [2005/06/06(月) 10:00:13 ] 教えてください ワーカスレッド(POSIXスレッド)内で NSString* str = [NSString stringWithUTF8String:"test"]; を行った場合、どのNSAutoreleasePoolが使われるのでしょうか?
204 名前:203 [2005/06/06(月) 10:59:18 ] 続き... NSAutoreleasePoolは、スレッド毎に独立しているのでしょうか?
205 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 15:51:59 ] なんか釣られてるような気もするけど… >>203 ,204 NSAutoreleasePool はスレッドを生成するときに、プログラマが自分で用意するものだと思われ。 要するにスレッドごとに存在する必要あり。 ttp://developer.apple.com/samplecode/SimpleThreads/listing3.html とか見るよろし。 もっと言うと、AppKit(NSApplicationMain) を使ってない場合は、メインスレッドにも NSAutoreleasePool は(自動では)用意されないんで、この場合も自前で用意してやる必要がある。 GNUStep で遊ぼうとして、その罠にはまった人間が約一名(おれだが)。 あと、ワーカスレッドってのが何を意味してるのかわからんが、pthread_create とかで直接 POSIX スレッドを生成して云々って話なら、やめておいた方が良さそう。つーかその場合、おそらく NSAutoreleasePool がそもそも使えない気がする。 素直に NSThread 使いましょう。 それはそれとして、203(200 も?)の名前欄の age はコテハンなのか、それとも age てるのを主張したいだけなのか、それが問題だ(そうか?)
206 名前:200 [2005/06/06(月) 16:24:46 ] SimpleThreadのURL、ありがとうございました。参考になりました。 やはり、POSIXスレッドは使わないほうがよさそうですね...。
207 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 16:43:03 ] >>205 > つーかその場合、おそらく NSAutoreleasePool がそもそも使えない気がする。 ttp://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Concepts/AutoreleasePools.html Note: If you are creating secondary threads using the POSIX thread APIs instead of NSThread, you cannot use Cocoa, including NSAutoreleasePool, unless Cocoa is in multithreading mode. Cocoa enters multithreading mode only after detaching its first NSThread. To use Cocoa on secondary POSIX threads, your application must first detach at least one NSThread, which can immediately exit. You can test whether Cocoa is in multithreading mode with the NSThread class method isMultiThreaded.
208 名前:205 mailto:sage [2005/06/06(月) 16:53:51 ] >>207 ごめん、英文読み違ってたか。 あらかじめ NSThread を使って一つスレッドを生成しておけば、Cocoa が multithreading mode ってのになって、その後は POSIX スレッドでも Cocoa(NSAutoreleasePool 含む)を使えるようになる。 マルチスレッドモードかどうかは、NSThread クラスの isMultiThreaded メソッドで確認できる。 …ってな理解で良い?
209 名前:デフォルトの名無しさん mailto:sage [2005/06/08(水) 23:34:03 ] NSなんちゃらと ネイティブは混ぜるな危険。pthredとか。
210 名前:デフォルトの名無しさん mailto:sage [2005/06/10(金) 00:30:51 ] >>209 >混ぜるな危険 確かにおれもそう思うが、Objective-C++ で書かれたコードとか読んでると、なんかどうでも良くなってくるぞw
211 名前:age [2005/06/15(水) 23:34:33 ] 教えてください 以下のように作成された NSString* selstr は何時解放するべき、まはた何時解放されるのでしょうか? %pの出力は毎回変わりますが、メモリリークは起きていないようです。 - (IBAction)button1Click:(id)sender { SEL sel = @selector(button1Click:); NSString* selstr = NSStringFromSelector(sel); NSLog(selstr); NSLog(@"%p", selstr); }