Objective-C
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
05/01/29 16:18:12本当に興味が無いOSだよねw
Macでの標準的な言語であるObjective Cのスレすら無いし。
過去にはあったんだろうけど。
0159142
05/03/10 17:25:10Mix-in の概念は実装の追加のみに限定されるものでもないと思うんだが…
Java の interface や Objc の protocol も Mix-in な型として使われ
る場合があるし,それも Mix-in と呼べると思うけど…
Mix-in について解説したドキュメントでいいのないかな?
Mix-in評論家(?)の日記くらいか?
ttp://www.rubyist.net/~matz/0128.html
0160デフォルトの名無しさん
05/03/10 22:45:410161デフォルトの名無しさん
05/03/11 00:02:58テキストがあれば、それの最初から最後まで。
心配しなくてもそんなに分量はない。
けと、その都度実践していかないと(つまり、ソースを作っては試す)
身にはつかない。
0162デフォルトの名無しさん
05/03/11 01:11:55でも、多くの人がポインタで挫折すんだよねー。
まぁ、今は良い参考書もいっぱいあるから、昔に比べりゃ全然楽だ。
0163デフォルトの名無しさん
05/03/11 01:40:32話てるのか何か良く分からないんです。
0164デフォルトの名無しさん
05/03/11 01:42:50>でも、多くの人がポインタで挫折すんだよねー。
それは数あるポインタの解説書がことごとく間違っていたり
嘘言っていたりして学習者の混乱を増長させているから。
0165デフォルトの名無しさん
05/03/11 02:05:420166デフォルトの名無しさん
05/03/11 02:23:510167デフォルトの名無しさん
05/03/11 03:15:52において、
「*(p+i)はp[i]って書き方もできます」って仕様は余計だと思う。
これのせいで、ポインタと配列は全く別ものなのに、
なんだか同じもののように初心者を混乱させている希ガス。
0168デフォルトの名無しさん
05/03/11 05:20:100169デフォルトの名無しさん
05/03/11 08:06:55Tigerを買うかどうかは、そこの評価次第なんだけど。
0170デフォルトの名無しさん
05/03/11 11:37:37一番の売りはUML風味のクラス図自動生成とかでない?
その辺実際どの位使えるのかは確かに気になる所。
Rationalのアレ並みにとは言わんけどさ(w。それなりにパパッと書いたのがぐりぐり動いてるよーだといいな
0171デフォルトの名無しさん
05/03/11 12:40:57もう少し、Cocoaプログラマが増えてもいいと思うんだが。
Macを再評価する動きというのは無いものか。
0172デフォルトの名無しさん
05/03/11 13:18:32Developing with Core Image
http://developer.apple.com/macosx/tiger/coreimage.html
0173デフォルトの名無しさん
05/03/11 13:20:47EOFっていうベースがあるから、
そこそこ行けそうな気がする。
なんで別けたんだろうね。
0174デフォルトの名無しさん
05/03/12 00:27:53Carbonだと思っていた。
0175デフォルトの名無しさん
05/03/12 01:33:37Core Image使うところは、.mにせにゃならん。
0176デフォルトの名無しさん
05/03/12 15:12:42ポインタは難しい的な先入観もたせるのも
どうなんだろうなって感じだよね。
何の先入観も無しにやってみて難しくて挫折するのは
しょうがないとして、余計な先入観のせいで混乱しちゃうと
ちょっとね。
0177デフォルトの名無しさん
05/03/12 17:22:57わかる人は両方をちゃんと使い分けてるけど、説明される時はこのうち1つ側の説明しかされないし
0178デフォルトの名無しさん
05/03/12 23:38:06もしかしてメモリやアドレスの概念を出さずに説明されるのだろうか?
またはCPUやメモリの概念程度の基礎知識すらない奴がC言語を学んでいるのか?
0179デフォルトの名無しさん
05/03/12 23:56:55少なくともオレらは。
0180デフォルトの名無しさん
05/03/13 03:34:30って、今頃そんなのをやれっても無理あるよなぁ。
0181デフォルトの名無しさん
05/03/13 08:58:190182デフォルトの名無しさん
05/03/13 12:13:040183180
05/03/15 01:26:13いや、漏れではなく今頃の人に教えるのにアセンブラって言うのも厳しいもんがあるよなぁと。
漏れなんかはTK-80をガキの頃に親から奪って遊びだした世代なんで最初はハンドアセンブル
しかなかったんだよな。
今だとそういういい教材はあるけれどなかなかにニッチだしなという事で。
0184デフォルトの名無しさん
05/03/15 06:31:470185デフォルトの名無しさん
05/03/15 07:40:380186デフォルトの名無しさん
05/03/15 08:54:28今でもアセンブラの知識は役に立つが、
全くもってスレ違い。
0187デフォルトの名無しさん
05/03/15 23:12:17>>158のテクニックの実装方法について、
まじめに考えてみようぜ
0188デフォルトの名無しさん
05/03/16 00:16:110189デフォルトの名無しさん
2005/03/27(日) 01:31:22Object をNSObjectにしたいけど、リンクでエラーがでます。
Cocoaのライブラリを探してリンクすればいい、という発想はおかしいですか?
0190デフォルトの名無しさん
2005/03/27(日) 02:04:35つけとけ
0191デフォルトの名無しさん
2005/03/27(日) 11:41:020192デフォルトの名無しさん
皇紀2665/04/01(金) 16:42:300193デフォルトの名無しさん
2005/04/03(日) 16:03:44ttp://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
0194デフォルトの名無しさん
2005/04/17(日) 12:08:04スレ違いすまん。
0195デフォルトの名無しさん
2005/04/17(日) 16:11:01そんな金の無い俺は夏まで待ちますが。
これだけではなんなので、今Cocoa入門本としてヒレガス本を買うなら原著の第二版がお勧め。
日本語版=第一版は開発環境として10.2を対象としてるので情報が古い。
第二版では10.3=Xcodeに対応して、、GNUstepについてもちょこっと触れていたりする。
著者のページからサンプルも落とせるので、第一版を持っている人なら、
新旧のソースを見比べるだけでも勉強になるかもしれん。
http://www.bignerdranch.com/products/cocoa1.shtml
Xcode2.0対応の第三版も出そうな気もするが参考までに。
0196デフォルトの名無しさん
2005/04/17(日) 17:16:320197194
2005/04/17(日) 19:32:51ヒレガス本ってのは黄色い表紙でべスパだか何かが写ってる奴ですよね?
いまこれを読みながらCocoaプログラミングの勉強中です。Unixyな使い方だけでは
もったいないかなと思って。で、ますますMac欲しいなぁ、と。
>>196
OSXってMac以外で動作可能なんですか?自宅にラック導入する予定はないのでXserveはパスね。
0198デフォルトの名無しさん
2005/04/17(日) 21:06:02OSXはMacだけ。
GNUstepなら他のプラットフォームでいろいろいける。
が、i18n関係はまだまだダメなので(w
是非そっち方面にも助力を
0199デフォルトの名無しさん
2005/05/20(金) 02:03:500200age
2005/05/26(木) 17:04:19NSString* str = [NSString stringWithUTF8String:"test"];
で取得した str は 何時 [str release]; すべきなのでしょうか?
0201デフォルトの名無しさん
2005/05/26(木) 17:34:52そもそも release するべきでない。
0202デフォルトの名無しさん
2005/06/06(月) 08:55:32たしかにそうだけど、NSAutoreleasePool のインスタンスが用意されてなかったらメモリリークの悪寒。
0203age
2005/06/06(月) 10:00:13ワーカスレッド(POSIXスレッド)内で
NSString* str = [NSString stringWithUTF8String:"test"];
を行った場合、どのNSAutoreleasePoolが使われるのでしょうか?
0204203
2005/06/06(月) 10:59:18NSAutoreleasePoolは、スレッド毎に独立しているのでしょうか?
0205デフォルトの名無しさん
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 てるのを主張したいだけなのか、それが問題だ(そうか?)
0206200
2005/06/06(月) 16:24:46やはり、POSIXスレッドは使わないほうがよさそうですね...。
0207デフォルトの名無しさん
2005/06/06(月) 16:43:03> つーかその場合、おそらく 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.
0208205
2005/06/06(月) 16:53:51ごめん、英文読み違ってたか。
あらかじめ NSThread を使って一つスレッドを生成しておけば、Cocoa が multithreading mode ってのになって、その後は POSIX スレッドでも Cocoa(NSAutoreleasePool 含む)を使えるようになる。
マルチスレッドモードかどうかは、NSThread クラスの isMultiThreaded メソッドで確認できる。
…ってな理解で良い?
0209デフォルトの名無しさん
2005/06/08(水) 23:34:030210デフォルトの名無しさん
2005/06/10(金) 00:30:51>混ぜるな危険
確かにおれもそう思うが、Objective-C++ で書かれたコードとか読んでると、なんかどうでも良くなってくるぞw
0211age
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);
}
0212デフォルトの名無しさん
2005/06/16(木) 00:56:120213デフォルトの名無しさん
2005/06/16(木) 09:33:10何時解放されるのでしょうか?
[pool release] のときでしょうか?
0214デフォルトの名無しさん
2005/06/16(木) 19:35:27ちみはメモリ管理のことがよくわかってない風味なので、
ttp://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html
ここのページを隅から隅まで読む事をお薦めする。
あと、厳密には NSAutorelasePool がするのは『解放』じゃなくて、
単に release メソッドを呼ぶことだ。
もしそのインスタンスに対して、どこかで retain が使われてれば、
実際には解放されないじょ。
0215211
2005/06/16(木) 22:19:09http://www.tech-arts.co.jp/macosx/macosx-jp/htdocs/4600/4618.html
0216デフォルトの名無しさん
2005/06/17(金) 08:00:310217デフォルトの名無しさん
2005/06/17(金) 09:25:520218デフォルトの名無しさん
2005/06/17(金) 12:30:560219デフォルトの名無しさん
2005/06/17(金) 13:28:02ドキュメントなさ過ぎ。
0220デフォルトの名無しさん
2005/06/17(金) 16:00:270221デフォルトの名無しさん
2005/06/17(金) 17:16:170222デフォルトの名無しさん
2005/06/17(金) 21:06:130223デフォルトの名無しさん
2005/06/18(土) 02:36:580224デフォルトの名無しさん
2005/06/18(土) 02:59:22ありすぎ>ある>なさすぎ>ない
こうじゃないの?
0225デフォルトの名無しさん
2005/06/18(土) 03:00:21ある>ありすぎ>なさすぎ>ない
理由
過ぎたるは及ばざるが如し
0226デフォルトの名無しさん
2005/06/20(月) 20:48:52しすぎ>>する>>しない>>しなさすぎ
|| || || ||
潔癖性 普通 不潔 ゴミ屋敷
な?
0227デフォルトの名無しさん
2005/06/21(火) 03:29:370228デフォルトの名無しさん
2005/06/21(火) 13:46:44しすぎ>>する>>しない>>しなさすぎ
|| || || ||
ヤリチン 一般人 インポ 童貞
0229デフォルトの名無しさん
2005/06/22(水) 14:48:28O b j e c t i v e - C は 童 貞
0230デフォルトの名無しさん
2005/06/22(水) 14:57:34ありすぎ: » 1
ある: ≥ 1
なさすぎ: ≈ 0
ない: = 0
0231デフォルトの名無しさん
2005/06/22(水) 16:43:070232デフォルトの名無しさん
2005/06/22(水) 17:18:55NSWindowのkeyDown:やperformKeyEquivalent:ではcommand等の修飾キー"だけ"押したのはわからないぽいんですが、
どうすれば取れますか?
0233デフォルトの名無しさん
2005/06/22(水) 21:11:390234232
2005/06/22(水) 21:32:41というか自己解決
ファーストレスポンダで
- (void)flagsChanged:(NSEvent *)theEvent
をオーバーライドですね
NSResponder見てませんでした
0235デフォルトの名無しさん
2005/07/08(金) 02:17:14抽象クラスがないとかクラス変数がない等の点が
Javaに比べていまいち使いにくい気がするんですが
これは漏れの認識不足のせいですか?
0236デフォルトの名無しさん
2005/07/08(金) 02:26:550237デフォルトの名無しさん
2005/07/08(金) 15:49:13アクセス指定子はないけどヘッダに書いたら公開扱いで書かなかったら
非公開扱いってことにして使うんだろう.
# 実際にはヘッダに書かなくても呼出せるはずだから private ではないけれど…
抽象クラスはあったら嬉しいかもしれんがなくてもそれほど困らない.
逆に Java に出来なくて ObjC に出来ることとして category 使って既存クラス
にメソッド追加したり override したりとかがある.
コンパイル時の静的型チェックのゆるさとか考えても全体的に Java よりも
柔軟でプログラマ任せの言語になってると思う.
#というより Java が堅すぎとも言えるけど…
0238デフォルトの名無しさん
2005/07/08(金) 21:46:06認識が不足しているのは
×誤 使いにくい
○正 使い慣れない
という部分だな
0239デフォルトの名無しさん
2005/07/28(木) 21:55:330240デフォルトの名無しさん
2005/07/29(金) 01:44:57保守する暇があるなら新Mac板のCocoaスレの質問に答えてあげてよ!
0241デフォルトの名無しさん
2005/07/29(金) 02:34:540242デフォルトの名無しさん
2005/08/08(月) 20:39:10Xcode 1.5でコンパイルしたら10.2.8ではもう動かなくなってしまいました。Xcodeからコンパイルして10.2.8でも動くようにするオプションなどはありませんか?
0243デフォルトの名無しさん
2005/08/09(火) 01:03:32っている設定がカスタマイズのところにあったはず。
それを入れた上で、ビルド設定を見直せばいけるのではないだろうか。
すまんがいまMacが手元にないので確認できない....
0244デフォルトの名無しさん
2005/08/10(水) 20:45:09非常に参考になりました。どうもありがとうございます
0245デフォルトの名無しさん
2005/08/19(金) 20:08:31Delphiの話なんですが、リンクするだけで確保と開放の組み合わせ数が一致しているかどうか検出できるライブラリがあります。
開放洩れがあると、アプリの終了時に警告ダイアログが出ます。
似たような事をCocoaアプリで行う方法を知っている方は居ないでしょうか?
# Fundationでコマンドツールを作った時は標準出力に開放洩れ警告が出るので、組み込みで機能があるような気もしています。
0246デフォルトの名無しさん
2005/08/22(月) 00:57:00http://www.big.or.jp/%7Ecrane/cocoa/7000_cocoaNote/cocoaNote_050424.117.pdf
0247デフォルトの名無しさん
2005/08/22(月) 13:25:16ありがとうございます。
MallocDebugは以前から使っていますが、終了時点で内部を歩けなくなるので、開放洩れの確認には向いていないと思います。
# WindowやDocument単位では出来ますけど、それもすごい手間が必要です。
単純に、「確保が500回で開放が480回なんで、20個どっかにリークしてるよん」みたいな情報が欲しいと思っています。
0248デフォルトの名無しさん
2005/08/23(火) 07:19:21ふざけるな
0249デフォルトの名無しさん
2005/08/24(水) 01:40:030250デフォルトの名無しさん
2005/08/26(金) 13:21:01ここにちょこっと紹介されている→ ttp://webkit.opendarwin.org/blog/
0251デフォルトの名無しさん
2005/08/26(金) 20:37:33使ってみました。
実行中のプロセスに対して使うコマンドであるようです。
0252デフォルトの名無しさん
2005/08/28(日) 01:01:36[]が嫌い
0253デフォルトの名無しさん
2005/08/28(日) 01:03:460254デフォルトの名無しさん
2005/08/28(日) 01:28:510255デフォルトの名無しさん
2005/08/28(日) 01:40:56あの表記とCocoaのおかげでクラスと構造体の違いとかオブジェクト指向という
考えとかにピンと来た。
Objective-Cのあの記法は「Cのオブジェクト指向拡張なんだ」という発想から
来てるんだろうね。Cという割とマシンに近いレイヤーと、オブジェクトの
メッセージのやり取りのレイヤーを分ける、みたいな。逆にC++のCに習った
記法は「Cは本当はこうあるべきだ」みたいな発想からなんだと思う。
>>254
というわけで、[]とったらただのCになるようにしたかったからああいう風に
なったんじゃないかな。
0256デフォルトの名無しさん
2005/08/28(日) 11:25:19最近ちょっとあっちのクラスがどーなってるのか気になって仕方ない(w
0257デフォルトの名無しさん
2005/08/28(日) 16:58:070258デフォルトの名無しさん
2005/08/28(日) 17:45:16■ このスレッドは過去ログ倉庫に格納されています