1 :
名称未設定 :
01/12/06 18:47 ID:UIgOtQvo Cocoaはやっぱり!を見て真似してソフトを作ったは良いが、 オリジナルを作ろうと思ったら、全然その先に進めない人集まれ! 親切なプログラマーさんが暇なときだけ教えてくれる(かも?)
2 :
名称未設定 :01/12/06 18:54 ID:z6hH4M3e
≡ ∧_∧ ≡≡ ( ´∀`) ♪2げと〜 ≡≡≡ ( つ┳つ ≡≡≡ | |┃| ≡≡ .(_ )┃.) ≡ (◎) ̄))
3 :
名称未設定 :01/12/06 18:55 ID:ZpLub0c6
スレタイトル、センスいいね。
5 :
名称未設定 :01/12/06 19:10 ID:z6hH4M3e
「はじめてのMacOS X Cocoaプログラミング」注文しちゃったよ。 昔Cの勉強してたけど、10000行超えるようなコードは書いたこと無いんだよね。 これ読んでもっかい挑戦だ!( ゚∀゚)
6 :
名称未設定 :01/12/06 19:27 ID:CwFiPPqg
>>5 期待してるよ
例に漏れず漏れはCocoaはサパーリ
7 :
名称未設定 :01/12/06 19:40 ID:eId31z5L
ここは初心者向けのスレなの?
8 :
名称未設定 :01/12/06 19:45 ID:TsDU4gkB
「ココアはさっぱり」と言われれば「もりながっ」って答えたい。 8年くらい昔少しだけ専門行ってた時プログラムやったけど、できるかな。 プログラム自体好きだったけど。 本屋で本見るとさっぱりだよ。 本の値段も高いから買って全く役に立たなかったら嫌だしなぁ。
9 :
1 :01/12/06 20:34 ID:UIgOtQvo
うぅ、気が利かなくてごめんなさい〜 一応、初心者スレッドです。 初心者が臆することなく書き込みできそうなとこがなかったので… 運が良けりゃ、たまに偉い人が教えてくれたいいな〜(なんて)。 それがダメでも、初心者同士で意見交換や情報交換などができれば。
10 :
名称未設定 :01/12/07 13:15 ID:p7nvK9Cr
11 :
1 :01/12/07 23:15 ID:TF1dyLQO
12 :
名称未設定 :01/12/08 02:52 ID:4wpfTS3n
>>11 ほんとうに「さっぱり」なあたりが(・∀・) イイ!
漏れも一から勉強しなおす気になったよ。頑張りましょ。l
13 :
名称未設定 :01/12/08 05:03 ID:2ez7njLT
>(もうちょっと勉強してからスレッド立てるべきだったよホ) そんなの関係ないよ。そんなルールないよ。
14 :
名称未設定 :01/12/08 09:55 ID:+1QaEIjW
本持ってなくても何かできるんですかね? Devツール入れると。だったら入れてみたい気もする。 アンインストールも簡単にできるんでしょうか? もしかしたら「さっぱり星人」な俺でも意欲が湧いてくるかなと思って。 あ〜サッパリサッパリ
15 :
名称未設定 :01/12/08 10:10 ID:1SvFTjv0
>>1 おお!なんかほっとするスレ。
ワシも「割り勘プログラム」まではなんとか…、そのあと、
「『M-V-C』にも挑戦してみよう。」ってあたりで、雲行きがあやしく…。
よく分からなくなって来た。普通の人ならチョチョイなのかもしれんけど。
今「はじめてのMacOS X Cocoaプログラミング」で1から勉強中。
お互いがんばろーぜぃ!
みんな、Objectiv-Cでやってるのね。 Javaで始めましたって人いないかなー
17 :
名称未設定 :01/12/09 10:03 ID:vXlsE6x2
何をどうすればいいのか分からないけどDEV.TOOL入れてしまった。
18 :
名称未設定 :01/12/09 10:41 ID:cRainVg4
1には自分の環境とかやってることとかHP起ち上げてのっけて欲しいな。 それをまねするから(w
19 :
名称未設定 :01/12/09 10:48 ID:nSnAU3v1
20 :
名称未設定 :01/12/09 12:49 ID:kUHabwW6
みんなCの基本的なところは理解してる? そうでないとObjective-Cはわけわかめになっちまうぜよ。 簡単なCの入門書を買いに本屋へゴーだ。 そこんとこクリアしてるみんなは広文社の荻原本を読むべし。
21 :
名称未設定 :01/12/09 12:57 ID:N98/nbvO
今でている中では 中村さんの「はじめてのMac OS X Cocoaプログラミング」 が最も良い。 と思う。(細かいところでケチつけたいところはあるが この分野では本が少ないから、ほかに選択が)
22 :
名称未設定 :01/12/09 12:59 ID:rN04cE8D
>>21 昨日買っちゃった!
まだちょっとしか読めてないけど、イイよ。
23 :
名称未設定 :01/12/09 13:18 ID:y6Qo201P
>>22 俺も買ったよ。
SimplePaint動かしたときにゃ、感動したよ。
24 :
名称未設定 :01/12/09 13:29 ID:ssuLOQYJ
どこにも載ってないんだけど、NSTextView に 横スクロールを付けるにはどうしたらいいんだろう?
25 :
名称未設定 :01/12/09 13:31 ID:N98/nbvO
> 簡単なCの入門書を買いに 日下部の本はやめておけ(プログラマー板参照)
26 :
名称未設定 :01/12/09 14:54 ID:EQKH42MC
>>24 /Developer/Examples/AppKit/TextSizingExample/
はどう?
>>19 ありがとう、やっぱりそうか。
Cocoaはやっぱり!も見てみるよ。
みんなが薦めてる本も探してみよう。
>>20 かなり昔に専門学生のころにちらっとだけやったことあるんだけど。
陳腐な家計簿ソフトなんか作った。
環境が全然違うし、サッパリ記憶喪失になってるけどやったら何とかなるかなぁと思って。
28 :
名称未設定 :01/12/09 17:38 ID:u6k66qnr
29 :
1 :01/12/09 18:40 ID:p4JYEYIP
うわ〜、人がたくさん居るよ! (涙
今日やっと「はじめてのMacOS X Cocoaプログラミング」買ってきました。
「Cocoaはやっぱり!」もWebより詳しくて良い感じでした。(鶴薗さん、今度買います。)
でも、水曜日まで触れない…
>>16 解説してらっしゃる方がObjectiv-Cばっかりですからね。
私みたいに真似からはじめる場合には、そういったページのやり方に従う他ないし。。。
>>18 もし誰かの参考になるのならホームページ立ち上げてみてもいいかもしれませんが、
ホントにプログラムは全く何も知らないので、あんまり意味ないかも。。。
>>24 どこにも載ってないですね。
/Developer/Examples/AppKit/TextSizingExample/
のプロジェクトをどうやったら使えるのかもまだ解らない段階ですし。。。
30 :
名称未設定 :01/12/09 20:11 ID:/qqlE3pB
あー、XREA取ったけどもてあましてるから
提供したい気分。
>>1 #つーか漏れがやろうかな
31 :
1 :01/12/09 21:40 ID:p4JYEYIP
>>30 私に提供せずに是非ともやって下さい〜
私もたぶん(へっぽこ)ホームページ作りますけど、
ちょっとでもできる人がページ作った方が効果的なのは当の然ですよ。
32 :
30 :01/12/09 22:23 ID:/qqlE3pB
>>1 (
>>31 )
ワシは「できない人」だし、やるとしても
OpenFirmwareに手ぇ出したりForth処理系作ったりと
変則的なことばっかやるので役に立たんのです。
やっぱここは
>>1 さんが…ハァハァ
33 :
>>19でござる。 :01/12/09 22:37 ID:Pf13PAWV
>>20 の方も書かれているが
広文社「MacOS Xプログラミング入門Objective-C」萩原剛志著
もかなりおすすめ。
「はじめてのMacOS X Cocoaプログラミング」
も持ってるが俺は前者の方が見る頻度が遥かに高い。
特に頻繁に使うであろうクラス(NSString、NSArray、NSDictionary、NSValue等)
の機能を詳しく解説してある。これのおかげで
かなり助かってるよ。
34 :
名称未設定 :01/12/09 22:43 ID:v1mvOdGr
>>19 のサイト落として、見ながら少しやってみた。
やっぱ面白い。本買おうかな。
Cの入門書もあったほうが良いのか。
家で探しても見当たらなかったし。まぁ、マターリやってみようかな。
35 :
名称未設定 :01/12/09 23:33 ID:bPEzjXii
>>24 遅レスでスマソ。
NSTextContainerのsetWidthTracksTextView: を読んでみ。
このへんは理解するのが、けっこう難しい。
とりあえず、
NSText(NSTextView)
NSLayoutManager
NSTextContainer
のAPIドキュメントと、
/Developer/Documentation/Cocoa/ProgrammingTopics/TextOverview.pdf
に、ざっと目を通しておくといいよ。
36 :
35 :01/12/09 23:53 ID:bPEzjXii
>>24 一応、サンプル。
_textView --> NSTextView
_scrollView_ --> NSScrollView
にIBでつないでおいて。
//------------------------------------------------------------
[_scrollView setHasHorizontalScroller:YES];
[[_textView textContainer]setWidthTracksTextView:NO];
[_textView setVerticallyResizable :YES];
[_textView setHorizontallyResizable : NO];
[_textView setAutoresizingMask : NSViewNotSizable];
//------------------------------------------------------------
これで、ならない?
37 :
名称未設定 :01/12/10 00:39 ID:JBdeGu5a
>>1 さん 遅ればせながらありがとう
自分にもちょうどいいスレでうれしい!!
こないだ、Cocoやぱのページ全部プリントアウトしたよ。
もちろん背景はプリントしないにチェックで(笑
途中まで寝転びながら読んだところで、まだ手は動かしていないけど・・・
38 :
名称未設定 :01/12/10 00:52 ID:Ifyerwcb
>>37 手を動かしながら学習しませう。
それがプログラミングの勉強の基本です。
かといって、右手を上下に動かすのもいけ(略
漏れ、Cの本って「C言語ポインタ完全制覇」(前橋和弥著、技術評論社) しか持ってない…。 なんにせよ、Cの知識は絶対必要になってくるので一冊くらいは持っていた ほうが良いと思います。 漏れはそこをさぼったので苦労してる(w
40 :
名称未設定 :01/12/10 01:07 ID:KcjBLYen
>>38 はげどう。
サンプルソースは全部、手で打ち込むこと。
コピペはだめだよ。
わからないときはデバッガで一行ずつ追いかけたりする。
さらに高等テクとしてソースをいじくったり削除したり
して、どう変化するか確認するとベターだよ
41 :
_38_ :01/12/10 01:11 ID:Ifyerwcb
>>39 おぉ。n_kiteさん。iTteyoshi使わせてもらっています。いつもどうもです。
ワシはC言語はアスキーの「C言語入門」(まんま)で勉強してます。
Lispプログラマーだったんで、C (ObjC) 使ってると全部括弧でくくったり
全てのデータをポインタで表したくなってきます。もうだめぽ。
>>40 ですな。
42 :
37 :01/12/10 01:30 ID:JBdeGu5a
>>38 ,40
どうも。もちろんそれは承知してます。
Objective-Cというのは初めてなんで、ざっとでも
(せめて書き方の流儀ぐらいは)わかっていないで
いきなりソースを書き写しても覚えられないですからね…
Cは以前少し勉強したので、
前にRealbasicのプラグインを試しに作ったことがあります。
インターフェースの部分はRBにまかせて
自分のやりたいこと作るのに専念出来たので面白かった。
Cocoaにもそんな期待をいだいてよいものなのかな?
43 :
名称未設定 :01/12/10 01:57 ID:5nNBf0kR
X68000のX-BASICとJAVA Scriptを経てCocoaではじめて Cに触れておりますが。 何て使いやすいんだ・・・。
44 :
名称未設定 :01/12/10 02:18 ID:wVSuveKf
このスレをきっかけにCocoaにマジで取り組んでみる。 プログラム板見ると、Javaって意外と将来性がないようだし、 C+ObjectiveCで勉強したほうがいいのかなと思います。 しかし皆さん、どんなソフトウェアを開発するんでしょうか?
45 :
名称未設定 :01/12/10 02:29 ID:2ipODMyL
Objective-Cはそんなに恐れるほど拡張仕様はありません。 一週間もあれば覚えられるとか、いや半日もあれば、とか。 Javaを覚えるよりも楽です。もちろんC++とは比較するも恐ろしいほど楽です。
46 :
名称未設定 :01/12/10 02:47 ID:vWXH43PK
基本的には、C言語に、メッセージバッシングと後なんかを 付け加えた言語すね。<Obj-C 一応、その手の会社で仕事してますが、Obj-Cに慣れると 他の言語がカナーリきついっす。
47 :
名称未設定 :01/12/10 02:52 ID:aPAB6Hqw
>>44 逆に言うとObjective-Cに将来がある?
ま、Appleが生き続ければそうなんだけど、
他のプラットフォームでObjective-Cを推奨している
ところってないでしょ?
Cocoa-Javaだったら、Pure Javaに逃げる道があるん
だから、そっちの方がスキル的にはいいんじゃない?
48 :
名称未設定 :01/12/10 04:04 ID:n8P2R7nF
このところ、WebObjectsがトテーモ気になるんだけど、 javaなんだよな…。前はObj-Cだったのに。 CocoaからWOに行くつもりだったのに…。
49 :
名称未設定 :01/12/10 04:29 ID:ArYU4rVq
つーか、言語の乗り換えを恐がるんだったらプログラミングをするなと言いたい。
50 :
名称未設定 :01/12/10 05:11 ID:EQdQWHaB
「cocoaはやっぱり」を買いました。 消費税入れたら約4000円。 スナップショットの少なさ、誤字脱字、言い回しの分かりに くさなど・・・本当にこれで、理解できるのか心配になりま した。 半分しか使ってないページとか結構あるし。ウェブ版の更新 に期待します...。
51 :
c言語もさっぱり :01/12/10 05:33 ID:28sTwOXB
本屋の棚を見てるとC言語にはCとC++とC#があるようですが、 C++とC#って何て発音するんですか?(Cはただ「しー」でよさそうだけど) 関連スレじゃこんな初心者質問ムリそうなのでココに書きました。
52 :
名称未設定 :01/12/10 06:04 ID:4pWNmHr6
>>51 C++ → シーインクリメント
C# → シーシャープ
53 :
名称未設定 :01/12/10 06:11 ID:oDBUoLRe
ぷらぷらだと思ってた。>C
54 :
名称未設定 :01/12/10 06:11 ID:oDBUoLRe
ありゃ、ぷらぷらガ表示されてない。
55 :
C言語もさっぱり :01/12/10 06:19 ID:28sTwOXB
>>52 どうもっ。胸のつかえが取れた気分です。
これで本屋でも他のスレ読んでても脳内で発音できます。
さて、参考書でも買ってきてC言語のお勉強始めようかな。
"バカでもわかるC言語"みたいなのがあればいいんだけど。
はぁぁ、Cocoaまでの道のりは遠そう…。
56 :
名称未設定 :01/12/10 08:44 ID:eo7kq38i
私もちょっくら合気道とプログラミングに興味はあるんですが、 OS Xで始めようと思ったらObjective-C(Cocoa?)がセオリーなんですよね? んで、Obj-Cを順よく理解するためにはCの基本を知っておかないと駄目、と。 でも、前の方がおっしゃるように、プログラミングってただ参考書を読むだけじゃなくて サンプルのコードを打ってみたり、いろいろと実践が必要でしょう? 恋愛と同じで。 だとすると、Cの本を読みながら、OS X上でそういったコツコツした事を やらないと進めないと思うんですが、果たしてOS XでCの修得って可能なのですか? 初歩の初歩からノロマなスピードで一緒に勉強できるようなサイトを どなたかが作っていただけるのなら、ぜひとも参加させておくんなまし。イソイソ...。
57 :
名称未設定 :01/12/10 09:11 ID:6FvdARe4
>>56 Cの習得は可能。むしろOS 9やウィソよりはよっぽど手軽に
勉強できるよ。
Project BuilderでCのプログラムを作ることもできるしね。
新規プロジェクト->Standard Toolを選択。
58 :
名称未設定 :01/12/10 10:50 ID:Ey9Ny/hq
初めての((^_^)/シー
59 :
55 :01/12/10 10:55 ID:TtJkIKr/
>>56 >ノロマなスピードで一緒に勉強できるようなサイトを
それいい。参加したい。
教える立場じゃなくて、一緒に模索していこう。って感じなら
僕が作ってもいいんですけど…今ヒマだし。
つーか、とりあえず別スレでやった方がいいかな?
【めざせCocoa!】Mac OS Xで始めるC言語:超初心者用スレ
みたいな。
60 :
名称未設定 :01/12/10 11:50 ID:xRtRwxDt
>言語の乗り換えを恐がるんだったらプログラミングをするなと言いたい 同感。どっちかというとAPIやクラスライブラリの学習のほうが よっぽどしんどい。言語の問題なんて、ちいせえちいせえ
61 :
名称未設定 :01/12/10 15:34 ID:A769NVTL
C++って、シープラスプラスで通じると思う。 それと、C#はCなのかと問い詰めたい。
62 :
名称未設定 :01/12/10 15:49 ID:lK7PVSqU
> C#はCなのか 全然、違いますけど
63 :
名称未設定 :01/12/10 16:05 ID:3Co3Uws2
オレ、システム開発やってるんだけど、ソフト業界ではC++は「シープラプラ」と 発音してるよ。 いま、「MacOS X Cocoaプログラミング」読んでます。 昔、ネクストステップで勉強がてら簡単なアプリを作ってたんだけど、 ネクスト社がアップルに買収された時点で知識を封印。で、忘れてしまった。。 CocoaやるならCの知識は必須だね。C++とかでオブジェクト指向の概念が 分かってればなお有利。 まあ、一番難しいのは、なんのソフトを作るか、なんだけどね。
64 :
名称未設定 :01/12/10 16:45 ID:oGKqSjaM
すいません。Cocoaのことで質問なんですけど、 NSOutlineViewのOutletにDelegateがなくて、 項目をクリックした時に何か動作をするというのができません。 どうすればいいのかわかりますか? 厨房的な質問でスマソ。
65 :
名称未設定 :01/12/10 16:55 ID:oGKqSjaM
すいません。質問なんですけど、 NSOutlineViewのOutletにDelegateがなく、 項目をクリックしたときに何か動作をするというのが出来ません。 誰か教えてくれると有り難いです。(根本的に間違ってたらスマソ)
66 :
名称未設定 :01/12/10 16:57 ID:oGKqSjaM
ああ〜二重書きしてしまいました。 本当にすいませんでしたsage
67 :
名称未設定 :01/12/10 17:20 ID:X0o4fZha
>>65 おそらく、外側のNSScrollViewを選択しているとおもわれ。
何回かクリックして、infoパネルのクラス名を確認してみ。
68 :
Cocoa初心者 :01/12/10 18:03 ID:9aLHnLe8
プログラマー板で質問したけど、あそこ 日下部とか近藤とかいう人が荒らしていて むちゃくちゃでレスがつかなかったんで、ここで再度。 Cocoaだけど、 HELPの実装なんてどうなってんの? 見たところヘルプメニューがshowHelp:をファーストレスポンダに送って たぶんアプリのshowHelp:メソッドを呼ぶことになってんだけど、 で、アプリ側でどう対応するわけ? itWatchというフリーソフトのソースを見ると、ヘルプメニューと NSObjectを継承した別のオブジェクトを接続さして、 そっちのオブジェクトのshowHelp:メソッドをたたいていて、 その中は直接、Help Viewerを呼ぶようにしているみたいだけど。
69 :
名称未設定 :01/12/10 18:18 ID:oGKqSjaM
>>67 たしかにNSScrollViewを選択してました(藁
どうもありがとうございます!
70 :
名称未設定 :01/12/10 18:28 ID:rFnqgqvM
>62 それを51に伝えてやってくれ
71 :
C言語もさっぱり :01/12/10 18:48 ID:TtJkIKr/
とりあえず八重洲のブックセンターに行って、
「新C++言語入門:ビギナー編」というのを買ってきてみました。
チョイスの理由は、明らかに初心者向けだったのと、DOS前提じゃなかったこと、
比較的新しい文献だったこと、あと"ベストセラー"って書いてあったから。(^_^;)
この時点で大間違いじゃなきゃいいんですけど…。
で、
>>57 さんに言われた通りProjectBuilderを開き、
本の一番はじめの"Hello, C++"と表示させるコードを打ってみました。
動いた!う、嬉しい。初めてHTMLでリンク張れたときみたいな気分。
無事C++の第一歩を踏み出したようです。
で、気付いたのですが、こんな簡単なコードでもC++ Toolじゃないと
(Standard Toolだと)動きませんよね。
ということは、CとC++っていうのは根本からかなり違うものなんのしょうか。
Cocoaに辿り着くには、いずれCについても別に学ぶ必要あり?
それと、できたプログラムをProjectBuilder以外の何か(Tarminalになるのかな?)で
実行するにはどうしたらよいのでしょうか。
うぅ、アホな質問ばっかですみません。
どれくらい恥ずかしい質問してるのか自分じゃわからない…。
>>62 ,70
了解です。
72 :
>71 :01/12/10 20:17 ID:slnafUv/
ひょっとして林晴比古のやつですか?(^_^; 正直言って外れです。 今からでも遅くないので柴田望洋の本にしときなさい。 #ちなみにCとC++は大幅に重なる部分はあるものの、別物です。 #Objective-Cは前者にSmallTalkの要素を付け加え、 #オブジェクト指向言語として拡張したものです。
73 :
72つづき :01/12/10 20:20 ID:slnafUv/
さらに付け加えるとC++はCをObjective-Cとは別のアプローチで拡張したものです。 Carbonでのプログラミングはこいつでやることになりますが、 正直言って私はお近づきになりたくないです。
74 :
57 :01/12/10 20:53 ID:Zr8zsJZI
>>71 えーと、そのC++じゃないと動かないコードというのは、
cout << "Hello World\n";
みたいなやつですよね?
このコードはC++で拡張された機能を使っているのでC++じゃないと
動かないんですよ。
で、CだけでもHello Worldを表示する方法はあります。こんな風に。
printf("Hello World\n");
って、PBでStandard Toolプロジェクトを開くともうmain.cに
Hello Worldプログラム書いてあるじゃん!(^
75 :
C言語もさっぱり :01/12/10 21:04 ID:TtJkIKr/
>>72 そうです。林晴比古と書いてあります。ハズレでしたか…トホホ。
Amazon.comで柴田望洋検索してみた所、
いろいろ出てきましたが、これのことでしょうか?
http://images.amazon.com/images/P/4797311517.09.LZZZZZZZ.jpg (つーか表紙だけじゃわかりませんよね。スマソ。)
>>73 んん?つ、つまり実際Cocoaで使うのはC++だけど、
これからプログラミング始めるような人にはオススメでないよ。
ということでしょうか?
ちなみに始めようと思った理由は、特に「将来のスキルにしたい」とかではなく、
趣味で何かMac OS Xで動くものが作れたらな、という程度なのですが。
そういうことではなくて?
>>74 >cout << "Hello World\n"; みたいなやつですよね?
その通りです。
>って、PBでStandard Toolプロジェクトを開くともうmain.cに
>Hello Worldプログラム書いてあるじゃん!
あ、それくらいは見て理解できましたよっ。
76 :
:01/12/10 21:23 ID:ohYhy9S4
>実際Cocoaで使うのはC++だけど Cocoa使えるのはObjective-Cとjavaだけです。
77 :
名称未設定 :01/12/10 21:23 ID:i/Tx2Np/
>>75 ノー!ノー!(オレは73ではないが)
cocoaで使うのは「基本的には」Objective-C!
(もちろんC,C++,Javaも使えるが)
なので結論からいうと、Objective-Cをマスターしよう!と考えるのが吉かと。
で、その為の方法としては、Cの勉強から入るのが近道かもね!
というのが今までの話の流れです。
>>72 ,73さんと重なるけど、
Objective-CはCが分かれば比較的マスターしやすいとか…。
C++は普通のプログラマの人でも、できれば敬遠したいというかなり複雑なものらしいです。
それぞれ流れはあるものの、全く別物と考えてもいいらしいとか…?どうなんだろ?
もう目は通しただろうけど「cocoaはやっぱり」のページに
簡単なObjective-Cについての説明が載っています。
ttp://www.big.or.jp/%7Ecrane/cocoa/
オンラインのやっぱりを見て遊んでみたけど、結構面白い。 1割も理解できてないけど。 まぁ、積み木を組み立ててよろこんでるようなレベルだな。(w ウェブ見ながら作る(っていうか打ち込む?組む?)のは面倒だけど(広い画面が欲しくなるよ) 一通りやっぱりで遊んでみるよ。馴染んでくると思うし。
79 :
名称未設定 :01/12/10 22:01 ID:GXM94tis
Objective-C、C++、JAVAのいずれを学ぶにせよ、 Cの基本的な知識は役立つ。 まず、Cの基礎を押さえておくのが吉と思われ。 で、Cocoaを学ぶつもりならば、Objective-Cがベストであろう。 JAVAの方がマイナーなObjective-Cよりもつぶしが利くと思ったら おお間違いと思われ。 他でのJAVAとCocoaのJAVAは作法がかなり違ってくるし、 結局はAPIがものを言う世界だから、Cocoa上でのJAVA経験は 必ずしも通用しない。
80 :
名称未設定 :01/12/10 22:12 ID:OZAecysn
Cocoaはさっぱり!なのに、いきなりテキストエヂタを作ってみようとする俺はアフォですか? Cocoaはやっぱり!は参考にしつつ...ってーのがいいかな、と思ったのですが...
81 :
>75 :01/12/10 22:14 ID:slnafUv/
うん、その本。 プロのプログラマ何人かに聞いてみたけど結構評判いい。 あとオライリーから出てる"Practical C Programming"(邦題忘れた)とか ダイテル先生の本を薦められた。<Cの入門書 日本のものだとほかには前橋和弥さんの本が評判いいみたい。
82 :
名称未設定 :01/12/10 22:22 ID:X0o4fZha
>>68 ちなみに、オレは試してないけどさ。
NSApplicationのAPIドキュメント(showHelp:)と
NSHelpManagerをざっと読んだ感じでは、バンドルに
含めたヘルプファイル(html,rtfとか)をinfo.plistで指定
しとく、とかそんな感じじゃねーの?
アプリ側で対応というより、フレームワーク側で面倒みる、
ってこと(<になってると楽でいいね)
83 :
81つづき :01/12/10 22:23 ID:slnafUv/
で、Cの基本を押さえたあとREALbasicをいじってみたら 以前判らなかった使い方まで理解できるようになってたんだな、なぜか。 プログラミング言語は複数知っておいたほうがいいということなのかもしれない ・・・って、このスレと関係ないか。
84 :
名称未設定 :01/12/10 22:24 ID:C1z1yJoJ
>>80 アフォじゃないよ。「Cocoa+Java」という本を読んでごらん。
めちゃ簡単にエディタができてしまう。
ただ、自分独自のエディタを作りたいと思ったら
そこからイバラの道だけどね。
>>84 Javaすか!
できればObj-Cがいいなあ..と思ってるんですが、どでしょ?
86 :
名称未設定 :01/12/10 22:41 ID:X0o4fZha
>>85 84でもないし、「Cocoa Java」も読んでないけど。
「Cocoaはやっぱり!」にもNSTextViewを貼り付けた
簡単なエディタのサンプルがなかった?
たぶん、84の言ってる「簡単な」ってのはそのレベルだと。
87 :
84 :01/12/10 22:57 ID:C1z1yJoJ
違う、違う、Javaにしなくてもいいよ。
>>85 そうそう、そういう意味
>>86
88 :
名称未設定 :01/12/10 23:00 ID:C1z1yJoJ
中村さんの「はじめてのMac OS X Cocoaプログラミング」 の第10章にもエディターがあるな
89 :
名称未設定 :01/12/10 23:17 ID:X0o4fZha
>>88 やっぱ、あのへんはInterface Builder触ってて一番わかりやすくて
感動させる効率のよい部分だから。
Interface BuilderでNSTextViewを置いたウィンドウと同じものを
すべてコードで書くと、また別の意味で感動する(藁
90 :
名称未設定 :01/12/10 23:26 ID:5dJYIc3i
「Cocoaで作るMacのGame」 とかいう参考本でないかなぁ。( ´ー`) < 米国ニハ アルンダケドネ…。
91 :
C言語もさっぱり :01/12/10 23:55 ID:TtJkIKr/
丁寧なレスありがとうございます>みなさん
>>77 つまり、CとObjective-Cはある程度関係あるもので、
C++はその二つと比べれば別のもの。
で、Cocoaに使うのはObjective-Cだから、まずCを勉強しなさい。
間違ってもC++ではないですよ。…ということでよろし?
なんか出だしから間違いだったぽいぞ>俺
>>79 JAVAは興味を抱いたことがないので何も知りません。
挑戦してみることはないと思うので安心(?)してください。
>>81 了解です。それではあの本にしてみます。
"Practical C Programming"というのも見かけたと思います。
「へぇ〜、洋書の翻訳本まであるんだ」と思ったので、おそらくそれかと。
と言うことで、まずはあした本を取り替えてもらいに行ってきます。
これからもトンチンカンな質問を連射すると思いますが、
どうぞよろしくお願いします。
それでは。
92 :
名称未設定 :01/12/11 00:27 ID:XEAEC9ef
Cocoaはさっぱり、モリナガ〜♪
93 :
>91 :01/12/11 00:30 ID:K2PAyYvb
Objective-C = C + SmallTalk(味付程度) C++ = C + 超巨大な何じゃこりゃな拡張
94 :
名称未設定 :01/12/11 00:35 ID:K2PAyYvb
そういや真紀俊男さんがCocoa本の準備をしてるっつーうわさがあるな。
95 :
名称未設定 :01/12/11 02:13 ID:zvWy+MRK
C++も、Cとは密接な関係を持つし、まったくCと同じように使うことも出来るんだけど、 Cでない部分にハマリ始めると泥沼の傾向がある。
96 :
名称未設定 :01/12/11 14:21 ID:ApmWeT9R
>>94 真紀俊男さん、たぶんこのスレに2つ程書き込んでいるyo!
97 :
名称未設定 :01/12/11 14:52 ID:VK7th30C
さっき初めてプログラマ板見に行ったんだけど、void氏 のカキコって本物が来てるの? うーむ、信じられん…
98 :
名称未設定 :01/12/11 15:16 ID:O2z2kuXX
いろいろ言語のことでレスされてるけど、一番大事なのは言語自体を 覚えるということより、「プログラミングの概念」を覚えたほうがいいよ。 で、言語は概念を覚える手段のひとつ。 プログラミング初心者にはCがお勧め。そんな難しくないです。 で、C++は「オブジェクト指向の概念」を覚えるのに役立つ。 まあ、Cとあまり変わらないけど。関数の記述が多少違うのとか、 純粋仮想関数の概念があるとかくらいかな。 OS XでCを覚えるなら、普通にUNIX(Terminal)環境でソース組めばいいよ。
99 :
名称未設定 :01/12/11 16:01 ID:vJj9K4jc
>>98 で、C++は「オブジェクト指向の概念」を覚えるのに役立つ。
C++のオブジェクト指向の考え方はかなり偏ってるから薦められないなあ。
C++をするくらいなら、JAVAを学んでもらいたいところ。
今だ!100ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ っつーか、Cocoaはやっぱり!にアクセスできないのは洩れだけですか?
あなただけのようです。
と、言ってはみたものの、見れてません。
103 :
名称未設定 :01/12/11 16:59 ID:EnOqlAdi
>98 >OS XでCを覚えるなら、普通にUNIX(Terminal)環境でソース組めばいいよ。 でも、Terminalって日本語使えないんですよね。 ローマ字でやるのかな?
104 :
名称未設定 :01/12/11 17:26 ID:WsH54Ok5
<98 たしかに文法的にはCはそんなに難しくないですよね。 でもいざアプリを作ろうっていうことになると、 どんなのから作り始めればいいのか、コードは何行くらい が普通なのかなど、なかなか先に進めません。 とりあえず、ゲームのソースなど見つけてきて勉強しようと 思っています。
105 :
ななし :01/12/11 17:35 ID:D9qvzp4a
>>104 まだゲームは無理
もっとはるかに簡単なものから始めよう!
>>CocoaYApply index.shtmlが壊れてる漢字。 warikan1.htmlとかはアクセスできました。
108 :
C言語もさっぱり :01/12/12 00:15 ID:amtVZXBK
きのうの本、「明解C言語:入門編」に取り替えてきました。 著作の案内を見ると「入門編 例解演習」というのもあるようで、 きっとそのうちそちらも必要になりますね。 ひとまずこの本を見ながらいろいろ試して学んでいこうと思います。 Cocoaへの遠い道のりを再出発です。 >その後レスしてくださったみなさん 不精ですみませんが、まとめてありがとうございます。
109 :
名称未設定 :01/12/12 07:31 ID:TAfiMZTO
age
110 :
名称未設定 :01/12/12 10:50 ID:rxQ3gkFz
CocoaのHTMLエディタほしい〜誰かつくって〜、とかつぶやいてみる。 だって海外のソフトをOsakaフォントで使っても、イマイチ使いにくいんだもん。
111 :
98 :01/12/12 10:57 ID:bb2s/39i
>>99 オレ、C++やってるけどJAVAはやってない。
やっぱ、JAVAも覚えたほうがいいかな。
>>103 今の時点では、日本語は使えないですね。
なので、日本語の文字列を使わないで、プログラミングというのを覚えるために
簡単なソースコードを書いてコンパイルして実行、という一連の作業の確認等は
出来ると思います。
>>104 いきなりでCアプリを作るっていうのは、難しいですよね。
OS Xでアプリを作るなら、やっぱり本を読みつつCocoaで作るのが
一番だと思います。
はじめてのMac OS X Cocoaプログラミング オークションで安く落ちてないかな...
113 :
名称未設定 :01/12/12 18:33 ID:TAfiMZTO
>>110 mi使えばいいんじゃない?
違う質問だったらスマソ
114 :
名称未設定 :01/12/12 19:59 ID:HgPmq8q+
Cocoaはやっぱり森永
115 :
名称未設定 :01/12/12 20:13 ID:5mK1eh8V
>>108 その本はよさげですな。明日見てこよっと。
このスレ読んで、ちょっと低下気味だったやる気が復活したYO。
Cocoaはやっぱり!やADCにあるドキュメントを読むとオブジェクト
指向についてはよくわかるんだけど、「で、各々のオブジェクトはどう
作る?」てところでつまづいて、今はCやってるとこ。
会社のプログラマがくれた「プログラミング言語C 第二版」でやってる。
割とわかりやすいけど、訳文が硬くておすすめできないです。
前からperlはやってたけど、C始めてから、なんでperlが簡単って言わ
れるのか痛感したYO。
サゲ進行の方がいいのかな・・・。 >116 K&Rは原書の評判は抜群なのですが、邦訳は語訳が多いっす。(^_^;
118 :
名称未設定 :01/12/12 23:57 ID:pvsVpB4g
age
119 :
名称未設定 :01/12/13 22:11 ID:EaWkrq0/
ところでアップルはなんでドキュメントの邦訳をしないの? アップルが当然するべき仕事だと思うのだが。。。
英語も読めない奴はHyperCardでもいじってろってこった
あ、このスレの初荒し。
新バージョンのDevTools出てるね。
123 :
名称未設定 :01/12/13 23:29 ID:ATcsV0tS
124 :
名称未設定 :01/12/13 23:36 ID:ytSHSbRZ
125 :
>123 :01/12/13 23:38 ID:QYSYaH6a
おや、ついさっき落としたところだよ?<connect.apple.com とりあえず、AppleScript Studioがどんなものかみてみよう。
126 :
名称未設定 :01/12/13 23:39 ID:ATcsV0tS
>>124 あ、入れました。ぬりがとうございます。
127 :
名称未設定 :01/12/14 00:29 ID:z5F5MKfR
しつもーん. NSViewクラスを継承しているオブジェクトを,なんかのきかっけで 画面上から見えなくして,またべつのきっかけで見えるようにする のはどうやればいいの? どっちのきっかけにも最後にsetNeedsDisplayを使うのは分かったんだけど その前に消す/戻すの処理しなくちゃならないよね. Obj-CでもJavaでもどっちでもいいす.
128 :
名称未設定 :01/12/14 01:10 ID:Vm6nSIG+
>>127 そのViewのサブクラスを作って利用するのが一つの方法かな。
まずインスタンス変数としてBOOL型のフラグを追加し、そのフラグを
操作するメソッドもあわせて追加する。
で、-drawRect:をオーバーライドして、そのフラグがTRUEのときは
何もしないようにすればよい。
129 :
127 :01/12/14 01:18 ID:z5F5MKfR
>>128 レスありがとうです.
そうすると,NSViewクラスを継承しているオブジェクトを
Interface Builderで配置した場合はどうすればいいです?
書きわすれてすいません.
オーバーライドって,Interface Builderで配置した場合
無理くさいです.
130 :
128 :01/12/14 02:02 ID:Vm6nSIG+
>>129 あー、Interface Builderでありものの部品を配置した場合はそりゃ無理です。
128のやり方というのは、それらのサブクラス、例えばNSImageViewのサブクラスを
作って、カスタムビューとして配置することが条件なので。
でもってこのやり方って実はInterface BuilderからViewの設定ができないという
不便が伴う諸刃の剣、初心者にはおすすめできないって代物なんですよ(w
>>130 すっきりしました!本当にありがとうございます.
そうかなって思ってたんですけど,確証なくって.
さ,一歩前進だ!
単純にカスタムビューを一個おいて、カスタムクラスとして設定すればいいんじゃないの? ビューのサブクラスは問題なく配置できるはずだけど。
133 :
名称未設定 :01/12/14 06:41 ID:ZPRcMS8N
>>132 >>130 はたぶん、Info Panelで各種属性を設定できない、
と言ってるんじゃないかな?
でも、それなら、普通にNSImageViewを配置して、
Info Panel → Custom Classでサブクラスに変更
すれば、各種属性も設定できるけど。
134 :
名称未設定 :01/12/14 06:44 ID:ZPRcMS8N
それと
>>127 は単純にsuperviewからaddSubview,
removeSubViewを繰り返したんじゃ駄目なの?
135 :
127 :01/12/14 08:58 ID:Vm6nSIG+
>>130 ほんとだ。その方法で設定できる……。
すいません、逝ってきます。
>>134 その方法でいいと思います。
付け加えるなら、removeSubViewする前にviewをretainして、
addSubviewした後にreleaseする必要がありますね。
136 :
名称未設定 :01/12/14 17:15 ID:h5n5XT0L
どなたか初心者用のホームページ作成中の方、いらっしゃいますか?
137 :
名称未設定 :01/12/14 17:21 ID:ZPRcMS8N
>>136 初心者ってどの程度のレベル?
現時点ではむしろ、中〜上級者向けのページ・・・というと語弊があるけど、
もう少し突っ込んだ内容のページが欲しいとこなんだけど。
Appleのドキュメントも更新されたし、これからか。
138 :
127 :01/12/15 17:49 ID:q6JNjXnW
135はにせものです.
>>134 すいません.おしえてください.IBで,
MaiMenu.nibパネル(左下に表示されるやつ)でNSViewを継承している
なんかのクラスを選択して,そこにサブクラスを
つくりますよね.そうするとShow InfoのパネルでOutlet,Actionを
追加できると思うんですが,ここでNSViewのstaticメソッドと同じ
名前で登録すればオーバーライドできるんですか?
139 :
134 :01/12/15 23:20 ID:mdZTepHs
>>138 何か根本的な部分で勘違いされてるようですが・・・。
NSViewのAPIドキュメントにじっくり目を通してください。
それとPBとIBのドキュメントも。
Cocoaでプログラミングするのなら、ツールとフレームワークに
対する最低限の理解は必要です。
140 :
名称未設定 :01/12/16 00:03 ID:j2c1KXqj
勘違いじゃなくて,聞いてるんですよ. で,勘違いと言うならどこが? それを書いてね.
141 :
127,140 :01/12/16 00:04 ID:j2c1KXqj
142 :
128 :01/12/16 00:10 ID:zPQewlZG
135は128の間違いね。
>>138 IBでActionを追加することはメソッドをオーバーライドすることとは違います。
オーバーライドするには、ソースを出力してPBの方でコードを書き加えるしかありません。
143 :
名称未設定 :01/12/16 00:18 ID:nr+q6IkH
>>25 禿胴
あの日下部を知っているやつが、あの日下部の本を買うとしたらマゾだな。
144 :
139 :01/12/16 00:35 ID:aJy2ln16
>>140 だから、勘違いしてる人に聞かれても、質問自体が見当違いで答えようがないんだって。
>>142 の言ってるように、Actionの設定はメソッドのオーバーライドじゃないし、
そもそも、
>>134 でオレが書いた内容を実践するのにメソッドをオーバーライドする必要はないでしょ?
とりあえず、ドキュメント読みなよ。英語も高校生レベルだ。
145 :
127,140 :01/12/16 03:35 ID:j2c1KXqj
>>144 だからね,メソッドのオーバオライドがActionの設定でどうとか,
する必要かどうかなんて聞いてないの,分かる?
オーバライドの仕方を聞いてるの.
知らないなら反応するなっての.知ってるなら答えれ.
>>だからね,メソッドのオーバオライドがActionの設定でどうとか, オーバライドね.すまん. とにかくしらなきゃ,ドミュメント見ろとか言うならかまうな.
147 :
128 :01/12/16 04:17 ID:zPQewlZG
なんかギスギスしてきたな……。 もう少し言葉を選んだ方が良いと思われ。 >>メソッドのオーバーライド Objective-CでもJavaでも、サブクラスで祖先にあたるクラスが持っている メソッドを再実装すればオーバーライドされますが。
148 :
139,144 :01/12/16 06:18 ID:aJy2ln16
>>147 スレの雰囲気を悪くしてしまった、スマソ。
これから気をつけるよ。
149 :
148 :01/12/16 06:20 ID:aJy2ln16
sage忘れ。
>>127 横からすみません。
viewのretainというのはどのようにして行うんですか?
もしくは、どのへんのドキュメントを見ればだけでも
教えて下さい。
151 :
名称未設定 :01/12/16 21:50 ID:1Q5SCLkF
152 :
名称未設定 :01/12/17 16:56 ID:OX2QrjTv
ageます
153 :
名称未設定 :01/12/17 17:14 ID:JZXZpNjo
昔、子供向けのプログラミング(というオーサリング?)ソフトで Cocoaというのがありましたが、それとは全く関係ないのでしょうか。
154 :
153 :01/12/17 17:52 ID:JZXZpNjo
×という ○というか
全く関係ありません。
156 :
1 :01/12/18 12:07 ID:xyzSCoSR
遠回りかもしれませんが、C言語の基礎から勉強してます。 「はじめてのC言語 完全入門」塚越一雄著 はやくCocoaアプリ作りたい〜
>>156 基本的な構文覚えたらとりあえず付いてくるサンプルいじってみたら?
もちろんCの勉強も大事だけど、そればっかりやってるとつらいでしょ。
158 :
名称未設定 :01/12/19 06:35 ID:jtodLPdq
このスレがさっぱりさっぱり状態だな。
159 :
名称無設定 :01/12/19 12:11 ID:K+aJzShn
ファイルとして存在する画像を縮小してNSImageに乗せたいんですけど 既存のNSImageとかNSxxxImageRepだけで出来ますか? 縮小ってのは、縮小表示するんじゃなくて、 実際にサイズを縮小させてメモリ使用量を減らしたいんです。
160 :
名称未設定 :01/12/19 19:07 ID:UIDDcMdW
>>159 image = [ [ NSImage alloc ] initWithContentsOfFile:path ];
[ [ image bestRepresentationForDevice:nil ] setSize:size ];
newImage = [ [ NSImage alloc ] initWithSize:size ];
[ newImage lockFocus ];
[ image compositeToPoint:NSZeroPoint operation:NSCompositeCopy ];
[ newImage unlockFocus ];
[ image release ];
こんな感じでどうだろう。
新たに縮小後のサイズのNSImageを確保してそこに縮小した
画像を描画し、元のNSImageは解放するというやり方だけど。
161 :
名称未設定 :01/12/20 00:50 ID:LTCT3Vji
ええい、アクションゲーム自作が夢なのだが、誰かWindowsで HSPしか触った事の無い厨房でも解る、でべつーるでのゲーム 作成方法教えて下さい。 夢は置いとくとして、 1:貴様らの場合javaとobjective-cのどっちを 俺様にお勧めしたいと思われますか? 広文社:萩原さんのObjective-Cだけじゃ解らんぜい畜生め。 CについてはANSIを学んだが実績はない。 第一目標はマスクのついたアイコンキャラクターをカーソルで 動かせるところまでが目標なんだ。参ったか。 2:互換性取るとGLUTがいいとか聞いたけど、OpenGLって 2Dゲームに十分と思われますですか?つかネットでいろいろ 配付されてるGLUTソースもコンパイルできない厨房は どこからはじめればいいですか? 3:教えて君な俺は以後カキコ禁止ですか? まぁsageられたらとりあえず今月のバイト代でかたっぱし 本買ってやる畜生。
162 :
名称未設定 :01/12/20 01:10 ID:iHVti4TG
>>161 とりあえず、無理をしないで
MAC用のHSPをやったらいいんじゃない。
163 :
名称未設定 :01/12/20 01:14 ID:Ut44R1Ir
>>161 一番早いのは、まねることです。
ソースを公開してくれているアプリを片っ端から集めてきて、
まずは改造。そして、改造。一番目的に近いものを改造。
で、オリジナルアプリ作成に取りかかる。
サンプルが全てだよ。はじめから一からできると思うな。
ましてや、Cの経験がないのなら、なおさらだ。
C,C++知っていても、全て作ろうなんてかなり困難だぞ。
164 :
161 :01/12/20 02:01 ID:fH2DAvLy
>>162 >>163 お前らレスありがとうございます。
ソース探索はしてますよー。
MAC版HSP、色々いじくってます。なかなかいいっすけど、
このスレに書いた以上はCocoaでCにチャレンジしたい気分。
初めて手に入れたC及びJAVA開発環境…。
日曜プログラマーと名乗れるところに行きたいのもあるので
やっぱり本漁った上にデベツールのドキュメント全部翻訳に
かけた上でiTunesで再生します。
日本語ドキュメント、早く揃わないかなー…。
#厨房発言ついでに他機種GLUTソースのコンパイルの手順
ことこまかに解説してくれる方を激しくキボンしてみたり。
165 :
161 :01/12/20 02:52 ID:fH2DAvLy
166 :
162 :01/12/20 03:09 ID:iHVti4TG
167 :
161 :01/12/20 03:18 ID:fH2DAvLy
169 :
161 :01/12/20 03:23 ID:fH2DAvLy
…おなじ人のページだったみたいですね、俺の挙げたURL。 疲れだ、眠ろう。明日はバイトだし…。
170 :
名称未設定 :01/12/20 03:43 ID:zMVIP36z
>>161 口調も諦めずに続け通せ、コノヤロウ
お願いします
171 :
名称無設定 :01/12/20 10:53 ID:PjBe33QK
>>160 亀レスすみません
なるほど、勉強になりました。
早速試してみたいところですが、別口で予期しないオートリリース食らっちゃって
デバグ中です。
直ったら組み込みます。
ありがとうございました。
172 :
161 :01/12/20 23:49 ID:2tiMzyPz
>>170 いいかげん厨房臭いかと思いまして。いや、お願いされれば話は別
だがなこの野郎様。正直どこで不用意に怒りを買うか解らない口調
には生産性がないだろうが。へっ、いい歳こいてご指摘ありがとう
ございます。
Cocoaのソースってなかなか見つからないもんですねぇ…。
只今英語ドキュメント解読中。なにか作れるのはいつの事やら。
173 :
161 :01/12/20 23:52 ID:2tiMzyPz
>>168 様
そのノベルエンジンの場所教えて頂けましたら俺様多謝しやがって
いいですか?つまり教えて下さい。
連続投稿sage。
175 :
161 :01/12/21 00:06 ID:AUlOkAFu
176 :
名称未設定 :01/12/21 00:15 ID:RxfmzRFP
>>161 こんなページを探してたんす!
大変参考になりました。ありがとごじゃーます!
177 :
名称未設定 :01/12/21 00:23 ID:yc+O6/ad
Cocoaで赤ちゃんをつくってみたいのですが、どうやればいいのか 教えて下さい。男の子がいいかも。
178 :
161 :01/12/21 00:29 ID:AUlOkAFu
179 :
ED−209 :01/12/21 01:02 ID:amWzvaCh
180 :
168 :01/12/21 02:27 ID:vJgPoezX
181 :
161 :01/12/21 03:44 ID:AUlOkAFu
>>168 サンクス!下のNScriptは強烈に参考なり。
あれ?けど上のleafbsdってbsd用のソフトしかないなぁ。
ま、いいや。約束通り多謝の表現として小一時間に及ぶ小躍りを
決行いたします。
多分それで疲れて寝ると思うので今日はお休みなさい。
182 :
168 :01/12/21 20:52 ID:QSuSBqES
>>181 あ、説明不足でごめん。leafbsdのXLVNSってソフトには
OS X用のソースが含まれてます。
183 :
162 :01/12/21 22:57 ID:6SSkOtwC
>>161 /Developer/Examples/GLUTExamples/GLUTExamples.pbproj
に豊富にGLUTのサンプルがあるから試してみると良い。
gameglutと言うサンプルを参考にすれば第一目標は達成できると思う。
次に、GLUTのソースのコンパイルは
1.PBでプロジェクトを作成する。
2.GLUTのソースを入力する。
3.PBの「プロジェクト」メニューの「フレームワークを追加」で
OpenGL.frameworkとGLUT.frameworkを追加する。
4.ビルドする。
でOK。
あと、MacOS XのOpenGLは機種により問題がある。
以下のリンクを参考にしてくれ。
http://www.zdnet.co.jp/macwire/0112/18/n_ati.html
184 :
161 :01/12/21 23:28 ID:rM3gvHCi
>>168 様
なるほど。ターミナル作業なのねん。
ちょっと厨入って解らなかったけどとりあえず落ちたす。
説明が必要な俺こそごめんなさいだゴルァ!Thanx!
>>162 様様
互換性、問題ありありすねぇ…。
他機種でコンパイルできるよりG3で動かないのはヤヴァイよアプール…。
とはいえGLUTの勉強は無駄にはならんでしょう。精進させて
頂きやがりますね。
サンプルは気付いてたけど、まとめてコンパイルされる
プロジェクトをばらそうとして消えチャターよ…。
友人からまたデベツールコピってこよ(俺様は魔のプリインストール)。
風邪ヒイテ辛いよう。けど今日もソースとオ勉強ページ探しして
来やがりますね。
試しに一からマスコットアプリの製作初めてます。
まずはこの環境に慣れないとね。ココアはやっぱりのコピペは
秋田し。Objective-Cは萩原さんの本でなんとかする方向。
自己申告厨房の意地を見せてやる!できたらウプする方向ですが、
皆さん、叩く準備はよろしいですか?
185 :
名称未設定 :01/12/21 23:36 ID:qFr1ojDu
本日"Cocoa Programming for Mac OS X"がAmazon.co.jpより到着。 なかなか良い本だという前評判なので、 じっくりと読んでみる、と。
186 :
162 :01/12/22 01:44 ID:o0Km6tdq
187 :
161(184) :01/12/22 02:23 ID:0u9ucAE7
>>186 (162)
テトリスの方、ホントウニ(・∀・)イイ!!
うーん、ベージュG3所有しとる友人には見せられないっぽいなぁ。
なんとかして欲しいですやねこの野郎。
補足。GLの話ですやね。
189 :
名称未設定 :01/12/22 03:48 ID:nsjwGfC6
>186 テトリスとマインスイーパをダウンロードしました。 ソース付きだから勉強になるし、いい刺激にもなって有り難いです。 自分にとっての目標はこういう簡単なゲームを作るくらいの レベルなんですが、やっぱりかなりの量のコードを書かないと いけないんですね。 Obj-CはC++ほど難解ではないようだし、取り組んでみようかと いう気がしてきました。早くアプリケーションをアップしたいです。
190 :
161 :01/12/22 07:29 ID:TrzOtrLN
191 :
名称未設定 :01/12/22 07:49 ID:h7YvzcSq
192 :
名称未設定 :01/12/22 11:46 ID:uDf+7JYx
>>190 翻訳ソフトを使った手抜きだよ、あれは。
中身を読んで、がっくりした。
193 :
名称未設定 :01/12/22 11:58 ID:qDQ+vc/m
このスレに感化されてCからプログラミングを勉強しようと思い、 "C入門"という、そのものずばりなタイトルの本を借りてきたのですが、 ……ですが……。 ずいぶん古い本で、UNIX上でemacsを使うことを前提としてるのです。 で、たとえば次のようなコード main() { printf("My Name Is\n"); printf("Yamada Taro\n"); } を打ち込んでコンパイルしてみよう、といった感じで書かれているのですが、 具体的な手順が……どうにもこうにも……。 emacsを起動して上記の文字列を打つ、それ以降の手順がさっぱりdeath。 "デスクトップのアップルマークってどこですか?"ってのと同じくらいの アンポンタンな質問だとは自覚しております。ですのでアップルマークの位置で さえも、尋ねられたら答えるくらい親切な方がいらっしゃいましたら、 どうぞお助け下さい。 あと、上のようなコードはProjectBuilderに用いてもOKなのですよね?
195 :
名称未設定 :01/12/22 12:31 ID:uDf+7JYx
マジレスすると、その本は捨てたほうがいい
>>194
196 :
名称未設定 :01/12/22 12:35 ID:jpLUgrDb
>>194 そのくらいならTerminalから直接gccを使って
「gcc -o test test.c」とでもした方が簡単ですが、
ProjectBuilderでもプロジェクトを作成する際に
「Standard Tool」を選択すれば良かったと思います。
>>195 マジレスすると、図書館で借りてきたから捨てられないのれす。
いやホント、初心者の初心者にわかりやすい本ってなかなか……。
>>196 emacsを使うなら前提としてUNIXもわかってなきゃいかんですよね…。
gccですか。理解してからやってみようと思います。ぬりがとう。
敷居が高いわぁ〜。
198 :
名称未設定 :01/12/22 13:07 ID:jpLUgrDb
TerminalからGLUTフレームワークを使用するコードをビルドする方法 cc -o test test.c -framework GLUT -framework OpenGL -framework Cocoa -frameworkオプションを使えばどのようなフレームワークでも呼び出すことが出来ます。 リンクエラーが出たら必要なフレームワークが指定されていないということなので、 それらしいものを追加しましょう。 折角ProjectBuilderがあるのですからそれを使えばいいのだとは思いますけどね。
Cの本なら、技術評論社からでてる「C言語プログラマーズライブラリ」シリーズ はどうかなー? 漏れは「C言語ポインタ完全制覇」持ってるけど、なかなか分かりやすいぞ。 他のは著者が違うのでどうかしらんが。 Cocoaの話題ではないのでsage
200 :
名称未設定 :01/12/22 14:07 ID:5TFap2a+
>>197 図書館の本は古いのが多いからなー。
地道にサイトを探すほうがいいのがあるぞ
201 :
197 :01/12/22 14:17 ID:EQRxBxyp
ご助言下さってる皆様どうもです。 amazon.co.jpで探すと、技術評論社は割と理解しやすそうな本を出してますね。 初心者にとってはProjectBuliderの解説からして理解できない単語が多いので、 まずは地道にCのサイトを探してみようかと思います。 Cocoaはさっぱり、なサイトで、Cでぐったり、な話題を提供してしまって 申し訳なかったです。みなさんありがと。
202 :
↑ :01/12/22 14:18 ID:EQRxBxyp
サイト、じゃないや、スレ、です。スレ。
203 :
>199 :01/12/23 00:03 ID:4ljYMwN/
前橋さんの本なら初心者向けには 「C言語体当たり学習徹底入門」がよいと思われ。 ひととおりのことは押さえてあるし、 サンプルもかなり具体的なので判りやすいです。
205 :
161 :01/12/23 02:17 ID:Lb/osgPi
おー、情報が増えてきた。皆さんサンクスです!ウプする情報が
無いのが寂しい限りだ畜生めっ。
萩原氏のObjective-C本片手にいろんなソース読んでるんで
すが、appkit回りは
>>204 さんの最初のリンクでとりあえず
なんとかなってます。
皆さん、特に初心者の方々、今どういう資料や本を中心に
勉強してます?
やっぱりポインタうろ覚えじゃついてけないなぁ…。
>>199 さんのご紹介に預かってみようと思われますyo。
206 :
名称未設定 :01/12/23 10:05 ID:2Y+sxqh/
>>205 灯台もと暗し、というかHELPをひたすら
読みまくりですが。英語の勉強にもなる(?)し。
207 :
名称未設定 :01/12/23 11:56 ID:hn/I4Iiu
208 :
名称未設定 :01/12/23 14:13 ID:/45nh9rQ
ProjectBuilderでCocoaっていうのがロマンあふれてていいなと思う んですが、初めてのプログラミングとしては情報が少なくて厳しい ので、とりあえずWinのVisualBasicから始めています。 『プログラミング学習シリーズ・VisualBasic』みたいな、超初心者用の 丁寧なCocoa教本が欲しいです。萩原さんの本とかで言語の文法は 分かっても、その先に進むのが大変なので。
209 :
名称未設定 :01/12/23 14:40 ID:DMD5SORQ
> とりあえずWinのVisualBasicから せめてREALbasicにしておけ
210 :
名称未設定 :01/12/23 14:41 ID:DMD5SORQ
> 超初心者用の丁寧なCocoa教本が マジな話、書いて売れるものなら漏れが書いてもいいけど。
211 :
名称未設定 :01/12/23 15:24 ID:XedJNxwj
>>208 荻原本は文法より実際の用法に重点を置いてるよ。まだそんなに
読み込んでないのかもしれないけど。
Objective-Cって言語仕様としてはすごく単純な言語だと思う。
早い話、Cの文法とメッセージの考え方が分かってしまえばあとは
NSFoundationクラスの使い方を覚えるだけです。逆に言うとNS
Foundationクラスの存在なくしてObjective-Cは語れないという
くらいで、荻原本でも大半は文法ではなく同クラスの説明に終止
しています。
Cocoa(Appkit)に関してはやりたいことが出て来た時点でそれに
関係すると思われるクラスのリファレンスを読み、試行錯誤しな
がら使い方を覚えて行くのがいいのではないでしょうか。
あとAppleのデベロッパサイトに日本語のチュートリアルがあった
と思うので(名前はOPENSTEP...となっていますが問題なし)、
それを見ながら一応の流れを掴むとよいと思います。
212 :
211 :01/12/23 15:26 ID:XedJNxwj
おっと、FoundationクラスじゃなくてFoundationフレームワークでした。 寝ぼけてました。すんません。
213 :
211 :01/12/23 15:38 ID:XedJNxwj
さらに冷静になってみるとNSOjectクラスの事書いてたつもりが いつの間にかFoundationフレームワークに移行してるっす・・・。 恥ずかしいので忘れておくんなまし。
214 :
名称未設定 :01/12/23 21:42 ID:DJ8L6xDl
215 :
名称未設定 :01/12/24 00:27 ID:6pUNA26R
216 :
名称未設定 :01/12/24 19:51 ID:5uoAdgNX
>>215 花札マンセー!とてーも面白い!ゞ( ̄ー ̄ )
ソースが充実。最高。 ポインタ解らない。グルァ。 俺の買ってる猫の名前ギコって言うんです。 PBG4の上がお気に入りらしく、Cocoaで プログラミングできません。どうしたらいいですか?
218 :
名称未設定 :01/12/25 02:15 ID:JSbLojLR
>>217 俺が思うに217の人間性に問題があるから
ギコがゴルァと叫んでいるのだと思う。
> 384 名前: douzin (sage) 投稿日:01/12/25 01:46 ID:kWSZ4UU1
>だって俺大人だもん。天才だもん。
>集まる奴が程度低いだけだもん。ホントはQuarkだって作れるもん。
>カターリ逝きましょ。
219 :
名称未設定 :01/12/25 02:39 ID:RTAHgWZQ
ポインタ分からなくても、ほっといて先に進めば そのうち分かるようになると思うよ、たぶん。
220 :
名称未設定 :01/12/25 03:11 ID:CLx+PRXk
しかし初心者スレのわりに、あんまり具体的なコードについての 質問が出てこないねー。 基本的にこの手のスレはそういうのが増えた方が活気が出るんで、 遠慮なく質問して欲しいところなんだけど。
221 :
名称未設定 :01/12/26 18:45 ID:bQLPLS1i
>215 いいですねー。でもiMacなので本格的にProjectBuilderを 使うことができません。Cocoaのために新しいMacを買おうかな。
何でiMacだと使えないの?
224 :
名称未設定 :01/12/27 04:11 ID:P1Q84tYp
ありゃ、ページがベージになっている。 スマン。
226 :
名称未設定 :01/12/29 01:02 ID:QfCyifo1
NSTextViewのビューの中の文字とかを全て消去するには どうしたらいいのですか?
227 :
名称未設定 :01/12/29 02:12 ID:oZpXVzHZ
>>226 いくつか方法はあるけど、最も安直なのは、
[myTextView setString:@""];
みたいに setStringメソッドを使う手でしょう。
ちなみに setStringは NSTextViewの親クラスである
NSTextのメソッドなので注意。
228 :
名称未設定 :01/12/30 15:23 ID:pZQK2/C2
ヘルプのやつ、ようやくわかった。 Info.plistにNSHelpFileというキーを埋めて、 そこにヘルプファイル名を指定するのです。 実際は、それ以外に雑用がいろいろありますけど、 ようやく正解にたどりつきました
229 :
名称未設定 :01/12/30 16:19 ID:ceMZ9wwS
>>226 textViewというインスタンス変数だったとして、
[[textView textStorage] deleteCharactersInRange:NSMakeRange(0,[[textView textStorage] length])]
230 :
名称未設定 :01/12/30 22:20 ID:TAHiea++
ageついでに俺もとりあえず初めて見ようと思う。 1年ほど前ラマ本の正規表現で遭難したDQNが手を出して いいものなのかなぁ。
232 :
名称未設定 :01/12/31 20:39 ID:kLictL67
むしろ最初っから正規表現を「ラマ本で」理解できた奴は ガンジー。
233 :
名称未設定 :02/01/03 00:45 ID:rwWgbdQW
激しく寂れてるが しうりょう?
234 :
名称未設定 :02/01/04 00:36 ID:NRKOljec
他のプラットフォームだと GLUT を include するときに, #include <GL/glut.h> だったんだけど,Mac OS X だと, <GLUT/glut.h> なんね. シンボリック・リンク貼ったり,いろいろ試したけど, 一般的な上の方の記述でコンパイル通すことできんかった. なんか,GLUT.framework ディレクトリ下にいろいろ入っている構造で, どうしていいかよくわからん.
235 :
名称未設定 :02/01/04 00:42 ID:gwcBcfdF
プログラミング初心者です。 気になって仕方がないので、ご存知の方は教えてください。 Foundationフレームワークのなかに、 ANSI-Cの標準ヘッダはすべて含まれているのでしょうか? printf()やrand()といった関数が使えるところをみると、 すべて含まれているようにも見えるのですが、 実際のところどうなんでしょう?
236 :
名称未設定 :02/01/04 13:46 ID:5yQhs05g
>>235 最初からインクルードされているから明示的にインクルードしなくてもいいよ
Obj-Cだし、import使う流儀にしる!
238 :
名称未設定 :02/01/06 12:35 ID:+SguerUL
239 :
名称未設定 :02/01/06 17:22 ID:nZi+I3Tt
テキストフィールド [myOutlet setStringValue:@"あいうえお"];
240 :
239 :02/01/06 17:25 ID:nZi+I3Tt
すみません、途中で文章が切れてしまいました テキストフィールドを使って、 [myOutlet setStringValue:@"あいうえお"]; が文字化けするんですが、 このままではだめなんでしょうか?
@""では日本語が使えません。(7bit-ASCIIとして扱われてしまう) どうしても日本語を使いたいなら、 [ myOutlet setStringValue:[ NSString stringWithCString:"あいうえお" ] ]; とでもするしかない。 ちなみに本来ならこういう定数はマルチリンガル対応にするためlocalizable.stringsファイルを作って そこに文字列を定義し、NSLocalizedString()などで取得するのがCocoaアプリとしては正しいんだけどね。 こちらのやり方はヤパーリでも見て調べてください。
242 :
名称未設定 :02/01/06 19:07 ID:K8TtG11u
MAC上のクライアントソフトからUNIXサーバ上のDBにアクセスするような プログラムを書きたいのですが、PostgresqlやMySQLのodbcドライバfor cocoaみたいなのはありませんでしょうか。 ちょっと調べたらなさそうなのですが、そういう場合は cocoa−java-jdbc-DBMS といった接続を行うのがセオリーなんでしょうか。
243 :
239 :02/01/06 20:33 ID:nZi+I3Tt
>>241 ありがとうございます。
マルチリンガル対応方法を調べてみます。
244 :
名称未設定 :02/01/13 06:00 ID:R6foHVOz
保守
246 :
名称未設定 :02/01/13 10:21 ID:1rfA2/gm
ProjectBuilderWOって何よ。
WO==Web Objects では?
248 :
234 :02/01/14 04:19 ID:0AK71GTF
>>234 の件,自己解決したっス.
コリで,OS X でコンパイルするときだけ
include 文を変えなくても済むっス.
249 :
名称未設定 :02/01/17 12:27 ID:5jxG0a9M
CocoaのフレームワークからOpenGLを使う方法を憶えたいのですが、 OpenGL関係の書籍が見つからず困っています。 良い本や良いサイトをご存知でしたら教えていただきたいのですが…。 (LearningCocoaを検討中です)
250 :
名称未設定 :02/01/18 00:59 ID:Akt9yWdr
NSOpenGLViewのdrawRectをオーバーライドして、そこで OpenGLコールする。以上。
251 :
名称未設定 :02/01/19 01:59 ID:f0v7LBKk
Cocoaはやっぱり!森永
252 :
249 :02/01/19 11:36 ID:yJYMV/BZ
>>250 べりぃサンクスです!
これでOpenGLの学習が出来ます(^-^)
簡潔な説明、ありがとうございました。
253 :
名称未設定 :02/01/26 17:17 ID:lPd41uN3
【新・mac】 新・ProjectBuilder が消えたー。
254 :
ゆみ :02/01/26 17:19 ID:8r2wyPVU
ほんまや。dat落ちが早くなってる?
オブジェクトC・・・・ 誰がくめるんだろうか・・・ 今更C++を捨てろと? ビルダーの日本語周りはくさっとるし・・・
256 :
◆PKROHWpg :02/01/27 02:06 ID:RJ8yFE0V
JavaとCocoaを勉強したくて、DeveloperToolsをダウンロードしたまでは 良かったのですが、InterfaceBuilderを立ち上げたときに出てくるパレットが、変なんです。 使い方のWebとか見ても、普通、部品のアイコンが出てきてその部品を 「Window」にDrug&Dropしますよね? ところが、僕のInterfaceBuilderの場合は、AppleScriptのアイコンが、上にあり、 その下に青い立方体がパレットのまん中にあるだけ。しかも、Drag&Dropできず。 いろいろメニューとか触って見たのですが、できません。再インストールもやりました。 他のWebにもいって調べたのですが、駄目です。 解決策を知っておられる方、どなたかいらっしゃいましたら、是非ご教授いただきたいのですが。
>>256 パレットのタイトルバーの下には AppleScript 以外のアイコンは
並んでないの?
258 :
◆PKROHWpg :02/01/27 02:32 ID:RJ8yFE0V
>>255 Objective-Cだったら、俺も含めて使えるやつはたくさんいると思うぞ。
てか、C++使いなら基本的なとこは一日あればマスターできる。簡単。
しかも今はObjective-C++になってて、既存のC++コードも混在できる。
捨てる必要なし。
これらの事実から見ても255はよくわかってないんだと思われるんだけど、
念のため、ビルダー(Interface Builderのことだよな?)のくさったとこ
ってのをを教えてくれ。
260 :
名称未設定 :02/01/28 03:37 ID:GsAngID9
>>256 Tools->Palettes->Customize Toolbar
で追加できるはず
「はじめてのMacOS X Cocoa プログラミング」を購入しました。 素人が通販で\4,800-もする本を購入するのには勇気がいりましたが、 500ページを越えるボリュームにも関わらず、とっても丁寧、且つ分かり やすそうですので頑張って読破しようと思っています。わくわく。。
>>261 がんばりや。
つまったらここで書いたらええ。
263 :
261 :02/01/30 00:02 ID:z5tjRORi
>>262 ありがとうございます。
今日は65ページまで読みました。63-65ページで「ん??」ってなりましたけど、
気にせず読みすすめては復習ようと思います。
この本はスクリーンショットが沢山あって、素人が躓きそうな箇所はきっちり
フォローしてくれているので勉強になります。楽しいです。
このスレは最近停滞気味だから、 きみの新歩状況とか書いても誰も文句は言わないと思うよ。 どんどん進めてがんばりや〜
漏れからもがむばれぇ そしてその本がいらなくなるぐらいマスターできたら その本を漏れ(以下略)
266 :
261 :02/01/30 20:36 ID:z5tjRORi
140ページ、7章のデリゲートに入りました。
でも、読むことはできても飲み込めていないのでコード丸写しです(泣
何も見ずに書けるようになる日が来るんでしょうか、、、ううっ。
>>265 いいですよ。そのかわり私に手取り足取り…(以下略)
誤植ない? リゲートとか
268 :
261 :02/01/30 21:15 ID:z5tjRORi
>>267 あ、はい。今から読みますので注意深く見てみます。
ADCのサイトからDeveloper Toolsをダウンロードしたのですが、
本のスクリーンショットと若干UIが違う(改良されている)んですね。
>>268 いいなあブロードバンド。
CDに焼いておくってくれよ〜
270 :
261 :02/01/30 23:43 ID:z5tjRORi
>>269 CD-RWを贈ってもらえれば(以下略)
…もう止めます。。スマソ。
271 :
261 :02/01/31 21:34 ID:gILGLGrV
はぁー。やっと約半分読み終えましたー(T▽T) 237ページの誤植らしき所でしばし休憩(w はやく11章に入って12章のサーバ・クライアントアプリケーションの 所まで行きたいです。
>>271 ちゃんと作りながらやってる?
だったらいいけど。
サンプルのソースをコピペして、 わーい動いたー、ってだけで済ませているに100レディース4
274 :
261 :02/02/01 13:15 ID:rw9hPKNI
>>272-273 いちおう全部書いてますが、コピペしてるに等しいところも沢山あります。
最後まで読んでサンプルも動かせたら、あと2回、最初からやり直そうと思っています。
275 :
迷える人 :02/02/02 01:55 ID:wLhkquU1
Objective-Cってc++でいうところのfriend宣言みたいなメンバのアクセス権の クラス単位の制御ってできないのでしょうか?
276 :
名称未設定 :02/02/02 02:13 ID:ZzT6VrE3
277 :
名称未設定 :02/02/02 02:17 ID:ZzT6VrE3
255はネタだろ? C++みたいな難物がわかるならObjective-Cなんかヘみたいなもんだよ
278 :
名称未設定 :02/02/02 02:27 ID:UFcWN1Dz
むかしアセンブラはわかったのに今AppleScriptに苦戦しています。 LD
279 :
迷える人 :02/02/02 03:17 ID:wLhkquU1
>>276 レスありがとうございます。やっぱりないですか。
すると状況に応じてpublicにするかアクセス関数を用意するかの二択ですね。
c++はObjective-Cに比べて言語的にはあまり美しくないけど、
それなりに便利なところがありますよね。
一時オブジェクトとかコンストラクタ&デコンストラクタ、operator関数なんか。
まあ、このあたりはトレードオフになるんですかね。
シンプルを目指したObjective-Cと、いろいろくっつけた結果便利だけど
いまひとつまとまりのないc++というのが今のところの印象です。
280 :
名称未設定 :02/02/02 15:54 ID:lZ+F+DX0
>>278 そりゃAppleScriptに比べればアセンブラは単機能なので理解しやすいからでしょ?
281 :
名称未設定 :02/02/02 15:56 ID:lZ+F+DX0
>>279 friendというのは諸刃の剣ですけどね。
これほど反オブジェクト指向なものはないし。
282 :
名称未設定 :02/02/02 17:08 ID:dzM4CiBf
>>261 ヤフオクで買った人?
だとしたら有効活用してくれてるようで嬉しい。
俺は3秒で挫折したからな。
>>282 荻原本ならまだしも、アレの何処で挫折したんだ?
萩原さんのと、中村さんのCocoa本では、どちらがオススメなんですか?
285 :
名称未設定 :02/02/03 21:39 ID:nWQMH0ED
286 :
名称未設定 :02/02/03 22:22 ID:8AlqKJld
「オカズとゴハンのどちらがオススメですか?」 みたいな質問ですね。 両方買うべし。というのも、それぞれの傾向が全然違うし、 片方だけでは知識がそろわないから。
287 :
名称未設定 :02/02/08 21:08 ID:IUFDiOBQ
はじめまして。 Cocoaプログラミングが出来るようになりたくて いま、柴田望洋の「明解C言語」を2/3ほど終わらして 残りポインタと構造体の章だけなんですが やっぱりそれら2つも理解しないとCocoa出来ないでしょうか。
Cocoaの中でもポインタと構造体は頻繁に使われるので、 理解してないと分からないところも多いんじゃないかと思う。 ていうかポインタと構造体も分からないうちはCが理解できたとは言わんて。
289 :
名称未設定 :02/02/08 22:42 ID:vcTQeR7+
287です。 リョーカイデス。がんばります。
290 :
名称未設定 :02/02/09 01:43 ID:FDEGg9fY
Objective-Cのid型ってオブジェクトへのポインタだよな。 そう考えるとCのポインタに関する部分は必須と思われ。 オブジェクト自体も構造体の延長だし。
>>オブジェクト自体も構造体の延長だし。 これは忘れましょう。C++ではたまたまそういう実装だっただけ。 Objective-Cでは別物。
C++に毒されたやつがここにもか…
293 :
名称未設定 :02/02/09 17:46 ID:CVFvLh2z
>>291 ということは構造体は勉強しなくてもよいのかしら。
294 :
名称未設定 :02/02/09 17:57 ID:y7t6kyv3
>>293 知ってたほうが便利ってことはあるけどね。
そういや自分の作ったCocoaプログラムでは
構造体がほとんど出てこないな。
295 :
294 :02/02/09 18:02 ID:y7t6kyv3
でもCocoaが提供しているメソッドとかで たとえばサイズ指定とか矩形の指定みたいなのは もろ構造体ですから、自分が作らなくても、 他人は作っていることはあるから、そこんとこは注意してね
296 :
名称未設定 :02/02/09 18:14 ID:CVFvLh2z
ありがとー(・∀・) やっぱ勉強するね。いろいろごめんね。
297 :
名称未設定 :02/02/09 18:53 ID:tvGQqqLN
cocoa-javaのしつもんです. 作ったNSImageデータを解放する方法を教えて下さい. できるのかどうか分からないんですけど,そのままだと 作れば作るほどどんどんメモリを使ってるみたいなんです.
298 :
名称未設定 :02/02/09 19:13 ID:z8nAzrLe
厨房な質問で申し訳ありませんがcocoaアプリと期待してomniwebとか 落としてみてもあまり早くないんですが元のオブジェクトプログラムが 遅いんでしょうか?作り方がosxに最適化されてないんでしょうか。IEと大差ないんすけど。 Stone Studioなんかはけっこう快適ですが。
299 :
名称未設定 :02/02/09 19:15 ID:RpjWm6Tr
ココアはさっぱり osxはげっそり
>>297 java.lang.System.gc()
…などと思いつきで書き込んでみる(w
301 :
297 :02/02/09 19:55 ID:tvGQqqLN
>>300 ありがとうございます.
試してみたところ,メモリ解放されているようです.
しかし,java.awt.Image#flush()みたいなのはないんですかね-?
302 :
名称未設定 :02/02/09 20:31 ID:j/mk1s9y
Cocoaで多次元配列を引数として関数に渡すにはどうするの?
Cocoaは簡単らしいけど、さすがにREALbasicのようにはいかないねぇ。
304 :
名称未設定 :02/02/09 20:47 ID:bdi5hdct
Rbはちょっと難しいことしようとすると、いきなり難解になる。 そのへんに溢れてるありきたりフリーウエアを真似ることは 簡単なんだけどね。
305 :
名称未設定 :02/02/09 23:47 ID:4kf4XHX6
ペイントツール作ろうと思って -(void)mouseDown(NSEvent*)event の中で線を書きたいんですけど描画されません。 一旦別のウインドウに隠して、元に戻すと描画されるので バッファには書き込まれてるようなんだけど、 それをすぐに表示させる方法が分かりません。 どのクラスにどんなメッセージを送ればいいのでしょう。
>>305 [ [ NSGraphicsContext currentContext ] flushGraphics ];
307 :
迷える人 :02/02/10 04:37 ID:sMn/oygx
Document-Basedのアプリケーションで各ドキュメント(のview)に 対するCopyやPasteの処理ってどこにどのように記述するのでしょう? ちなみにウィンドウ、ウィンドウコントローラ、ビューの全てを サブクラス化してソースを記述してます。 雰囲気的にはFirstResponderが関係してるのかな?
308 :
名称未設定 :02/02/10 09:58 ID:1lzH0IQS
Developer ToolsでREALbasicのプラグインを作ることはできないでしょうか。 GUI部分はREALbasicで、REALbasicでできないことだけはプラグインで作る ということができれば、かなり嬉しいのですが。
309 :
名称未設定 :02/02/10 17:52 ID:PHF4oVku
>>297 Javaはあまり詳しくないんだけど、
object = nil;
みたいな姑息な技でできませんかね?
310 :
名称未設定 :02/02/11 01:51 ID:20FkIcfp
cocoaと直接関係ないんですが、、、 他人様のソースに _ で始まる変数名を見かけるんですが 意味をどなたかご教授下さい。
>>310 漏れの場合、インスタンス変数の名前には先頭に"_"をつけるようにしています。
意味は「私的コーディング規約」です(w
312 :
310 :02/02/11 03:11 ID:20FkIcfp
インスタンス変数ですか。 今、参考にしてるソースはBOOL型の変数に"_"がつけてあります。 ということは310さんとは意味が違いますよね?
>>313 いや、インスタンス変数ってのは「インスタンスを指している変数」では
なくて「インスタンスが保持する(?)変数」、要するにObjective - Cに
限れば
@interface Hoge : Foo
{
//...ここに色々、列挙してある変数
}
//...
@end
のことなんだけど。。。(普通、そうじゃないの?)
型は関係ないです(<あ、漏れの場合は)。
ま、何にしろ、構文上の意味とか、そういうことはないはずです(Javaでも)。
314 :
名称未設定 :02/02/11 03:35 ID:dfOXEbJx
>>308 REALbasicは使ったことないんでよく知らんけど、確かCの関数を呼べるんだよね?
それだったら問題なく作れるはず。DeveloperToolsにはC, C++,
Objective-C, JAVAのコンパイラが含まれてます。
>>310 C(含C++ & Objective-C)ではアンダースコアは実質的にアルファベットと
同じ扱いなので言語的には特に意味はありません。
実践的にも人やケースによって様々な使われ方をしてます。
一般的には補助的、副次的な変数名or型名の頭につけることが多いと思います。
315 :
名称未設定 :02/02/11 04:03 ID:bMbrWSDa
>>310 ソースを見ないと分かんないけど、たぶん、クラスやモジュール内で使われる、
プライベートな変数である事を強調する為に「_」を付けてんじゃないの?
316 :
できゃるぶ :02/02/11 04:48 ID:VNCHlt5q
>309 さらにGCを呼んで, object = nil; System.gc(); てすると,速効性があるような気がするけどどうかな.
317 :
名称未設定 :02/02/11 11:31 ID:YLGCaV/e
>>314 Developer ToolsだとCFMじゃなくてMach-Oを作るから
REALbasic側で対応してくれないとダメというヲチじゃないのかな?
でも早いとこ、高いCWじゃなくて無料のDeveloper Toolsで開発できる
ようにしてほしいとオイラも希望します
318 :
名称未設定 :02/02/11 11:54 ID:YLGCaV/e
>Cocoaで多次元配列を引数として関数に渡すにはどうするの? 普通のC言語の場合と変わらないと思うけど。 普通のC言語のプログラムではどうやってるんですか?
319 :
310 :02/02/11 12:13 ID:20FkIcfp
レスありがとうございます。 補助的、副次的、プライベートな変数の頭につけることが多いということですね。 なんかかっちりしきたりがあるのかと思いましたんで、質問したんです。
320 :
310 :02/02/11 12:25 ID:20FkIcfp
またしても疑問があります。 コードの後ろに日本語でコメントを入れるとビルドでエラーがでませんか? こんなコメントの入れ方はご法度? newItem=[uriString copy]; //日本語でコメント
321 :
名称未設定 :02/02/11 12:41 ID:W9pglmb8
>>320 それ、gccでおなじみのバグです。
ご法度なわけじゃないです。
コメントだけ上の行に移すとか /* コメント */ みたいにするとか
やって切り抜けてます。
322 :
310 :02/02/11 15:52 ID:20FkIcfp
あ、そうなんですか〜。知らなかった。 ありがとうございます。
323 :
名称未設定 :02/02/11 16:17 ID:RCRIDNAv
>314,317 ありがとうございます。やっぱりだめみたいですね。 まあいいか、Developer Toolsでがんばります。 昨日少しDeveloper Toolsを勉強しましたが、確かに C++よりは遥かに簡単そうです。
324 :
名称未設定 :02/02/11 16:35 ID:MO/AdLKe
>>311 "_"で始まる名前は使ってはいけません。
"__"あるいは"_"+大文字で始まる名前はCライブラリの予約名です。
#defineされている場合もあります。
これ以外の"_"で始まる名前もexternとしての使用を予約されていますので
どこでぶつかるか解りません。インスタンス変数やローカル変数の
つもりで使ってタイプミスした物がライブラリの動作を破壊するかもしれません。
こういう基礎的なことを知らないソースは私は即捨てます。
325 :
311 :02/02/11 16:48 ID:PlNbDi0W
>>324 それって、確か外部識別子だよね?
うーん、インスタンス変数は全部、アクセサメソッド介してるから、
タイプミスのこと気にしたことなかったな。
厨房でスマソ、と忠告サンクス。
326 :
名称未設定 :02/02/11 19:00 ID:RCRIDNAv
「はじめてのMac OS X Cocoaプログラミング」を90ページくらいまで読んだ ところですが、なかなか感動ものです。今までC→Java→REALbasic →Objective-Cと勉強してきましたが、Developer Toolsは本当に凄いです。 ある意味REALbasicより簡単です。それでいて高機能。しかし、これは Objective-Cがいいとか、Developer Toolsがいいとかいいうことではなくて、 Cocoaが、いやMac OS Xの設計がいいのかもしれません。まあ、気に入らない 部分も多少はありますが。REALbasicで作ったソフトのテスト用にiMacを買った のだが、もうREALbasicをさわる気がしなくなってきた。
327 :
305 :02/02/13 10:37 ID:BFzoMoIZ
>>306 様
[ [ NSGraphicsContext currentContext ] flushGraphics ];
をためしましが後述の理由により、上手くいきませんでした。
また、[[self window] enableFlushWindow],[[self window] flushWindow]
[self display]
等を、あらゆるタイミングで呼んでみましたがこれも上手くいきませんでした。
投げやりぎみで、「flush」をキーにフレームワーク内を検索して発見いたしました。
void QDFlushPortBuffer(CGrafPtr port, RgnHandle rgn );
です。
Quickdrawを使って描いたら、Quickdrawを使ってバッファをフラッシュしなければならないようです。
Cocoaの描画ルーチンはフラグでも立ててるんですかね。
っていうかいつの間にこんなtoolboxが。
どうもお騒がせ致しました。
早々
328 :
310 :02/02/13 23:21 ID:gKaBd6V5
すいませーん。 NSLog(@"hoge start"); というかんじで、デバッグしたいんですが NSLogを追加するとビルドを通らなくならないですか? 大丈夫な場合もある。この違いは??
>>328 可能性を書いていったら、キリがないけど、変数宣言の前に追加してるとかな(w
ソースの一部か、エラーメッセージぐらい載せようよ。。
>>326 禿げ同です♪
完璧主義者ジョブズ氏が偏執的な拘りを持って
設計しただけのことはあり、本当に凄い開発環境ですよね。
331 :
326 :02/02/14 00:35 ID:qZAiKA7j
Code WarriorとかREALbasicとかってこれからどうなるのでしょうか。 もはや消えてなくなるしかないのだろうか。 でも、ライバルとして生き残ってほしいです。 それからREALbasicのインスタンスとかメソッドとかを最初の数文字 入力すると、後を自動的に表示してくれるあの機能をCocoa開発環境も パクってほしい。
>>331 Appleは、Carbonにもそれなりにリソースを注いでいるようなので、
Carbonをターゲットとした環境として生き残っていくと思われる。
それに、現状のPB/IBはMacOS Xのみだからね。
Windowsやpalmも含めたターゲットを選択できるのは強みだよ。>CW
333 :
310 :02/02/14 00:53 ID:pkIWXyXZ
>>329 どんぴしゃです!解決しました。
そうか変数宣言の前に挿入できないんですね。知りませんでした。
これからもっと情報を示して質問します。反省。
>>331 REALbasicはOS 9.x以前+Win、Carbonがある分、現状、
すぐに消えてなくなることはないと思われ。収拾つかなく
なって自滅なんてのはどーか(藁
CodeWarriorは知らんので何とも。
コードの自動補完は別のエディタ使えば?
Project Builderのプラグインもあったような気がするけど。
335 :
名称未設定 :02/02/14 08:22 ID:drm0oj5s
>>330 Cocoaが優れた環境であるというのには禿同だが、ジョブズが
開発環境の設計はしないだろ (w
>>334 プラグインって
>>238 のこと?
これは同じファイルの中から単語を拾ってくるだけだよ。
タイプ量を減らすには便利だけど、メソッド名を初めて入力する時は意味がない。
メソッド名等を補完したいなら文字列をコマンドキー押しながら
ダブルクリックでなんとかなるはず。
Project Builder のエディター部分のカスタマイズ機能をキボン Windows の Visual Studio ではエディター部を差し換えできるんだよね。 私、Emacsよりvi の方が好きなので。 って、もしかして既にある?
>337 VisualStudio.NETの新機能でエディタの指定可能ってのがあるけど。 現行のVSでできるの?
339 :
名称未設定 :02/02/18 02:08 ID:Fj1pGq41
既存のアプリをcocoaでリメイクするのって難しいの?
>>339 めっさ難しい。ほとんどフルスクラッチになる。
341 :
339 :02/02/18 02:58 ID:Fj1pGq41
>>340 そうなんですか
さっき旧板でNutron Disco Dancer見かけたんで
欲しいな〜って思ったんですよ。
>>338 おらぁ、viviちゅーエディタをつこーとる
>>340 おらぁ、やろうとして挫折しただぁ
PowerPlant使っているやつだったら・・・無理か。
343 :
名称未設定 :02/02/27 00:37 ID:+faPsmHW
cocoa+javaで,画像を読み込まないで,それが画像かどうか判断する方法って どうやるんですか? objective-cのinitByReferencingFileみたいなの.
344 :
名称未設定 :02/02/27 02:52 ID:RnP7BcfK
>>343 Javaは使ったことないのでよくわからんけど、雰囲気的には
/System/Library/Frameworks/AppKit.framework/Versions/C/Resources/English.lproj/Documentation/Reference/Java/Classes/NSImage.html
のConstructorsの項のまん中へんに書いてある、byReferencingをtrueにして
isValidで調べるって方法かな。
古本屋でC言語の本を買ってきてしまった・・・500円 昔ちょこっとやったことがあるから見るとある程度解るっす。 みても解らんとこあるけど。 でもCocoaでは何をどうやればいいのやら・・・ C-Magazine立読みしたらOSXでのプログラミング講座やってるんだね。 Cocoaのおいしい飲み方?とかそんなタイトルで載ってた。 まだ第2回。ああいう講座って後に書籍になるのかな。 なかなか分かりやすそうだったが・・・あの数ページのために1,200円は高いから手を出さなかったが。
346 :
>345 :02/03/01 00:31 ID:KpJ7aeea
真紀俊男さんのヤツですね。<講座 あの人、某MLでCocoaの本を書きかけてるって書いてたから、 しばらく待てばでるんじゃないかな? ちなみにこの人が書いたREALbasicの本はかな〜り良かった。
>346 そうなんだぁ、本屋で立読みしていいなと思ったんですよ。 今まで立読みした(w 入門書にはちょっと不満だったんですが、これは良いかもと。 出版を期待して待ちます。
>>347 真紀俊男(K仲川)さんの本は素晴らしいよ。進め!CodeWarriorからのファンでし
>>348 …たが、もうやめました、と締めくくってみるテスト。
350 :
名称未設定 :02/03/01 21:38 ID:A/fKlQIv
Macintosh Developer Onlineが廃刊だって・・・ ところでDev Toolのウプデータンって何か変わったの? ただのバグフィックスかしら。
351 :
名称未設定 :02/03/01 23:29 ID:1rPCWVzY
InterfaceBuilderでのインターフェイスの変更が ぜんぜんProjectBuilderで反映されないんだけど なんとかならないですか・・・?
352 :
名称未設定 :02/03/02 12:08 ID:QPIXexUP
353 :
名称未設定 :02/03/02 19:16 ID:wpWoAfCe
昔、「MacintoshではじめるCプログラミング」を買って勉強してたが、第7章(ポイントとパラメータ)あたりで全然わからなくなってしまった。 もっかいOSXでCの基本:関数からやりなおすかな〜
>>351 オッティモの小池さんもそんな事言ってた様な、言ってなかった様な…。
>>358 その本はよく知らないが、第7章の題名の「ポイント」は「ポインタ」では?と思う。
355 :
>353 :02/03/03 00:40 ID:AJjFXdAN
あの本自体あまり良くないという説があり。 再入門するなら柴田望洋先生の本を一通り読んだ後、 萩原本に行くのがよいのではないかと。
356 :
名称未設定 :02/03/03 06:08 ID:pmuhx07j
>>351 例えば日本語環境で開発してて、EnglishとJapaneseのnibがあるのに
Englishの方だけ更新してるとかはない?
357 :
353 :02/03/03 06:50 ID:SEv1Y9Ye
>>355 そうなんですか?? でも今お金がないので、とりあえずこの本でやってみます。 ともかくCの基本がわかんないと「MacOS Xプログラミング入門Objective-C」や「はじめてのMacOS X Cocoaプログラミング」は無理ですよね?
358 :
名称未設定 :02/03/03 11:52 ID:VcxJ4OHg
359 :
351 :02/03/03 12:16 ID:Tiy6xAZc
>>356 うわ、ビンゴです!
遊びでjapaneseのnibを作ったのがいけなかったか・・・
ありがとうございまいた。
というわけで、iTunes風ムービービューア「Cocoa MovieBrowser」
開発再開!
・・・完成のメドはたってませんが(笑)
360 :
名称未設定 :02/03/05 06:28 ID:vtBchVIf
362 :
名称未設定 :02/03/06 06:34 ID:/1tIociA
出てるの?まだ?
364 :
名称未設定 :02/03/06 10:34 ID:21R+P56D
>>363 オライリーのWebページには「3月」としか書いてありません。発売日に欲しいなら
出版社から直接通販とか。表紙はいつもの二色だから分からないけど通称「ゴールデン
レトリバー本」なのかな。3月には同時に「入門 csh & tcsh」も出るようなので
そっちも買おうか。
先月からMac OS Xでプログラミングを始めました。オンラインマニュアルが英語
だけだったので例の萩原本を買いましたが、オブジェクト指向の概念的な説明が
あった後にいきなりメッセージ式の話が始まるので、>357さんが言うように、Cの
制御文&オブジェクト指向の概念的なものが分かってないといきなりつまずきます。
今の所、「Mac OS Xで始めるプログラミング」のような本が無いので辛いですね。
'98〜'99年頃に河村政雄さんがMacPowerで連載していた「役立たずBe級プログラマー
宣言!」は、(開発環境が無料で付いてくる)BeOSを使ってC++を易しく解説していた
ので、私の場合はこれが「超入門」になりました。二年弱の連載のうち、一年以上を
かけてC/C++共通の制御文の解説をして、最後の数カ月でウィンドウを出して図形を
描いて、という所で終わってしまったので、あれが今読めれば絶対にお薦めするのですが
残念ながら単行本は出ていません。MacPower PDF CD-ROMってまだ出ているので
しょうか?もしあるとしたらその辺りに収録されているかもしれません。
>>364 「入門 csh & tcsh」はもうでてるよ。
366 :
名称未設定 :02/03/09 00:40 ID:Z1paksPV
数日前にiBookを買ってCocoaデビューした初心者です。 CocoaでCWのSIOUXアプリみたいなのを簡単に作る方法はありますか? 標準のTerminalは日本語を通さないし、できたらFinderからダブルクリックで開けるようにしたいんです。
367 :
364 :02/03/09 01:57 ID:dxF10i/g
>>366 「Finder上から起動できるCUIアプリ」って事?だとしたらMac OS Xは
標準でTerminalがあるから、何らかの形で結局はTerminal上で動かすって
事になると思うけど詳しくは知らないので有識者にパス。
CUIアプリのGUIインターフェースだったら「CocoaWget」がソース付きで
参考になる筈。それかAppleScript StudioのExamplesに入っているSimple Shell
なんかがAppleScriptからTerminalを制御するサンプルになっているので
それも参考になるかな?的外れな答えだったらスマソ。
Cocoa-Java Document-basedアプリを作ってます。 「アクティブターゲットの編集」でファイルとクラスの関連付けに パッケージ入りのNSDocumentのJavaサブクラスを フルネームで指定するとコンパイルは上手くいくんですが、 保存の際にファイルタイプの指定がどうのとか言うエラーが出るんですが、 ウチだけでしょうか? パブリックドメインのJavaクラスだと問題ありません。 それと、NSDocument.makeWindowControllersで NSWindowControllerのJavaサブクラスをインスタンシエイトしようとすると、 「objc FATAL」とか言ってアプリごと落ちるんですが、 (そのオブジェクトは既に存在するとか何とか) これもウチだけでしょうか?
369 :
366 :02/03/10 00:25 ID:S0MyRb0J
>>367 ありがとうございます。
ターミナルで既に動いているプログラムをなるべく簡単に
Finderから起動する方法はないかなと思いまして。
CocoaWgetのソースをゲットしてきました。
これからじっくり読んでみます。
370 :
名称未設定 :02/03/10 20:59 ID:fF9oX/Cx
すごく初歩的な質問ですが、unsigned ってどういう意味ですか? int と unsigned int はどのように違うのでしょうか。
>>370 int = signed int
符号あり、-2147483648~2147483647
unsigned int
符号無し、0~4294967295
32bitの場合ネ
符号に1bitとられるから範囲が違うわけ
372 :
名称未設定 :02/03/11 00:32 ID:9nKh6lQ1
373 :
名称未設定 :02/03/13 02:14 ID:xYFfZzJj
Drag&DropでDropを特定のカスタムViewで受けるのはできたんだけど Window全体で受けるのはどうすればいいの?
374 :
名称未設定 :02/03/13 02:40 ID:LGPZEr8i
>>373 registerForDraggedTypes: はNSViewにもNSWindowにもあるから
あとは同じようなもんだと思うよ。
375 :
名称未設定 :02/03/13 02:57 ID:1tjIzWIy
つーかPBはエディタ貧弱。 メソッドに補完がきかないうえに、色付けもされないもんだから、 単純なスペルミスでハマることが度々。。。 人間はスペル&タイプミスする生き物だってことを認識してほしいよ。
376 :
名称未設定 :02/03/13 06:01 ID:1tjIzWIy
つーかPB、単純な文法エラーの指摘も弱い。。。
ところで、なんでCocoaアプリって起動時のズームアニメが HDDから始まるんだろう。
378 :
名称未設定 :02/03/16 21:41 ID:GFLQaVCP
入門Cocoa今買って読んでます。
379 :
名称未設定 :02/03/19 02:58 ID:v+ObyTEr
MiscKitってだれか使ってる?
380 :
名称未設定 :02/03/21 03:07 ID:itI+AhDV
日本語文字コードの自動判別ってどうすればいいのでしょうか。。? コードの変換は簡単にできることがわかったのですが。
>>380 ESCがある→ISO 2022-JP
0xA1~0xFE以外もある→Shift JIS
上記以外→EUC
ってのでよかったと思うけど、Unicodeってどうすんだっけ?
UTF-16なら0xFFFEか0xFEFFで始まってるからいいとして…。
382 :
名称未設定 :02/03/26 16:39 ID:rCaZlnIS
初歩の初歩の質問です。。 Objective-Cでファイルをゴミ箱に捨てるにはどうしたらいいでしょうか?
Classicと一緒で、ゴミ箱に移動すればよいかと。 ゴミ箱はココ。 NSstring* trashFoler = [NSHomeDirectroy() stringByAppendingPathComponent:@".Trash"]; ちゅうか、関数用意しとけ>アポ−
>>383 FinderにAppleEvent送るのでは?
>>383 Trashへの移動は複雑な処理、自分で移動させよう等と考えないこと
適切な移動方法を定義しているのはFinder
NSWorkspaceを使うか直接FinderにAppleEventを送って処理させるべし
386 :
382 :02/03/27 00:48 ID:0nWHfthO
どもどもです。確かに普通の移動だといろいろ難点もあるようなので、 NSWorkspaceRecycleOperationというのを試してみたのですが、 こちらも同じ名前のファイルを重ねて捨てられないなど、 細かな欠点がありました。FinderにAppleEvent送信が一番よさそうですが、 これってCarbonですよね。。むむ難しい。。
387 :
名称未設定 :02/03/27 10:56 ID:0nWHfthO
Cocoaでファイルの種類を取得するにはどうしたらいいでしょうか? UNIXのfileコマンドのように、テキストファイルやバイナリ、PDF、JPEGなどを判別したいんです。 NSWorkspaceのgetInfoForFile:application:type: では単純に拡張子を返すだけのようでした…
388 :
名称未設定 :02/03/27 12:18 ID:22NlP5Hb
>>387 ファイルの種類を取得するにはタイプごとに判別が必要なので簡単にはいかないんじゃない?Cocoaにはないと思うが。
fileコマンドをNSTaskで使うのが一番手っ取り早いかな。
自分で実装するなら、fileコマンドのソースを探して参考にするとか。
>>387 HFSのクリエータとファイルタイプで良いのなら
NSFileManagerにそう言うメソッドがあるけど。
ファイルの先頭を読んで判別するタイプだと
>>388 が一番だと思う。
390 :
名称未設定 :02/03/28 08:48 ID:yQ8LWHu+
すみません。 NSMovieViewにセットしたムービーを破棄するのってどうすればいいのですか? MovieViewの下にあるImageViewが見えるようにしたいんです。 deallocしたら不正終了しちゃったよ(汗
>>390 NSMovieViewにsetMovie:の引数にnilを指定してやれば元あったムービーは破棄されると思うが。
んでも、それで下のViewが見えるようになったっけ?
単にNSMovieViewの下のViewを見えるようにしたいなら、setFramesSize:あたりで
サイズを小さくしてやればよいと思う。
>deallocしたら不正終了しちゃったよ(汗
オブジェクトを直接deallocするのは禁じ手です。
そもそも他のオブジェクト(NSMovieView)がオーナーシップを持ってるオブジェクトを勝手に
解放しちゃ駄目ー。
Cocoaのオブジェクトの所有と破棄に関するポリシーを理解してないんだったら、
ちゃんと勉強しておくことをお奨めしときます。
>>391 それか、親のViewから取り除く。
もういらないのなら、そのまま捨てる。
あとで使うなら、保持するかImageViewの下に配置。
393 :
名称未設定 :02/03/28 20:05 ID:yQ8LWHu+
実験してみました。 setMovie:nilでいけました! うーん、これで一つ壁をこえたっす。激感謝。
394 :
名称未設定 :02/03/28 20:32 ID:MtUWAxpo
激クンニ!1
395 :
名称未設定 :02/03/29 00:46 ID:jykwk4Nm
age
396 :
387 :02/03/29 21:04 ID:Unwtdgoo
>>388-389 ありがとうございます。fileコマンドをそのまま使うのが楽ですかね。
ところで、CocoaのSimpleBrowserというサンプルを触ってみたのですが、
これ、すごく重くないですか? 体感でFinderと比べて3倍以上重いです。
SNAXもかなり重いので、処理によって得手不得手はあるでしょうけれど、
CocoaがCarbonに比べて速いというのは、幻想のような気がしなくもないです。
397 :
名称未設定 :02/03/29 23:06 ID:nrmOxqG2
>>396 いや、「CocoaがCarbonより速い」なんて誰も言ってないと思うけど?
プログラムしたことのないヤシがなんとなく「Cocoaっていいものだ」と思っている場合は別にして。
Cocoaの優れた点はその整理された体系による「開発の速さ(しやすさ)」にあって、
それがゆえにむしろパフォーマンスでは劣る面もあるのは、開発者にとっては常識
みたいになっているような気がしたんだけど。
398 :
名称未設定 :02/03/29 23:11 ID:eMckTtP5
つまり、REALbasicでどんなにがんばってもCで作ったアプリには速度では かなわないのと同じってことですか?
399 :
396 :02/03/30 00:12 ID:POj5tN8p
>>397 一般的に「CocoaがCarbonより速い」と思ってる人は多いと思います。
Carbon重いからCocoa化してくれ、という声も度々聞きますし。
後半同意ですし、Cocoaにはスピード以外のメリットもあるので、
優劣を論ずるつもりはないのですが、SimpleBrowerはこんなにシンプルなのに、
何か理由があるのかなと勘ぐるほど、Finderに比べて重かったので…。
400 :
名称未設定 :02/03/30 00:41 ID:71/dSNEG
>>396 そこまで遅くないと思うが、AppController.mのbrowser: willDisplayCell:atRow: column:を見ると
毎回 setAttributedStringValueFromFSNodeInfo:を実行してる。
setAttributedStringValueFromFSNodeInfo:ではiconを取得してるから、これは効率が悪いと思う。
こうゆうのはキャッシュすべきだと思われ。
しかしNSWorkspaceによるiconの取得が遅いのは、一般にCocoaが遅いと言われる理由
(Obj-Cのメソッド呼び出しのオーバーヘッド、のことでOK?)とは違うと思うが。
401 :
396 :02/03/30 01:00 ID:POj5tN8p
>>400 なるほど・・・NSWorkspaceのアイコン取得が遅い理由が、
まだちょっと具体的にわからないのですが、
SimpleBrowserの場合は、最適化の余地があるということはわかりました。
あと、今、G3 300MHz使ってるんで、速度差を顕著に感じるというとこもあります。
402 :
名称未設定 :02/04/06 04:09 ID:tyVgSYsa
age
403 :
名称未設定 :02/04/06 11:39 ID:blpKIt7h
>>397 同意。
「CocoaがCarbonより速い」なんていう事自体、あまりに曖昧で何を比較して
いるのかよくわからないし。完全に条件を揃える事ができたとしたら、厳密には
Cocoaのほうが遅いといえるだろうけど、実際にはそんなことは困難だし、そ
れよりも実装方法や個人の力量の差のほうがずーーーーーっと影響が大きい。
SimpleBrowserはサンプルだからね。シンプルな分、遅い。
Carbonの事は殆ど知りませんが、CFMバイナリのCarbonアプリは Mach-OバイナリのCarbonアプリに比べてパフォーマンスの点で劣る、と 書かれているのを読んだ記憶があります。 Cocoaアプリは全てがMach-Oバイナリを採用しているので、 「Cocoaアプリの方が速い」という考えはこうした点から 生じたものではないかと。
> Carbonの事は殆ど知りませんが、CFMバイナリのCarbonアプリは > Mach-OバイナリのCarbonアプリに比べてパフォーマンスの点で劣る、 > と書かれているのを読んだ記憶があります。 ウソです。実際に試してみればCFMの方が速いことがわかります。 CFMブリッジが用意されていないMach-OのAPIについては自分で ダイナミックリンクしなければいけませんので、CFMバイナリの方が 手間がかかるのは事実です。
406 :
名称未設定 :02/04/06 17:43 ID:InIvRwVM
>>403 >SimpleBrowserはサンプルだからね。シンプルな分、遅い。
シンプルな分、速い。となるほうが断然美しいんだけどね。
やっぱCocoaはハイヤーレベルにおいてシンプルということになるかな。
407 :
名称未設定 :02/04/06 17:47 ID:dMt6fRJ0
Cocoaなんて止めて、MFC覚えた方が有益だよ。
開発関係のスレで毎回MFCっていってる奴がいるんだが、マジで言ってるのかな?
>>410 同一人物だったらサムイな。
そうだったら、そいつはMFCも良く知らないに550バルマー
412 :
名称未設定 :02/04/06 23:58 ID:5OR20Rhd
Cをはじめたいのですが、RbやASくらいはちょっと分かる程度なのですが お勧めの初心者向けサイトはないですか?
413 :
名称未設定 :02/04/07 03:43 ID:tBKxP/8k
本買ったほうがいいよ。 おすすめは、、忘れちゃった。 俺が見たのは 新明解C入門 だっけかな。
>>407 CocoaとMFCだと、雲と泥ですな。
415 :
339 :02/04/07 11:42 ID:YEUEKvRH
MFCって何? 知らなくてもいい?
>>416 やっぱり本を参照しながらやることになるから、
サイトよりは本のほうがいいんだよね。
だもんで私もオライリーのCocoa本を買っちまいました…。
>>416 Webは、買った本に書いていない事を調べる時に検索できて便利。一から
腰を据えて勉強するつもりだったら、紙の本の方がいいかな。それでWebと併用ね。
お勧めページは……なし。その時自分が分からない事をその都度サーチエンジンで
検索するといいよ。
で、Cの入門書なんだけど、ソフトバンクから何冊も出ている柴田望洋の文章が
なにかにつけて「何々ですね?」と同意を求めてくるので嫌。内容もあんまり、と
思った。確かプログラマー板あたりにお勧めの解説書スレッドがあったので、そちらを
参考にしてみて下さい。この板に質問したという事はマカーでしょうから、開発環境が
無料でダウンロードできるMac OS Xをお勧めします。
>>415 Windowsでプログラミングしないなら知らなくてもいい。しかもMicrosoftはJavaの
市場を食おうとして.NETフレームワークを作ってるから、今なら尚更。
それにしてもCocoaフレームワークと比べられてもなあ。で、何かにつけて煽っる
407は、MFCもCocoaも熟知した上で言ってるの?両方知ってるなら、どちらかの方が
絶対的に良いなんて言わない筈だよね。この世界、何事もケースバイケースだから。
まあ407はVBで遊んでなさいってこった。
419 :
418 :02/04/07 20:23 ID:bSN+nuXk
>>418 煽っる→煽ってる。でした。
で、Cを勉強したいと思ってこのスレに書き込んだ416さんは、
ゆくゆくはObjective-Cも使いたいと思ってるの?それとも、仕事か資格で
Cを覚えないといけないという状況なの?そのどちらかで勉強の仕方も
変わってくると思うけど……。後者ならCの知識は基本的な制御構造と
ポインタさえ分かればすぐにObjective-Cの勉強を始めてもいいと思うけど、
前者なら、どうしよう。お勧めはピアソン・エデュケーションのC++プログラ
ミング第二版Vol.1(H.M.ダイテル+P.J.ダイテル著 小嶋隆一訳)です。
C++じゃねえか、とお思いでしょうがVol.1は殆どをCの解説に割いています。
後ろの方で簡単なクラス構造に触れたあと、C++独自の機能はVol.2で本格的に
解説するので、Cだけで十分ならVol.1だけを買うといいです。
私はプログラミング未経験ですが、このスレを読んで、 MacOS?ィでC、Objective-Cを勉強したいと思いました。 簡単なテーブルゲームをつくるのが目標です。 明日早速、書籍を買いに行こうと思います。
421 :
名称未設定 :02/04/07 23:01 ID:jWpbFrjl
NSViewのdrawRectメソッドを使って表示した画像を 左右反転表示したいのですが、簡単に出来るでしょうか?
422 :
416 :02/04/07 23:13 ID:kY1Srh3b
416です。日曜プログラマー志望者です。 AppleScriptやREALBasicだと、便利だけど処理速度的に苦しい場面がでてくるでしょ? そういうのを補うプログラムをCで組みたいんですよ。
>>421 drawRectの中で何をしてるかにもよるけど、アフィン変換が使えれば
ほんの数行の追加で済む。「Cocoaはやっぱり」の関連項見るよろし。
424 :
418 :02/04/10 12:13 ID:tywIgtTX
>>422 書き忘れたけど、お勧めの本を挙げたはいいけど、本屋で自分で色々
読んでみて、これなら自分で最後まで読めそうだとか、読みやすいとか、
「自分にとっての良い本」を最終的には買ってください。他人から勧められた
けど自分にとっては退屈だなあ、というのでは長続きしませんから。
416さんの使用目的ですが、AppleScriptやREALbasicで遅い場面というのが
なかなか思いつきません。まあ確かにAppleScriptでリストを何千個も持って
repeat with inで回したら遅いどころかオーバーフローしそうですが……。
Cはリストやハッシュ(AppleScriptのレコード)のような高度なデータ構造を
持っていないので、文字列処理を速くこなそうと思ってるのでしたら、あまりの
面倒臭さに途中で挫折してしまうのではないかと思います。ASやRbが高級言語
ですからね。趣味でやるというのなら苦しみも楽しさに変わる……かも……。ただ
覚えて損はないと思いますよ。僕だけじゃなくて詳しい方のフォローキボン。
僕もC/C++は知っていて、Objective-Cをここ一ヶ月ちょっと勉強していますが、
オブジェクトを扱うと途端にsmalltalkになってしまう部分になかなか慣れません。
>>424 > 僕もC/C++は知っていて、Objective-Cをここ一ヶ月ちょっと勉強していますが、
> オブジェクトを扱うと途端にsmalltalkになってしまう部分になかなか慣れません。
そこがいいところなのに。
♪Cocoaはさっぱり森永〜
427 :
名称未設定 :02/04/14 15:43 ID:LpPOBipe
Cocoaはやっぱり!から初めてプログラミングに触れたのですが、
なんとかここまで漕ぎ着けました。
要はムービープレイヤーですが、ちょっと工夫もしてあります。よければ使ってみて下さい。
http://homepage.mac.com/kitta/FileSharing3.html ほんとはもっといろいろしたいことあるんですけど、QuickTime
の使い方がよくわかんないんで、これ以上は手が出せません。
QuickTimeからのコールバックってなんだ〜〜!
Cocoaはやっぱり!を見てもこの辺りはさっぱりわかんないっす・・・
にしても、ユーザーインタフェイスの設計って頭を悩ませますね〜
428 :
名称未設定 :02/04/14 17:32 ID:X9ZxwzV9
>>427 これは(・∀・)イイ!
ムービーの整理に便利ですね。
プレイリストにD&Dと階層化できたら嬉しいです。
429 :
427 :02/04/14 19:05 ID:LpPOBipe
ワーイ そういう人が一人でもいてくれてうれし〜 >プレイリストにD&Dと階層化できたら嬉しいです。 やることリストに入れときます!
430 :
名称未設定 :02/04/17 01:37 ID:88TyVBa0
Cocoaで乱数ってどうやって出すんですしょうか?
>>426 あっ! クソッ! 先を越され田たぁ〜!!
>>430 % man random
Cocoaというかstdlibだけどね。
433 :
名称未設定 :02/04/18 19:49 ID:jYP182FO
Button等を非表示にするにはどうやるんですか? setNeedsDisply:でできるかと思ったけどだめぽい。
あんましかっこよくないけどdisableにしてtransparentにするとか。 もっといい方法があるかもしれないのでsageとく。
435 :
名称未設定 :02/04/19 00:12 ID:4k1nGubB
>>433 NSViewのremoveFromSuperviewでいけるかと。
表示するときはsuperviewにaddSubView:。
removeFromSuperviewの前にviewをretainしとくのも忘れずに。
436 :
434 :02/04/19 00:41 ID:JbSX47m5
>>435 なるほど、それすごく正しい方針な気がする。
437 :
433 :02/04/19 03:51 ID:/LzbYhrr
ありがとです。 こんな感じで消えたんですけど インスタンス変数NSView *mySuperViewは必要なんですかねぇ。 mySuperView = [myButton superview]; [myButton retain]; [myButton removeFromSuperview]; [mySuperView addSubview:myButton ]; これだとだめだから必要かな。 [[myButton superview] addSubview:myButton ]; 消えてる間はAutosizingが無効になるから、、、どうしよう。
438 :
435 :02/04/19 13:14 ID:4k1nGubB
replaceSubview:with:でダミーのviewと交換するのはどうだろうか。 [button retain]; //ダミーを作ってボタンとサイズの設定を同じにする dummyView = [[[NSView alloc] initWithFrame:[button frame]] autorelease]; [dummyView setAutoresizingMask:[button autoresizingMask]]; //交換 [superview replaceSubview:button with:dummyView]; //元に戻す [button setFrame:[dummyView frame]]; [superview replaceSubview:dummyView with:button]; [button release]; ちなみにsuperviewは必要。 非表示じゃなくて削除だからボタンのsuperviewはnilになると思われ。
439 :
433 :02/04/19 21:16 ID:hfci0q5h
いけますた。 最初AutoresizingMaskとして失敗。 autoresizingMaskなのね。
440 :
名称未設定 :02/04/21 18:43 ID:rbi5KlAy
このスレを見て、プログラミングの勉強を始めた初心者です。 さっそく柴田望洋のCの本を買ってきて、PBのStandard Toolを使って、勉強 を始めましたが、いきなりわからないことが出てきてしましました。 #include <stdio.h> int main (void) { int no; printf("整数を入力してください。:"); scanf("%d",&no); printf("あなたは%dと入力しましたね。\n",no); return 0; } という、プログラムを組んで、ビルドと実行をすると、最初にscanfが実行さ れて、その後に2つのprintfが実行されてしまします。 「整数を入力してください。:」が表示されたあとにscanfが実行されるよう にするにはどうしたらいいんでしょう??
>>440 printf()の直後に fflush(stdout);を行うべし。
442 :
440 :02/04/21 19:55 ID:rbi5KlAy
おお。いけました。ありがとうございます。 ついでに質問。 1) fflush(stdout);を入れるのは、PBならではの仕様でしょうか? 2) int no;をscanf()の前にもってくると、ビルドが失敗しますが、 変数の型の宣言は、リストの1番最初に持ってくるのがアタリマ エですか?(わざわざ、中に持ってきて見にくくする必要性はな いとは思いますが...)
443 :
440 :02/04/21 20:57 ID:rbi5KlAy
1)に関して自分なりに調べてみました。。。 1度バッファを開放させて、printfを実行させる、ってコト。。。か? この件に関しては、まだ深入りしないほうがいいかな(^^;
>>440 結論からいうと、
1も2もCocoa依存ではなく一般的なC or 標準出力の仕様の話題ですので、
ここよりもプログラム板などで質問すべき内容です。
一般的なCの本に従って勉強しているうちはあちらで質問した方がいいでしょう。
もしCocoa依存の問題だと思われたり、そういった解答を向こうでされたら
こちらに戻ってきて質問して下さいな。
445 :
418 :02/04/22 11:38 ID:c/deVIum
>>444 ここ、書き込み数少ないし、いいんじゃない?プログラム版で該当スレッドを
読む&&質問を書いた上で、Mac(というかPB)固有の問題が出たらここに質問
するって事で。
あと>442の質問2だけど、Cみたいにあらかじめ変数を宣言しないといけない
言語では、関数(mainも関数ですよー)のアタマに宣言するのが習慣になって
います。で、宣言した関数の最後になるとその変数は自動的に消去されます。
で、int no;は「変数の型の宣言」ではなく「int型の変数noの宣言」です。
「変数の型の宣言」と書いてしまうと、自分で型を宣言しているみたいなので
この場合、そういう言い方はしません。Cでオリジナルの型として振る舞うのは
typedef宣言だっけ?(Cが記憶から薄れてゆく……)。
446 :
440 :02/04/22 16:46 ID:aiW3fkwc
>>444 ぐは。云われてみればその通りでした。
しばらくプログラム板で修業してきます。
>>445 ふむふむ、なるほど。わかりました。
ありがとうございました。
447 :
名称未設定 :02/04/27 21:41 ID:VEPRAHYp
age
448 :
名称未設定 :02/05/01 11:06 ID:tUnIBJ5l
launch を実行した場合の標準出力を、setStandardOutput でファイルに指定 する方法を教えて下さい。 Pipe を指定する方法は分かったんですが、外部コマンドの出力をパイプ経由 で受けると、出力が大きい場合には waitUntilExit が戻ってこなくなります。 waitUntilExit をしなければしないで、出力が途中で切れています。 (パイプのバッファの大きさの問題?) 結局、一旦ファイルに落として読み込んだ方がよさそうなので、そんな方法 があったらご教示下さい。
449 :
名称未設定 :02/05/01 18:15 ID:Z14qEMmL
450 :
名称未設定 :02/05/01 22:16 ID:RBHwQ5mz
>>449 レスありがとうございます。
それも試してみましたが、出力結果が途中で切れてしまいます。
waitUntilExit が戻らなくなることといい、launch された外部コマンドが
途中でハングしているような感じでしょうか…。
451 :
449 :02/05/02 01:15 ID:LMjV3ScP
>>450 どんな処理をやってるか分からないんだが、、、
pipeをIn/Out別々に作っているか、出力をちゃんと行っているかどうかをチェックしてみては。
とりあえず↓のようなコードでスクリプトを実行させたらうまくいったので参考にして下さい。
- (IBAction)action:(id)sender {
NSTask *task = [[NSTask alloc] init];
NSPipe *pipe1 = [NSPipe pipe];
NSPipe *pipe2 = [NSPipe pipe];
[task setStandardOutput:pipe1];
[task setStandardInput:pipe2];
[task setLaunchPath:@"/usr/bin/perl"];
[task launch];
[self write:[pipe2 fileHandleForWriting]];
//別Threadにした方がいいかも
[self read:[pipe1 fileHandleForReading]];
[task release];
}
- (void)write:(NSFileHandle *)handle {
[handle writeData:
[[inTextView string] dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:YES]];
[handle closeFile];
}
- (void)read:(NSFileHandle *)handle {
NSData *inData;
while ((inData = [handle availableData]) && [inData length]) {
NSString *str = [[NSString alloc] initWithData:inData
encoding:NSASCIIStringEncoding];
if ([outTextView string] != nil) {
str = [[outTextView string] stringByAppendingString:str];
}
[outTextView setString:str];
}
}
452 :
名称未設定 :02/05/02 09:58 ID:nVywsJs5
>>451 ありがとうございます。
やろうとしていることは何ということはありません。外部コマンドとして
ls -R を実行し、指定したディレクトリ以下のファイル一覧を取得しよう
としているのです。わざわざ外部の ls -R を実行しなくても、Cocoa の
中にファイル一覧を取得する機構があるのは知っているのですが、ANSI C
の知識しかない当方にはそのあとの処理を含めて敷居が高いのです。
ls -R の結果をパイプ経由で取得するプログラムを走らせると、階層が浅く
ファイルが少ないディレクトリの内容は問題なく取得できるのですが、階層
が深くファイルが多いディレクトリでは結果が途中で切れてしまうのです。
ご教示頂いたコードを試してみます。
どうもありがとうございました。
453 :
名称未設定 :02/05/02 10:11 ID:hgV6pUUf
コードを拝見させていただきましたが、結局、一旦パイプに出したデー タを受け取るんですね? うまくいくかな…。 ちなみに私のコードは以下の通りです。obj-C をよく知らないので汚い のはご容赦! NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init]; NSTask *task = [ [ NSTask alloc ] init ]; NSPipe *newPipe = [ NSPipe pipe]; NSFileHandle *readHandle = [newPipe fileHandleForReading]; NSData *outData = nil; NSString *outString = nil; task=[[NSTask alloc] init]; [task setLaunchPath : @"/bin/ls" ]; [task setArguments : [ NSArray arrayWithObjects : @"-R", @"-F", path, nil] ]; [task setStandardOutput : newPipe]; [task launch ]; while ((outData = [readHandle availableData]) && [outData length]) { outString = [[NSString alloc] initWithData:outData encoding:NSShiftJISStringEncoding]; [outString writeToFile : tmppath atomically : YES ]; // tmppath は別のところで定義しています } [pool release];
454 :
mac人 :02/05/02 10:46 ID:55ZZu/ku
そういえばハイパーカードってやっぱきえた?
455 :
名称未設定 :02/05/02 11:44 ID:nVywsJs5
上記の件、らちがあかないので強引に以下のようにしたらうまくいきました。 う〜ん、ANSI C はやはり偉大だ! 無理はあるかもしれないがシンプル! NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init]; cmd = [NSMutableString stringWithString : @"ls -R -F "]; [cmd appendString : path]; [cmd appendString : @" > "]; [cmd appendString : tmppath]; // path, tmppath は別に定義 system([cmd cString]); [pool release];
456 :
結論 :02/05/02 13:20 ID:OJLTlCGY
.NET >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Cocoa つか今時Cかよ
457 :
名称未設定 :02/05/02 14:59 ID:wyXvSP06
>456 Objective-C++ですが?
458 :
名称未設定 :02/05/02 15:03 ID:3IiRe5Cf
Cかけない奴ほどCを馬鹿にするのな。 Cの勢力は20年は変わらないんじゃない? 大学でもすべての基本として教えているし。
459 :
名称未設定 :02/05/02 20:03 ID:kkRL7h1x
C#?冗談でしょう?
( ´_ゝ`)フーン
461 :
荒らしは放置しよう :02/05/02 20:25 ID:fuK1cmxJ
それよりも、おまえら、新しいDeveloper Toolsが ADC会員のダウンロード専用ページにうぷされてるぞ
あぼーん
463 :
449 :02/05/02 20:41 ID:LMjV3ScP
>>453 まずファイル名のencodingはNSShiftJISStringEncodingでなくNSUTF8StringEncodingです。
あとwhileの中でwriteToFile:atomically:を行ったら、毎回ファイルに上書きされると思うんですが、、、。
.NETよさそうっすね。完全にMFCとかのかわりに使われるようになるんでしょうか?
あぼーん
466 :
名称未設定 :02/05/02 20:47 ID:5xEftF6w
467 :
名称未設定 :02/05/02 20:52 ID:GZMTxmGl
図書館で入門Carbonって本を借りてきた。 一週間くらい勉強してみるけどこの本はどうなの。 表紙に2匹の犬のイラストがある本なんだけど。
468 :
うーむ :02/05/02 21:03 ID:fuK1cmxJ
「入門Carbon」ってCarbonの本ですよ Cocoaだったら「入門Cocoa」のほうが適切。 個人的にはCarbonっていうのは従来のMacOSプログラムの経験者が やるものだと思うから、もしMac OSプログラムそのものが入門者 だったら、あまりおすすめしない
469 :
荒らしは放置 :02/05/02 21:05 ID:fuK1cmxJ
VC++がいいとか、MFCがいいと思っている時点で ネタだってことに気づけよ。おまいら。 こういうことわざを教えておこう 「生まれてから酢しか飲んだことがないものは、それを美味と感じる」
あぼーん
>>461 あれは有料メンバーだけだよね?
一般にはもうすぐ。。
472 :
名称未設定 :02/05/02 22:20 ID:/CgMxdKs
>>449 コメント、ありがとうございます。
>ファイル名のencodingはNSShiftJISStringEncodingでなく
>NSUTF8StringEncodingです。
これは ls -R -F > dummy の出力と比較するためにNSShiftJISStringEncoding
にしています。また、後でこの出力を読み込んで fopen に使う場合には、
NSShiftJISStringEncoding の方が都合がいいみたいです。
(ANSI C 使いですから(笑))。
>あとwhileの中でwriteToFile:atomically:を行ったら、毎回ファイルに
>上書きされると思うんですが
なるほど。
でも、コードの出力結果を ls -R -F > dummy の出力と比較すると dummy の
前半部分と対応しているので、「上書きで前半が消えた」というものではな
いようです。(複数回の書き込みはされていないということですね)。
473 :
ADC無料会員 :02/05/02 22:26 ID:ZSSNYTLE
>>471 いや無料メンバーも今日からダウンロードできるよ
474 :
天然か?こいつ :02/05/02 22:28 ID:ZSSNYTLE
>今までヘドロ食わされてたのが、合成酢にグレードアップしたもんだから >喜んでるんだろ? おまえ、だれにもの言うとんねん? CP/MやMZ80時代から、いろんな開発環境さわっていて メジャーなものはたいてい知っている Visualなんちゃらしか知らない厨房と一緒にせんといてくれ
475 :
472 :02/05/02 22:53 ID:MxycPlc+
>>474 ははは…。
私もGUIになってまともにプログラミングは勉強しなくなったけど、
BASIC から始まって、Z80 アセンブラ、FORATRAN、PASCAL、C は
一通り使えるよ。もうだいぶ忘れたし、どれも原始的な使い方
しかしてないけどね。ちなみに第1種情報処理技術士さ。
科学計算が仕事なんで、いまは Mathematica 専門。
>GUIになってまともにプログラミングは勉強しなくなったけど、 GUIになったら、ついていけなくなった、と正直にいえよ。 そういうやつは会社を起こして、社員をアゴでこきつかうようになるの。
あぼーん
あぼーん
なんだよ!納豆のタレとめんつゆのさもわからないくせに。
481 :
名称未設定 :02/05/02 23:49 ID:jTug97y4
>>480 それって、英語版のデベツールβ版?
昨日偶然みつけて落としたんだけど、それとは別?
482 :
449 :02/05/02 23:51 ID:LMjV3ScP
>>472 いろいろ試しましたが、やはりエンコーディング変換がうまくいってないみたいです。UTF8でも変になります。原因不明というかUnicodeは複雑でわからんです。
解決策としては、NSStringにしないでNSDataのまま書き出すことでうまくいきます。
NSMutableData *data = [[NSMutableData alloc] init];
while ((outData = [readHandle availableData]) && [outData length]) {
[data appendData:outData];
}
[data writeToFile:PATH atomically:YES];
>>477 MFCがスマートで高度というのは初めて聞きました。
>>477 MFCをスマートだと言い切る人を初めて見た。マジで。
うお、かぶったけど別人だよ。同じ意見だね。
MFCがスマートだって意見を、プログラム板かWindows板でがんばって発言してもらいたい。
あぼーん
・間違っていながら、しかもそれを認めたがらないとき、人はついには怒り出す。 byトーマス・ハリヴァーン ・自分で怒りを抑えるには、他人の怒る姿を静かに観察することである。 by L・A・セネカ ・怒りは無謀をもって始まり、後悔をもって終わる。 byピタゴラス
488 :
名称未設定 :02/05/03 00:49 ID:N3eDeoIt
このスレにゃMFCをスマートだと表現した奴は一人しかいねーよ。 相手にされてない。
MFCをスマートだと表現した奴のプログラムを見てみたいよ まったく
490 :
ム板住人 :02/05/03 01:08 ID:Pb0l4PVt
最悪タンの知識はこの程度です。 ↓VC++(とZ80アセンブラ)ぐらいしか知らない最悪タンが何か言ってます。 528 名前: Macのセキュリティは最悪! メール: 投稿日: 02/04/15 23:38 ID:a1PfSApE >519 おまえさ、現代ではガベコレってのは参照・ポインタ等のアクセスや 型の違反を動的にチェックすることを言うんだぜ? c++程度しか使ったこと無いんだろ。 イタタタタ!!
いらん餌撒くなよ。専用スレでやっとくれ。
492 :
専用スレ :02/05/03 02:12 ID:S9q3s42D
あぼーん
494 :
はいはい :02/05/03 02:38 ID:S9q3s42D
495 :
472 :02/05/03 09:14 ID:+IZdZgeq
>>476 >GUIになったら、ついていけなくなった、と正直にいえよ。
私に関していえばその通りだ。理学系の研究者のプログラミングに GUI は
いらんのだ。いまだに FORTRAN を使ってるやつもいる。
要は、何が自分に必要かだ。
>>482 たびたびのコメント、ありがとうございます。
現在自宅ですが、自宅の MAC には Developer Tools を入れていないので、
連休明けに職場に行ってから確認してみます。
丁寧なレス、本当にありがとうございました。またよろしくお願いします。
みなさーん、「荒しは放置」。基本ですよー。荒しクンは寂しいから、 かまって欲しくてこんな事を書いてるんだけどそんなヤツに同情してやる義理も 無いので荒しクンが一番嫌いな「放置プレイ」にしてあげて下さい。
497 :
名称未設定 :02/05/03 16:49 ID:4xzuhI7S
でも、Cocoa/Java2SE/MFC/.NETの各フレームワークを プラットフォームの是非とは別の次元で比較した話とか聞きたいな。 Java界隈ではJavaとC#の冷静な比較検討が結構成されていて、 凄く興味深い。
498 :
名称未設定 :02/05/03 18:23 ID:P4N3UTFw
>>497 とりあえずCocoaはObjC、.NETはC#の言語仕様に影響を受けてると考えて、、、JavaはObjCを参考にして作られたというし、C#はJavaのパクリだとさんざんいわれてるので、Cocoa/Java2SE/.NETではそんなに違いはないように思うのですが。
用途の違いがあるかもしれない。Cocoaは主にOSネイティブのアプリケーション向けで、OSのサービスを利用するためCが直接使えたりする。
一方.NETやJavaはもっと広い用途で使われてるんじゃないかな。強い型付けにも関係すると思います。WebObjectsもいまやJavaだし。
でもMacのデベロッパにとって移植性が問題だと思います。とりあえずWinとMacで動くアプリケーションを作るとなると、現状ではPowerPlantってことになると思うんですが。
ここらへんの理由でCocoaに乗り換えられないってのがあるのかな?
一応CocoaのWin版はApple社内にあると思うけど、Appleはこれをリリースすべきだと思いますか?Mac版.NETがでればよし?C++でPowerPlantそのまま使ってろってこと?
499 :
497 :02/05/03 19:48 ID:4xzuhI7S
>>498 Javaでは型付けがちょっと強くて、ObjCはちょっと弱い。
C#はObjC程弱くもないけど、Java程強くもない。
ちょうどObjCのdelegateをJavaに取り込んだ様な形。
これはVJ++の頃からあったものなんだけどね。
Linux版.NETは開発中だって話だし、Mac版.NETはそれほど難しくはないかも。
問題は、AppleがWebObjectsをMacハードの
キラーアプリとして考えている節があって、
その為にYellowBox for Windowsのリリースが停止されたのかもしれない。
Cocoa/Java/.NETがいろんなプラットフォームで
縦横無尽に動くところなんか面白そうなんだけど、
Appleの態度を考えるとそれは難しいかな。
ただ、
>>497 で言い出したのは言語仕様とかプラットフォームとかの
プリミティブな部分じゃなくて、API上のもっと抽象的な部分、
デザインパターン・カタログのソリューションを
どう言う形で持っているとか、そう言う比較も面白いんじゃないかなと思って。
あぼーん
918 名前:名称未設定 投稿日:02/05/03 11:28 ID:48nPqavV
>プログラム版にゃcocoaのスレなんて一個もねーよ。
>
>相手にされてない。
Macのセキュリティは最悪!たんにゃ本当の友達なんて一人もねーよ。
相手にされてない。
---------------------------------------------------------------------
だってさ。こんな事言うのは的外れだと思うけどね。
まあ、続きは↓で。
http://pc.2ch.net/test/read.cgi/mac/1018520654/l50
502 :
梨 :02/05/03 20:38 ID:aEPxuQzR
あぼーん
あぼーん
505 :
梨 :02/05/03 20:42 ID:aEPxuQzR
Obj-C始める人の為にはなると思われ。
>>504 中読んだか?
あぼーん
相手すんなって・・・
508 :
あらら :02/05/03 21:05 ID:aQN/8CtQ
509 :
498 :02/05/03 21:07 ID:P4N3UTFw
>>499 APIの抽象的な部分っつっても言語仕様に依存するんじゃないでしょうか。delegateとか。
デザインパターンはあんまり知りませんが。
.NETは継承の階層が浅くて、Javaはそうでなくデザインパターンを忠実にとりいれてるってのは聞いたことがありますが。
Cocoaはどうなんでしょう?Immutableなクラスからmutableなクラスの派生ってのは一般的なのかな?
あと、Class ClusterでFoundationのクラスはほとんど抽象クラス扱いだってことも特徴かも。
([[NSArray alloc] init...]で実はCoreFoundationのクラスのインスタンスができたり、つーか未知のクラスが多い)
.NETのMac版はなんか出そうなんですが、System.Windows.FormsはMac版に限らず時間がかかるっぽいです。
あぼーん
511 :
名称未設定 :02/05/03 21:12 ID:nY20wJ6z
>>510 cocoaがWinで動かないからでしょ、馬鹿ですか?
あぼーん
>>510 eMacにファンがついているみたいでがっかり、という話題のスレで、
「PC室にファンレスマシンなんて意味ない」と書き、Macを貶すどころか
かばってしまった馬鹿ウィナなんて一人しかいないが、理由は?
これ以上このスレの人に迷惑かけるな。専用スレでやれ低能。
515 :
名称未設定 :02/05/03 21:19 ID:nY20wJ6z
>>513 プログラム板にやMacで使える言語についてもいっぱい扱われていますが、何か?
516 :
名称未設定 :02/05/03 21:20 ID:nY20wJ6z
それもID間違ってるし、煽りやとしても3流だな
>>513
せっかくの誘導が台無しではないか。
あぼーん
519 :
名称未設定 :02/05/03 21:24 ID:/YrM5Vrg
Class Clusterも良し悪し。最大の問題は継承がやっかいということ。 ただし萩原先生の本にそのへんは詳しく書いているけどね。 デザインパターンの勉強するまで、その意義はさぱーり わからんかった。
良スレが荒らされるのは鬱です。 ここらで一段落してくれると嬉しいのですが。
521 :
ム板住人 :02/05/03 23:05 ID:f5bcnf75
単純に「ココに」Cocoaスレがあるからム板に専用スレが ないだけと思われ。 Macに関係するスレはム板、マ板にけっこうあるぞよ。
522 :
名称未設定 :02/05/04 00:52 ID:15RDhR41
Cocoaって奥が深いのにとても簡単で、あんまり人に質問とかする必要無いなあ。 だからスレもこれ一つで十分な気がする。 CodeWarriorやってたころは本当にストレスがたまったし、REALbasicやってた ときは裏技ぽいことをいろいろと調べたけどなあ。 自分のオリジナリティーを出したい部分にだけ集中できるから本当にソフト開発が 楽しい。 Mセ悪!可哀想に。こんな諺御存じですか。 「大事な仕事は忙しい者にやらせろ。」 早く忙しくなると良いですね。
あぼーん
煽り・論争はよそでどうぞ。大事なスレが読みにくくなる。
525 :
んグ :02/05/04 01:31 ID:6zBtQq/r
おまえ、MFCで仕事したことあるのかと 小一時間問いつめていいですか?↑のやつ。 せいぜいダイアログ・アプリをいじった程度じゃねえか? こいつは。
526 :
んグ :02/05/04 01:32 ID:6zBtQq/r
ごめん。523のヴォケのことだよ。
>>23 論理学に精通してるフリする割には境界条件に疎いな。
お前の意見を通すなら、利用者が少ない、だけで理由として十分だと思うが?
究極的に支持されない場合は、どこぞの開発環境みたいにアンチスレが立つだろうが。
「Cocoaスレが一つもない→支持される理由が少ない」、と直結するのは短絡。
今は単にCocoa利用者自体が少ないだけ。もちろん信者でもなんでもない俺は、
「Cocoa利用者は今後ぜったい増加するんだよ!」なんてな妄想は言わんがな。
お前の勝手な拡大解釈は不毛なんだよ。
あと、本当にわざわざ諍いのないスレに余計な話持ち込むなってば。専用スレ行け。
529 :
名称未設定 :02/05/04 02:29 ID:xNa+TiS/
なあ、具体的にほかのフレームワークと比べてCocoaの どこがどう優れている(もしくは劣っている、とか)と思っているわけ? Cocoa以外知らんから自分は比較できないんだけどさ。 さらに、具体的にCocoa上でのObjective-CはJavaと比べて具体的に どこがどう優れている、もしくは劣っていると思っているの? ありそうな点を思い付く限り言ってみると、 1.カテゴリ。既にできているメソッドの追加や変更ができる。 ただし予期せずにメソッド名がかぶると予想外なメソッドを呼ぶ危険も。 2.セレクタ型。Javaでもリフレクションとやらを使ってできるらしいが。 3.CやC++との親和性。 4.スピード。主に起動の部分かな。 メソッドの呼び出しとかはJavaのが速いと思うし。 一方、 5.ガベコレ。Objective-Cにはautoreleaseがあるにはあるのだが。。 6.例外処理。マクロベースの例外処理はちと落とし穴があるとか。 7.メソッドの呼び出しの違い。 現実にはないのかもしれないけど、Objective-Cだと 知らぬまにメソッドをカテゴリで書き換えたり、 逆にカテゴリのメソッドを継承で書き換えたりすることが考えられる。 実行時には全てのメソッドがPublic。 8.メソッドのオーバーライド。ここらへんはいいのやら悪いのやら。 といった所か。 個人的結論、感想は 「少なくともCocoaみたいなトリック無しではObjective-C(GCC版)は Javaよりおおよそ劣っている」 のではないかと。
あぼーん
531 :
529 :02/05/04 03:18 ID:qdbh7XZ4
間違えた 8.メソッドのオーバーロード
90年代中頃にOPENSTEPがすごいと言われていたのは EOFのことだったと記憶している。
533 :
ふーん :02/05/04 11:12 ID:tLcyK/fD
誰かさんの好きなMFCなんかクラスウィザード使ってクラス作ると
メンバ変数をPublicにしまくるという、致命的を超えて、
おーまーえーはーアフォーかー
な素敵なことをしてくれるけどな(w
>>530
534 :
529 :02/05/04 11:39 ID:9pSrY7IN
ちなみに、staticな関数を使えばprivateなメソッドの代用はできる。 だから、意識して使えばこの点は単なる見た目の問題になるんだろうけどね。 Cの機能で補える部分は拡張しないのがObjective-Cの特徴かな。 いやむしろCのオブジェクト指向としての機能が不足している部分を補ったのが Objective-Cなのか?
>>534 後者だね。何せ設計がオブジェクト指向技術に関してはまだ黎明期だったから。
言語仕様的なもので見るとノウハウの蓄積がそのまま反映されるから
ObjC < Java =< C#
になると思う。フレームワークのクロスプラットフォーム性では、
Cocoa < Java = .NET
かな。Javaも.NETもインタプリタを用意すると言う点では全く同じ。
Cocoaはnibファイルは完全にクロスプラットフォームだけど
実行ファイルはプラットフォーム依存になる。
ただ、Cocoaフレームワークだけを使うなら
アプリケーション独自の部分を全部Java任せにして
mainだけを各プラットフォーム向けにコンパイルする方法もある。
……もっとも、Appleにその気がないからこの話はあんまり意味ないけど(TT
うーむ、言語仕様に優劣をつけるのも難しいけど、新しい方が 優れているというのはどうだろう? オブジェクト指向という 点で見ても、例えばSmalltalkの方がJavaより優れている(と いうかスマート)な点があると思うぞ。ノウハウの蓄積という よりも設計指向の違いが大きいと思われ。 いや、たしかにJavaはObjCも参考してるから、より優れている 点は多いんだけどさ。でもフレームワーク全体で見ると、やっぱ ObjC+Cocoaの方が好みかなあ。
537 :
529 :02/05/05 13:42 ID:N42iUNJr
そそ。どっちかが優れている、という結論は あくまで個人的な印象のレベルで言っている過ぎない。 それでもあえて知りたいわけだが。 で、肝心のCocoaそのものに対しては、何か特徴はない? MFCやQtやGtk系やPowerPlantの方がいいんじゃないの? と挑戦してみる。 とりあえず、「純なC++が使えない」という Cocoaの欠点だかC++の欠点だかよく分からない特徴があるな。 あと、よくいわれるのがIBなんだけど、 正直いってどう違うのかはよくわからない。 いろいろ見てみると、target-actionとoutletを使った実装との接続が 特徴だという節があるけど、それはどう他のよりいいの?
538 :
498 :02/05/05 14:30 ID:l2vP+UXo
>>537 target-actionは単純だからでは?
[target performSelector:action withObject:sender]の形式をとることで、簡単にevent handlingが可能。
outletはnibファイルのバインディングに関係すると思われます。
nibファイルの動的ローディングみたいなものは他のフレームワークではどう実装されているのでしょうか。
まあ、他のフレームワークでもあまり違いはないかもしれないけど、
[NSBundle loadNibNamed:@"nibFileName" owner:controller]とか。
とにかくダイナミックバインディングが多いってことでしょうか。WebObjectsもこれを応用してるみたいですし。
539 :
名称未設定 :02/05/05 23:27 ID:kqQrZNDG
確かにイベント処理が簡単になりましたね。 でも私は、きれいに整備されたクラスやメソッドの使いやすさに Cocoaの最大の魅力を感じます。何をやるにしても前処理や後処理 で面倒だった旧来の開発と比べて極めてシンプルになってます。 初期値(旧来のPreference)を保存するためのNSUserDefault、 、オブジェクトをファイルに書き込むNSArchiver、ファイルパス を簡単に操作できるNSStringなどなど、あげればきりが有りません が、古いOSと古い常識に別れを告げた結果、ここまでシンプルに プログラミングできるようになるとは驚きです。 『Cocoaはやっぱり!』117ページのWindowの表示位置の読み込み をたった1行コーディングするだけで、保存は勝手にやってくれると いうところには、正直あごがはずれそうになりました。そんなバカな! って感じですよね。(W それにしてもこの本、小さな間違いオンパレードですね。 でも、それが面白い。
540 :
名称未設定 :02/05/06 12:36 ID:pwKm/wSE
a÷g÷e
541 :
名称未設定 :02/05/06 12:41 ID:mK3WedJi
WWDCのページにサンプルコードがたくさんあって面白そう。 試してみようかな。
542 :
名称未設定 :02/05/06 23:49 ID:q3ib1b5U
しかし、MFC擁護をまとめて削除ってのは妙なスレだな。
↑ろくに過去ログも読まないらしく妙なレスだな。
544 :
名称未設定 :02/05/07 02:44 ID:xTSDNZuy
これが、物凄く気になるのですが... Performance of code generated by C++ compiler will be better than before. "Going from something that was mediocre at best to something that is truly outstanding. GCC3 の事だよね。
545 :
名称未設定 :02/05/07 04:56 ID:y8HmXtFk
て優香、Mセ悪のレス全部消えてません? スレが読みやすくなったような、そうでないような。
ほんまやね。 誰か削除以来したの?
Cocoaはこうなっているけど、MFCはこうなっていて便利だ、とか、 MFCの方がこの点でスマートだ、とか、 別に優劣だけじゃなくてもプラットフォームの思想の違いから来る APIの設計の仕方の違いだとか、 そう言うまじめな話なら大歓迎なんだけどなぁ。 俺が知っているMFCの有利な点って、 日本語ドキュメントくらいだから(笑)。 識者の方の御話を是非聞きたいっ!
548 :
名称未設定 :02/05/07 23:25 ID:yrqg05bh
550 :
名称未設定 :02/05/08 00:17 ID:622tmhfb
>俺が知っているMFCの有利な点って、 >日本語ドキュメントくらいだから(笑)。 これは激しく重要と思われ。 多少の機能の過不足など良質のドキュメントの前では… つか「日本語」に限らないだろ>ドキュメントの充実度の差
551 :
名称未設定 :02/05/08 00:21 ID:2Nws5Bhe
>>548 これ、すごく面白そうなんで、
とりあえずExamplesに入っているソースをビルドしたいんですが、
よくわかりません...。
どうすればいいんでしょうか?
CSKフレームワークをどうやって入れればいいんですか?
552 :
名称未設定 :02/05/08 00:54 ID:QdJm2Rss
>>551 とりあえずCocoa Sprite Kit (Complete Kit) 1.0 Beta 1ってやつを落として、
まずCSK Frameworkからビルド -> Examplesをビルドで動くと思う。
Exampleのビルドには必要ないが、フレームワークのインストールはbuildフォルダの.frameworkフォルダを
/Library/Frameworks にコピー(フォルダがなければ作る。ホームのLibrary/Frameworksでもok)。
プロジェクトのFramworks and Libraries/Linked Framworks/以下のフレームワークが赤字だったら、
それを消して、同じものを/Library/Frameworksからドラッグドロップすればよいはず。
553 :
名称未設定 :02/05/08 08:19 ID:hO/qg8up
>>551 ありがとうございます!
"compositeToPoint: fromRect: operation:"とか使って、pac-man
もどきのゲームを個人的につくろうかなぁと思って、とりあえずキャラを
動かすテストプログラム作ってたんです。けど、「遅いなぁ」と思ってたんです。
(私のプログラムの書き方がわるいせいもあると思いますが)。
これは、...なんとなく早そうな気がします(気のせい?)。
>>553 いや、CSKも結局Cocoa APIだけ使って描画してるみたいだし、最適化さえきちっと
やっておけばパフォーマンスで負けることはないはずだと思う。……たぶんね。
単純にViewのsetNeedsDisplay:を呼び出すんじゃなくsetNeedsDisplayInRect:を使って再描画するRectを更新された範囲に限定するとか、それだけでもだいぶ違うはずなんだけど。
あと、不透明なViewはisOpaqueをオーバーライドしてYESを返してやるようにするとパフォーマンスが向上するそうです。これは「入門Cocoa」より。
555 :
名称未設定 :02/05/09 08:07 ID:2Mf+2x7k
>>554 おぉぉぉぉぉぉ(感涙)
さっそく試してみます。
ありがとうございましたぁ!!
保全
559 :
名称未設定 :02/05/19 22:41 ID:/k4yyMyw
April 2002のDeveloper Toolsって使ってみる価値ある?
560 :
名称未設定 :02/05/19 22:47 ID:zQrLvBET
>>559 まだベータだからな。
個人で試してみる分にはかまわないが、一般に配付するアプリの開発には
使わないほうが無難と思われ。
>>560 てゆーか、使っちゃ駄目なんじゃなかった? 勘違いかな・・・?
>>561 gcc3でビルドしたやつを配るなってことだったと思う。
563 :
名称未設定 :02/05/26 01:53 ID:2evYOG+u
Cocoaで正規表現を使いたい時って、どうすればいいのでしょう?
564 :
名称未設定 :02/05/26 08:39 ID:fLZyys3U
NSTaskからPerl呼ぶとか。
漏れ、ここで良書とされる柴田本(C入門)と荻原本(Objective-C) を買ってきた。とりあえずCの方から始めてみたけど、初め使う projectBuilderにてこずった。なんとか最初の「整数の和」ってのは クリアしたけど、最後までたどり着けるかなぁ。現在この本で勉強 してる人います?
567 :
440 :02/05/27 12:08 ID:vf3flI1E
柴田本はだいたい夜中にぽちぽちやるだけでも、2,3週間で終わったよ。 荻原本のほうは、コンパイルの仕方がわからなくて、中村本の参考書とし て使ってる。
荻原本は、いきなりTerminalからccでコンパイルしろ、だから初心者(というか 今までMacしか使った事が無い人)には辛いと思う。あのサンプルコードなら Project Builderで「新規プロジェクト」→「CoreFoundation Tool」を選んで main関数にサンプルコードを打ち込むなりすれば、ビルドから実行、デバッグまで GUIでできるよ。荻原本はPBの使い方には触れていないけど、Macを使った事が ある人ならTerminalよりも感覚的にPBの方が分かるでしょ。
>>567 荻原本にも44ページにコンパイルの仕方が載っているはずだが?
570 :
440 :02/05/28 15:16 ID:M0CLwG+R
>>568 おお、これは良い情報をありがとうございます。
>>569 もちろんそれは知っていますが、それでも意味がわからない厨房なんです。。。
571 :
名称未設定 :02/05/28 15:48 ID:X7R0IZWe
むしろ国語力の問題かと、かと。
漏れもよくわからんかった。
573 :
初心者 :02/05/28 16:30 ID:S19iYsh0
>>566 初めて書き込みいたします。
ここで良書とされる柴田本(C入門)と荻原本(Objective-C)とありますが、この2書の正式書名と出版社を教えていただけないですか。
574 :
568 :02/05/28 16:44 ID:hme8BMRZ
>>566 荻原本は「Mac OS X プログラミング入門 Objective-C」(荻原剛志・著/広文社・刊)
です。ハラギワラさんじゃなくてオギワラさんね。で、出版元のWebページ(www.kobunsha.co.jp)。
柴田望洋さんのC解説本は沢山なるので、どれか分かりませんが殆どはソフトバンク・
パブリッシングから出版されています。多分ここは「明解C言語 入門編」かな?
(books.softbank.co.jp/isbn/shibata/)
分からない事があったら、サーチエンジンで適当に単語を探してみるといいですよ。その前に
このスレッドで話題になっている場合は、2chブラウザーなどでスレッドを全てダウンロード
して、検索をかけてみると分かります。既に書き込まれている事に対して質問すると、
「ガイシュツじゃヴォケェ」とか言う人がいますので、あまり初心者とか言わないほうがいいと
思います。初心者スレなのにね。でもスレッド検索とサーチエンジンを当たってから質問するのは
基本って事で。覚えておいてください。
574、親切だよ。をれ涙出てきちゃった。
577 :
初心者 :02/05/29 09:18 ID:MxxOe+K0
>>568 大変ありがとうございました。すぐに買いに行きます。
578 :
名称未設定 :02/06/05 08:38 ID:wENTdSZg
えーん、NSOutlineViewの使い方が分かんないよー。
579 :
名称未設定 :02/06/05 09:59 ID:kDYsDqli
>578
http://developer.apple.com/techpubs/macosx/Cocoa/TasksAndConcepts/ProgrammingTopics/OutlineView/index.html NSTableviewと一緒で表示データの保持等はNSxxxDataSourceを使うのね。
NSxxxDataSourceは、NSObjectのカテゴリとして登録されてるので、
NSObjectを継承してればどんなクラスであろうと使えるわけだけど。
で、NSOutlineViewの場合は、NSOutlineViewDataSourceってのを使う。
ドキュメントもついてるのでそっちを見てもらえばいいんだけど、
"Implementation of this method is required."
って書いてあるメソッドは全部実装する必要があります。
optionalの方は使いたきゃ使えって奴です。
出来たクラスをIBでNSOutlineViewに引っ付けるか、
初期化メソッドでNSOutineViewに渡してやれば良いです。
(IBで引っ付けるときは、NSOutlineViewの"中身"に引っ付る)
データの保持、管理は対象によって異なるので各自でどうぞ、
ってのが方針みたいですね。
580 :
名称未設定 :02/06/05 11:17 ID:wENTdSZg
>>579 あわわ、あんな投げやりな愚痴に答えてもらえて光栄です。
NSTableViewでは、DataSourceにするクラスにtableViewから、
「Row」と「Columnのidentifier」を指定してデータの請求がされる(tableView:objectValueForTableColumn:row:)んで、それに対
応するデータを配列から探して返してやればOKだった、と理解してるん
です。
でも、NSOutlineViewではそれに相当するメソッドが見つからなくて・・
もしや、outlineView:objectValueForTableColumn:byItem:
なのかな?とも思いましたが、「itemって何が渡されるんだ?」状態です。
うーん、難しい・・・
581 :
579 :02/06/05 14:47 ID:kDYsDqli
>580 NSOutlineViewの場合、横並び一列がデータひとつに対応します。 Finderのリスト表示で言うと、ファイルの場合は名前、作成日、容量等のデータをひとつの単位で管理していますね。 また、フォルダの場合も同様で、名前以外は表示物がないというデータを所有しています。 このひとまとまりを(設計者が)クラスにまとめ、その各々のインスタンスが 引数itemとして渡されます。 さらに、itemにnilが渡されたときは(仮想的な)トップレベルのアイテムだとして処理します。 手順としては、 1,- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item でそのアイテムが所有する子供の数を返します。 もちろんこのときitemがnilであれば、(実際に)トップレベルに表示するアイテムの数を返します。 2,- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item で実際にアイテムを登録します。 indexは配列の要素番号のようなものです。 3,- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item これが実際に表示に使われるインスタンスを返す部分です。 itemの中でtableColumnの位置に表示するNSCell(のサブクラス)のインスタンスを返してやればいいわけです。 後は、子供が存在するアイテムのときに outlineView:isItemExpandable: でYESを返してあげるようにすればrequireなメソッドは出来上がりです。
582 :
名称未設定 :02/06/05 21:41 ID:wENTdSZg
>>581 ありがとうございます!
説明を見させて頂いて、完全に理解できたわけではありませんが
>NSOutlineViewの場合、横並び一列がデータひとつに対応します。
>Finderのリスト表示で言うと、ファイルの場合は名前、作成日、容量等のデータをひとつの単位で管理していますね。
> また、フォルダの場合も同様で、名前以外は表示物がないというデータを所有しています。
>このひとまとまりを(設計者が)クラスにまとめ、その各々のインスタンスが
引数itemとして渡されます。
このあたり、なるほど〜!という感じでした。
この教えを頭に入れつつ、サンプルコードを眺めてみたいと思います。
想像するに、NSArrayのなかにNSArrayを入れるという階層構造
データは、このままではOutlineViewでは使えなくて、配列の要素それぞ
れがオリジナルのクラス(のインスタンス)となるようにデータを作らな
いといけないということでしょうか。
・・・む、やっぱりわかってないかも・・・
>>582 >・・・む、やっぱりわかってないかも・・・
>>581 じゃないが、わかってないよ。
たぶん、
- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item
と
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
の違い、関係で混乱している。
前者は
「outlineViewに表示する予定の親要素itemのindex番目の子要素を返す」
後者は
「outlineViewのtableColumnに実際に表示する要素itemを表現するオブジェクトを返す」
NSArrayのなかにNSArrayを入れるという階層構造をDataSourceが持っているなら、
前者のメソッドitemはNSArrayインスタンスかnilが渡ってくることになる。
584 :
579 :02/06/06 08:59 ID:456PH7xf
>582 じゃあこれでどうだ? 横一列のデータ並びの事をrowDataと呼ぶならば、 itemはどのrowDataに対する操作をすればよいのかを識別するためにだけ存在しています。 たとえば、rowDataが配列の要素として保持されているなら、 その要素番号をほりこんだNSNumberのインスタンスであっても何ら問題はありません。 もちろんitemがrowData自身を表現したものでもかまいません。 要は、引数itemによってrowDataが一意に決まればよいのです。
585 :
578 :02/06/07 00:05 ID:JaEUvaXt
ありがとうございます。 今は時間がなくて試せてませんが、幾らか頭の中で整理がついてきた気が します。 もう少し考えてみますね。 またわからなくなったら、ご指導お願い致します。m(_ _)m
Obj-cマンセーマンセー言われながら、ちっとも使えそうな アプリが出ないのはなぜですか? 吊るヤンも10倍早く作れるって書いてたでそ? 煽りじゃなくって、やっぱカーボソの方がいいんでないのかな?
587 :
578 :02/06/07 00:37 ID:JaEUvaXt
ありがとうございます。 今は時間がなくて試せてませんが、幾らか頭の中で整理がついてきた気が します。 もう少し考えてみますね。 またわからなくなったら、ご指導お願い致します。m(_ _)m
588 :
578 :02/06/07 00:37 ID:JaEUvaXt
ありがとうございます。 今は時間がなくて試せてませんが、幾らか頭の中で整理がついてきた気が します。 もう少し考えてみますね。 またわからなくなったら、ご指導お願い致します。m(_ _)m
589 :
578 :02/06/07 00:41 ID:JaEUvaXt
・・・・やってもーた・・ ごめんなさいみなさん
>>586 しかし、いまだにカーボソかCocoaかって言ってる人がいるとは。。
使う側にしたらCarbonでもCocoaでもどっちでもいいんだけどね。 作る側にしたら天国と地獄ぐらいの差があるよ。
592 :
. :02/06/08 06:11 ID:dxfc7LJ0
.
593 :
名称未設定 :02/06/08 13:23 ID:mGj7JGam
自分の脳内難易度ランキング アセンブラ>C++/C(CodeWarrior)>Pure Java>REALbasic>Cocoa だいたいこんな感じです。Carbonはいずれ用無しになるものと信じて 自分はCocoaしかやってない。もちろん今現在のCocoaにも限界がある ことは承知の上。
プログラミング環境のバカ度ランキング。 アセンブラ>C++/C(CodeWarrior)>Pure Java>REALbasic>Cocoa だいたいこんな感じです。Cocoaはいずれ用無しになるから 自分はC++しかやってない。もちろんCarbonにも限界がある ことは承知の上。
595 :
名称未設定 :02/06/09 01:36 ID:3Rpkl59D
128×128のアイコンなんか描けねえよう。・゚・(ノД`)・゚・。 32×32ならドット絵なんでごまかしが効いたけど。 これだけの為に3Dソフト買うのもなあ。 みんなどうしてるの?
596 :
名称未設定 :02/06/09 02:12 ID:uK7Xw/bN
これって不等式だよ。 結局、アセンブラが一番バカってことでいいのか? それとも594が一番?
597 :
名称未設定 :02/06/09 02:22 ID:9q7hb5M7
>>595 FinkでGIMPはどうよ
まさかGIMPでつくったリソースはGPL、なんてことはないよね?
ついでだけど、NSTaskとかで非GPLなプログラムからGPLのプログラムを呼び出した場合、ライセンスはどうなるんだろう? ProjectBuilderもgccつかってるからたぶんOKだと思うが、、、
598 :
597 :02/06/09 02:25 ID:9q7hb5M7
あ、3Dソフトか、、、 やっぱりみんなアイコンは3Dソフトつかって描いてるのかな?
みんな頑張って、いつかiTteyhoshiを再開発してくれ(涙)。
600 :
名称未設定 :02/06/09 05:12 ID:I4ggFfzX
601 :
名称未設定 :02/06/09 05:12 ID:eU6DvBrW
602 :
595 :02/06/09 08:11 ID:3Rpkl59D
みなさん、ありがとう。
>>597 フォトショ持ってるから、古いのだけど・・・
でもGIMPもよさげ、なのでいまコンパイル中。
>>601 ちっちゃい画像ですしこれで十分いけそうですね。
がんばっておぼえよかな。
603 :
597 :02/06/09 14:53 ID:9q7hb5M7
>>600 ありがと
FAQに思いっきり既出でした
>GPLプログラムの出力結果もGPLによって保護されるのは、どんな場合ですか?
>
>プログラムが、プログラム自身の一部を出力結果にコピーするときのみです。
これとか、
>GPLの下で公開されていたプログラムがプラグインを使うとして、
>プラグインのライセンスにはどのような条件がありますか?
>
>それはプログラムがどのようにプラグインを呼び出すかに依ります。
>プログラムがforkやexecでプラグインを呼び出すならば、
>プラグインは別のプログラムであり、メインプログラムのライセンス
>はそれらにはなんの条件も課しません。 (以下略)
これですな、たぶん
604 :
名称未設定 :02/06/10 22:56 ID:7TXkhKvQ
age
605 :
名称未設定 :02/06/14 22:40 ID:hH6MJZbZ
あの、JavaでCocoaいじりはじめたばかりの厨房なんですが、 Java-CocoaでAppleScript内のハンドラ(メソッド?)を実行した結果を受け取ったり することって難しいですか?どこかにサンプルないですかね… (AppleScriptアプリに対し引数を与えたりもしたい。。。) 難しいかな、ヤッパリ...
607 :
名称未設定 :02/06/16 02:32 ID:Y+Si9oYk
Cocoaでファイルを書き出すと作成日が扱えないんだが(常に作成日と更新日が同じになる)どうすべきだろうか? とりあえずTextEditのコードを見ると中間ファイルに書き出し、exchangedata()という関数で中間ファイルと上書きするファイルを交換し、ファイル作成日をもとのまま保っているみたいだ。 exchangedata()は/usr/include/unistd.hに定義してあって、/* HFS & HFS Plus semantics system calls go here */と書いてある。 つまり作成日はHFSとHFS+でしか扱えないってことだろう。でもわざわざ中間ファイルを作ったりするのも面倒というか無駄というか一時しのぎのような、、、。 ファイル作成日って重要かな?
>>607 それは昔からAppleが推奨しているファイルセーブのやり方ですな。
上書きする場合に、書き込みエラーが起きても最悪もとのファイルだけは
安全なようにってことみたいっすよ。
609 :
607 :02/06/16 12:54 ID:Y+Si9oYk
>>608 いや、それはCocoaでもwriteToFile:atomically:とかでatomicallyをYESにすればできる。
問題はそれをやるとファイル作成日が消えちまうってことで、そのためにTextEditではatomically:YESを独自に実装しているってことだと思うんだが。
610 :
608 :02/06/16 17:00 ID:dKpueTjT
>>609 中途半端な絡みかたして、申し訳ないっす。
Cocoaのデフォルト実装ではatomicallyではあってもそのexchangedata()は
使ってないってことっすか。こういう場合はexchangedata()みたいなファイルの
中身ではなく管理情報を交換するAPIが必須のようにも思えるけど、ほかの
ファイルシステムではどうやってるんすかね。
マルチファイルシステムというなら、そのようにうまく実装してもらいたいっすね。
つーか、そのうちデフォルト実装を直すんじゃないっすか?いつになるかは分かりませんが。
バグに近い感じ。
611 :
607 :02/06/16 18:22 ID:Y+Si9oYk
>>610 いえいえ。
NSFileManagerで取得できるfileAttributesはHFSのファイルタイプとクリエータがあったが、作成日はないんだよね。
これに作成日の情報を追加してくれれば、changeFileAttributes:atPath:で設定できるんだが、、、。
まあ、ファイルシステム依存の部分はNSFileManagerである程度カバーしてるようだから、いずれ追加されるかな?
612 :
名称未設定 :02/06/16 19:00 ID:9QjqMYPo
>>607 どんなタイプのアプリつくってるの?
もしエディタとかならDocument based Application
にすれば、そのへんは面倒見てくれるよ。
正直、TextEditはあんまり参考にならん。
そうそう。 Cocoa+Javaの最初のテキストエディタのチュートリアル見てから TextEdit見たらチンプンカンプンだった。 NSDocumentは編集途中でファイル移動しても面倒見てくれるし。
614 :
608 :02/06/17 01:33 ID:6rFKsZTa
>>612 ,613
もしかしてNSDocumentのwriteToFile:ofType:をそのまま使えばいいのかな?リファレンスよく見たら書いてあった。
最初、作成日とか考えてなかったから自前のメソッドでやってた。
あとTextEditは古いメソッドつかってるので、あんまり参考にならんとは思う。
いや、NSDocumentControllerとNSDoumentは 本当に普通のDocument-basedアプリしか作れない。 その代わり、dataRepresentation周りを一通りいじるだけで ファイル操作は一切コーディングしないで済む。 ちなみにNSDocument.writeToFileは本当に書き込みをするだけで その他の処理はその外でやっている。
むしろSketchの方が参考になるという罠。
むしろSketchの方が参考になるという罠。
618 :
名称未設定 :02/06/22 20:58 ID:tQa2gaFh
age
619 :
名称未設定 :02/06/29 11:48 ID:WPa5HIYp
質問です。 プログレスバーを回しながら裏で処理をしたいのですが、 上手くいきません。 大雑把にこういう方法でやればできるとか、 ここを見ろとかでいいので教えて下さい。 やろうとしてる事。 1、シート上でプログレスバーを回しつつ、ディレクトリを漁って画像を探す。 2、画像が見つかったらサムネイル化してシートの親ウインドウ上の独自ビューに表示 あ〜〜〜俺の軽量得ろ得ろ画像表示ソフトが〜〜〜!!
>>619 そういうのはスレッド使えばできるんじゃない?
621 :
619 :02/06/29 14:16 ID:WPa5HIYp
メインスレッドでスレッドをロックすると、 プログレスバーが止まると思うのですが、 これはどうにもなりませんか? NSMutableArryに画像を登録してますので どうしてもロックが必要です。 また、プログレスバーを回してる間に [NSView display]; をロック無で呼んでもいいですか? マルチスレッドがいまいち分ってないからだとは思うんですが、 デッドロックしまくりなんです。
622 :
名称未設定 :02/06/29 14:58 ID:3EKJ3569
>>619 Thread使わないでTimerはどう?
- (void)beginSheet {
[NSApp beginSheet:sheet
modalForWindow:window
modalDelegate:self
didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:)
contextInfo:NULL];
[NSTimer scheduledTimerWithTimeInterval:0.1
target:self
selector:@selector(run:)
userInfo:nil
repeats:YES];
}
- (void)run:(NSTimer *)timer {
//メインの処理: 実行中は描画が止まるので、処理をテキトーに分割してこのメソッドはすぐ終了させる
[indicator incrementBy:1.0];
//すべて処理が終了した場合
[timer invalidate];
[NSApp endSheet:sheet];
}
こんな感じでどうか
もしかしたらindicatorの値にlockを設定して、indicatorの値変更はTimerでやって、メインの処理はThreadを使った方がいいかも
別ThreadでNSViewを扱うときはlockFocusすりゃいいんだっけ?
623 :
名称未設定 :02/06/30 19:59 ID:eVixERmH
Java - Cocoa から プロジェクト内にあるAppleScriptのハンドラを引数つけて呼び出して実行させる方法はないものか? 誰か、教えてくれ、マジ、たのむ。
624 :
619 :02/07/01 11:42 ID:VBi0B0rW
>>620 >>622 レスありがとうございます。
いろいろやってはみましたが、
プログレスバーがカクカク動くのを解消できませんでした。
基本設計ミスと思います。(泣
手を抜いてViewに画像データ配列を持たせたのが失敗みたいです。
NSTableViewのように表示とデータを完全分離させようと思います。
相当時間がかかると思いますので、レスポンスがなくなりますがご了承ください。
625 :
名称未設定 :02/07/02 05:58 ID:C1XZckUw
はじめまして、アホな質問やと思うんですけど。 Mac暦4ヶ月の初心者です、Macの前もウィンでインターネットとメール ぐらいしかやってなかったんですけど。 Macに乗り換えてからすごく楽しいんです。仕事に使ったりしないんで、 用途は、あいかわらずネットとメール、iTunesぐらいなんですけど、 初心者なりにiConを変えたりThemeを変えたりして楽しんでます。 ここを読んで、ひょっとしたら俺も勉強したらいけるかもって勘違いしそう なんですが、まったくの素人でもここで紹介されている本とかで勉強すれば まねごとぐらいはできるもんでしょうか?調子に乗ってとりあえずAppleの Developerツールはダウンロードしました(まったく使えませんが) 環境は、旧 iMac 600 OS X10.1.5です。 とりあえず明日本屋に行ってきます。やっぱ無理かな…
まねごとしか出来ないからそのつもりで。
628 :
名称未設定 :02/07/02 08:41 ID:fgb/uMDZ
>>626 十分です!
>>627 ありがとう、勉強するには「明解C言語 入門編」がいいですか?
ほかに初心者向けにいいのがあれば教えて下さい。
629 :
名称未設定 :02/07/02 08:55 ID:UkF9qFNW
Developer Toolsを既にダウンロードしているだけでも、やる気あるじゃん。 あれって結構面倒だよね。ダウンロードする前にいろいろ記入しなけりゃ ならんし。まあ、C言語は制御構造の書き方と構造体とポインタさえ分かれば、 OKじゃないの。いまさら共用体とか覚えても意味ないし、関数もあんまり 詳しく知っててもどうせ使わないから、基本的な関数の形がわかればよい。
630 :
名称未設定 :02/07/02 13:23 ID:XXoce8aw
Obj-C だと構造体もあんまり使わんなぁ... もちろん C の関数を使用する場合は必要になるから覚えといて損はないけど. あと C 言語だけだとオブジェクト指向の概念が把握しづらいかもしれないから, 慣れてきたらそういうのにも触れていけばいいかと.
631 :
名称未設定 :02/07/02 14:06 ID:i+UlKfUA
>>628 ピアソンエデゥケーションの
「Cocoa programming for Mac OS X」が日本語訳されて
「Mac OS X Cocoa プログラミング」というタイトルで
つい最近出たけど、これお勧めよ。原文のやつを読んで
これが翻訳されたらいいのになーと思ってたけど、
いい本はちゃんと翻訳してもらえるんですね。
632 :
名称未設定 :02/07/02 20:07 ID:burYTMTJ
>>629 ワケ分からんかったから、適当に記入して、3回目ぐらいで
やっと落とせました。でも使い方さっぱり…
>>631 あ、それ立ち読みしたやつかもDebveloper Toolsの使い方とか
があってわかりやすそうやった。
明日確認して買ってきます。
また、アホみたいな質問するかもしれませんが、よろしくお願いします。
633 :
629 :02/07/03 04:04 ID:UIfKX4zL
>あと C 言語だけだとオブジェクト指向の概念が把握しづらいかもしれないから, >慣れてきたらそういうのにも触れていけばいいかと. はじめて言語を学ぶ人がいきなりObjectiv-Cでオブジェクト指向を勉強するのは 正直かなり敷き居が高いかもしれないと思ふ。Javaを勉強した人が他のオブジェクト指向 言語やると楽勝で理解できると思うのだが。だからといってJavaからやれとも言いにくい。 継承とかオーバーライドとかオーバーロードとか、ポリモルフィズムとか、そういうこと が詳しく説明されているCocoa関連の日本語の本て、まだほとんど存在しないような気がする。 広文社の『Objective-C』くらいか。
634 :
. :02/07/03 13:33 ID:xpgRHCFg
>>633 >はじめて言語を学ぶ人がいきなりObjectiv-Cでオブジェクト指向を勉強するのは
>正直かなり敷き居が高いかもしれないと思ふ。
敷き居の高さは関係ないと思うぞ。
他の言語の変な癖を付けるより、最初からオブジェクト指向を覚えた方がいい。
C言語は最後に覚える言語だよ。
635 :
名称未設定 :02/07/03 15:31 ID:b18i+ECi
JavaよりObjective-Cのほうが憶えるの楽なのに。 って、もう何回も言いつづけているような気がする(w
一度Cを覚えてしまっている人には楽だよね。 それから、パッケージやアクセス権の概念が無い分覚える事も少ない。 ただし、ゼロから「オブジェクト指向プログラミング」を覚えるなら Javaの方が楽だよ。
当方、VB→Javaときて、Javaが経歴が長くなってしまいました。 こんな私でもObjective-cはマスタできますでしょうか。
639 :
名称未設定 :02/07/03 18:50 ID:b18i+ECi
>>637 Javaのコード1行は、ほぼObjective-Cのコード1行に
置き換え可能だよ。試してみ。笑えるほど簡単なんだ。
細かいこと言うとガベコレしないから明示的にreleaseが必要とかはあるが
640 :
名称未設定 :02/07/03 22:26 ID:vZVVew/U
>>631 その本読んでみた。マジでわかりやすい。
いままでなかなかマルチドキュメントアーキテクチャとか、nibファイルの役割
とか理解できなかったけど、この本読んだら一発で分かったよ。
641 :
:02/07/03 23:33 ID:uslINy1X
>>641 つい最近原本を買ったばかりでまだ読んでる途中なのに
こんなタイミングで翻訳版が (しかも低価格で) 出るとは... 鬱。
// でもこっちも買うかも (w
>>364 亀レス&すれ違いですまんが
>'98〜'99年頃に河村政雄さんがMacPowerで連載していた「役立たずBe級プログラマー
>宣言!」は、
〜中略〜
>残念ながら単行本は出ていません
河村さんの本なら
『BeOSプログラミング入門』
河村 政雄+武舎 広幸 著
プレンティスホール出版
ISBN4-89471-035-8
が、またBeOSのプログラミング本なら
表題 Art of BeOS Programming
著者古賀信哉
出版社ソフトバンク(株)
ISBN4-7973-0496-0
とありますよ。
まぁBeOSがああなっちゃいますたが。。。
っていうことは、全くの初心者を対象としたこのスレのおすすめは、 「明解C言語 入門編」のあと、ピアソンエデゥケーションの 「Mac OS X Cocoa プログラミング」ってことでOK? それともいきなり「Mac OS X Cocoa プログラミング」でも大丈夫? 全くの初心者ってのは、今までプログラミングを 全くやったことがない人ってことでお願いします。
645 :
名称未設定 :02/07/06 00:01 ID:k3aWIWhl
「Mac OS X Cocoa プログラミング」は、Cocoa初心者向けであって、プログラミング初心者向けの本じゃないです。条件分岐やらループやら、ほんとのプログラミングの基礎は別の本で学ばないとだめでしょう。
646 :
644 :02/07/06 00:12 ID:kE/7LYid
>>645 ありがとうございます。
ということは、全くのプログラミング初心者が
Cocoaを学びたい、と思ったら、「明解C言語 入門編」あたりを
参考に、やっぱりCから、ってことになるのかな?
なかなか大変そうな道のりだ…
647 :
名称未設定 :02/07/06 00:56 ID:u4bRqppK
このスレにお世話になっている全くの初心者です。 その全くの基準も パソコン、英語力、数学等も含めて 多分最低ラインかも… でも、無謀にもプログラミングに挑戦したくて「明解C言語 入門編」と 「Mac OS X Cocoa プログラミング」を買ってきました。 645さんが言う通り、「Mac OS X Cocoa プログラミング」は、 キツイです。(ぺらぺらっと、めくっただけで諦めました。) とりあえず基本やっ!と気を取り直し「明解C言語 入門編」に 取り組んだんですが、ソースプログラムをどこに書き込んでええか分からず、 このスレをすべて読み返し、次は、実行の仕方にも悩み、なんと15と37の 足し算の結果を表示さすのに役3時間!やっぱ無理ですよね、こんな俺は… 昔、電気工事の勉強するのに初心者用の参考書でもおいつかず、算数の参考書 を買って勉強したぐらいですから。 本を2冊も買ったことだし、「明解C言語 入門編」で頑張ろうと思いますが C言語を勉強するに当たり、基本の基本を学べる本があれば誰か教えて下さい そんもん、あるわけないか…「くそぉ〜オカンの言うこと聞いてもっと勉強 しといたらよかったぁ〜」でも、もうちょっと頑張ってみます。 長くてすいません。
Cなら今も昔も共立出版の「プログラミング言語C」でないの? ISBN 4-320-02692-6 ね。他いらんでそ。
>>648 あれは確かに基本は網羅してあるバイブル的な本だけど
>>647 が申告しているようにゼロから積み上げようとしている人に
積極的に勧めるのはちょっと気が進まないかも...
// でも持っていて損はない本です.
分厚いが、「独習C」は確実に基礎から固めるには持って来いだ。 ただ、「プログラミングの真似事」で十分なら、RubyやPerlで 取り敢えず条件分岐やループだけ覚えるのも手だ。
ここのスレであがっている本なら、どれも実績があるから大丈夫だと思うよ。 とりあえず、とっととはじめてみれ。1日でも早くコードを書きはじめるのが吉。 コンピュータ好きな人なら、プログラミングは絶対面白いよ。 まあ、面白すぎて廃人同然になるやつも続出なわけだが。
>>643 364を書いた本人です。河村さんの「BeOSプログラミング入門」はBeOS APIの
チュートリアルなので、Mac OS Xには通用しません。古賀さんの本もやっぱりチュー
トリアル。河村さんがま〜ぱに書いていた連載は、殆どが言語の解説に充てられてい
て、Cから始まってC++に入り、BeOSでウィンドウを出した辺りで終わりました。
あの時代はBeOS(β版)と開発環境がタダで手に入ったので、それを使って一から
C/C++を解説しようという企画でした。言っちゃ悪いですけど、プログラマーの人って
コード書くのは上手なんだろうけど、文章で他人にプログラミングを解説するのは苦手
な方が多いみたいで、その中で、ライターとしても活躍している河村さんの文章はとても
分かりやすかったのです。
今だとMac OS X Developer Toolsが無料でダウンロードできるし、しかもそれが
ちょっと前なら60万円はした事を知っている人なら感涙ものです。ただ、RADツール
であるが故に動作の本質がなかなか見えてこない所があるように思います。これから
プログラミングを始めて、Cの制御文とポインタは分かった。さあオブジェクト指向の
概念を理解しよう……という所で、殆どの入門書は抽象的な概念から始めますよね。
オブジェクトを人間に例えるとか何とか。それを読んだ人は「これをプログラミングに
どう利用するんだ?」と頭をひねると思います。私の考えですが、オブジェクト指向を
教えるにはまずオブジェクトの生成と破棄のプログラミングを(意味が分からなくても)
書かせてみて、後から抽象的な概念を説明した方が分かりやすいんじゃないかと思いま
す。抽象的な概念は、プログラミングのデザインパターンを考える時に必要な知識であっ
て、最初は必要ありません。実際には間違っていても、「要するに型にとっての変数が
クラスにとってのオブジェクト(インスタンス)なんだよ」と教えておいて、後で訂正
した方が分かると思うのですが、どうでしょう?
653 :
646 :02/07/06 20:43 ID:QRK6LE+1
みなさん、ありがとうございました。
思い切って始めようかなと思います。
>>651 >まあ、面白すぎて廃人同然になるやつも続出なわけだが。
それを危惧してなんだかんだと躊躇しております。
大昔、仕事そっちのけで、ファイルメーカーのスクリプトを
考えていたのもよい思い出です(w
>>652 確かに抽象的な概念をいきなり説明されると混乱するかもしれませんが、
最初に間違った考えを説明するのは、抵抗あります。
多少遠回りになりますけど、きっちりと概念を説明した方が良いのではないでしょうか。
個人的には、プログラミングのやり方を説明するよりも、
なぜオブジェクト指向プログラミングっていうものが存在するのかを
話した方が、教えられる側にとっても目的がわかっていいんじゃないかと。
655 :
名称未設定 :02/07/09 00:09 ID:Nfu6oWqR
このレスを読み、無謀にも知識ゼロから勉強しようとしている者なんですが 「明解C言語」を買い勉強を始めたんですが、いきなりつまずいています。 DeveloperTool の ProjectBuilderを使ってるんですけど、 書式文字列(format string)に日本語を当てはめると、ビルドは問題なく完了 するんですが、実行結果が文字化けしてしまいます。 気にせず進めばいいんですが、ゼロからの勉強なのでできれば本のとおりに やって行きたいんです。Terminalを使ったらできるみたいなんですが、悲しいことに使い方がわかりません。 「そんな奴は、あきらめろ!」と言われればそれまでなんですが、まわりに聞ける人がいないんで、誰か教えてくれませんか? 自分でも調べてみたんですが…
656 :
名称未設定 :02/07/09 00:29 ID:ZuUe3kGn
>>655 なんとなくわかるようなわからんような...
こういう場合は言葉での解説に加えて該当部分のソースコードを貼付けた方が
回答する方にも分かりやすいと思いますよ。
657 :
名称未設定 :02/07/09 01:33 ID:Nfu6oWqR
>>656 すいません、とりあえず本のソースをそのまま打ちます。
#include <stdio.h>
int main(void) {
printf("今日は。私の名前は柴田望洋です。\n");
return(0):
}
ってやつなんですが、ビルドは完了するんですが日本語の部分が
文字化けするんです。気にせず進めばいいんですが、なんかすっ
きりしないんで。
あっ、それから警報を発する拡張表記 \a も反応しません。
なんとか日本語を表示できないでしょうか?
説明が足りなくてすいません。
>>657 ちと自分も気になったんで試してみました。
家では問題なく日本語表示されました。
(ただreturn(0)の後はコロンじゃなくてセミコロンですね)
Build&Runで表示されません?
ProjectBuilderのバージョンや設定の問題なのかな?
>>657 Tool>Standard tool
でプロジェクト作ってみたけど、日本語そのままでいけるよ。
(DevTools December 2001)
\aはダメ。Terminalなら鳴った。
Terminalでやるには
・ソースファイル(test.c)を適当に作成
・cc test.c -o test でコンパイル
・./test で実行
660 :
名称未設定 :02/07/09 02:41 ID:Nfu6oWqR
>>658 何がアカンねんやろう。
今また、やってみたんですがだめでした。
(ちゃんとセミコロンにして)
バージョンは、1.1.1です。
Build&Runってビルドと実行のことですよね?
英語がわからないんでProject BuilderのLanguagesでEnglishの
チェックをはずしてるんですが、関係ないですよね?
あと、設定はテキストのフォントが見にくかったので14にした
ぐらいです。
無駄だと思いますが、Englishのチェックをもとにもどしてやってみます。
661 :
名称未設定 :02/07/09 03:05 ID:RZhd0hUF
660ですけど、最悪です。 なんとかならないものかと、ProjectBuilderの環境設定で 行末コードをいろいろ変えていたら、環境設定がでなくなりました。 再起動してもだめ… もう一度ダウンロードしなおしてやってみます。
>>647 プログラミング歴2年、Cocoaは半年くらいの素人プログラマ
の勝手な意見ですが・・・
>パソコン、英語力、数学等も含めて
全部、慣れです。たとえば技術文書なども英語の長文に怖じ気
づかない程度の度胸があれば辞書と翻訳エンジンでどうとでも
なります。というか細かい単語は無視。
数学は電卓を持っていれば十分です。
C言語の入門書はクリティカルなものに出会ったことがありません。
お薦めはK&RとK&Rの間違いを指摘している本をセットで持つことです。
後者は最近では前橋和弥さんの本なんかは文章も平易で、ユーモアもあり
読みやすいと思います。
あとはトライ&エラーで自然とプログラムが組めるようになります。
663 :
名称未設定 :02/07/09 03:41 ID:RZhd0hUF
>>662 いきなり転けてますが、頑張りま〜す。
みなさん迷惑かけてすいません。660ですが初期設定捨てたら、
環境設定がでるようになりました。
あいかわらず日本語は表示されませんが、
とりあえず、英語はちゃんと表示されるので、
このまま進むことにします。
>>659 ありがとう。
明日、Terminalをためしてみます。
>>662 前橋和弥さんというと下の2つが新しいかな。
「C言語ポインタ完全制覇」
「C言語体当たり学習徹底入門」
個人的にこの本は一度挫折した人にもお勧めですね。
初めの頃に陥りがちな「なんで」の部分に多くページを
割いている点にも好感が持てます。
ソースファイルの文字コードはどうなってますか? PBの場合はShift_JISでないといけなかったと思います。 また、TerminalはOS標準のものは日本語に対応してないので JTerminalを使わなければいけません。 こちらは文字コードがEUCにしか対応してないので文字コードをEUCに変更してから コンパイル、実行する必要があります。 文字コードの変更はPBでファイルを選択して、[コマンド+i]で。
666 :
名称未設定 :02/07/09 19:25 ID:oH4p+HB/
>>665 文字コードを変えてみてもだめでした。
行末コードも、Unix Mac Windows全て試しましたが
だめでした。
やっぱり根本的に何かまちがってんのかな。
ちゃんとビルドは、完了してるだけに悔しい〜!
667 :
名称未設定 :02/07/09 19:59 ID:ZuUe3kGn
>>666 ProjectBuilder(というか DeveloperTools)はいつのを使ってますか?
私はDec 2001で問題なく日本語を扱えます。
今出てるBeta版は日本語のリソースを含んでいなかったと思いますが、関係あるかも?
詳しい検証を行っていないのであくまで妄想ですが...
668 :
665 :02/07/09 20:16 ID:IwsPtpqe
>>667 >>660 にある通り1.1.1だとするとPB2.0βではないと思われ。
つか、うちはベータ使ってますがちゃんと表示できますし。
逆に古いと駄目とか、そういうことってありましたっけ?
私の記憶では、昔から普通に出力できていた気がするのだけれど。
あ、ところで環境設定でフォント替えたそうですが、
まさか日本語が表示できないフォントだったとか……?
はにゃ? 日本語使えて当たり前だったのか。。うちも化けっぱなしダタヨ。
670 :
名称未設定 :02/07/09 21:27 ID:oH4p+HB/
>>667 668
Dec 2001です。
フォントはMonacoそのままで大きさを変えたでだけです。
行末コードっていうのは、何を選択すればいいんですか?
一応すべてでためしたんですが…
文字コードをShift_JISに変えたら、日本語入力する時に
UnicodeにするかUTF8にするかっていう表示が出なくな
ったので、行けるかもって期待したんですけどだめでした。
みなさんは、ソースだけじゃなくて結果にも日本語が表示
されるんですよね?
無駄だとは思ったんですが、一度捨ててダウンロードしな
おしてもだめでした。
あ〜自分の知識の無さに腹が立つぅ〜!
671 :
668 :02/07/09 22:48 ID:IwsPtpqe
>>670 エディタのフォントでなくて実行結果を出力する場所のフォント設定の話だったんですが。
でもその様子だとデフォルトからいじってないようですね。
(というかDec 2001ではいじれなかったかも知れない。うろ覚え)
あと行末コードはこの話には全く関係ないです。どれでもおんなじ。
しかし、通常は日本語入力する時にUnicodeにしますかという警告は出ないはずなんだけどなぁ……。
これが出るのは、Shift_JISには無い文字列を入力しようとした時だけですよ。
具体的にどんな文字列を表示させようとしてるんですか?
672 :
名称未設定 :02/07/09 23:35 ID:beygJ8GL
>>671 何度もすいません。
「明解C言語」という本で勉強しています。
入力した文字列は、本のテキストどうりの、ありふれた日本語です。
「こんにちは。私の名前は柴田望洋です。」とかです。
ひょっとして入力画面が間違っているのかな?
Project Builderを立ち上げて、Atandard Toolを選び、左側のSource
フォルダ内にあるmain.cというテキストを消してその上から書いています。
デフォルトで下のようなソースがあります。
#include <stdio.h>
int main (int argc, const char * argv [ ])
{
// insert code here. . .
printf("Hello, World! \m");
rerurn 0 ;
}
この"Helle, World!"ってとこに日本語を当てまめても、ビルド結果は、
文字ばけします。
やっぱりゼロから1人では、無理かな…
673 :
名称未設定 :02/07/09 23:41 ID:VyOOrb/8
>>672 Cocoaではソース中に日本語などのマルチバイト文字は入れちゃいけない
ルールになってて、日本語を表示する方法が別にあります。
日本語の表示に関してはほっといて進んでいっていいと思いますよ。
(あんまり詳しくないのでこの辺で。間違ってたらどなたかご指摘を。)
674 :
名称未設定 :02/07/09 23:55 ID:3PyD1ln+
>>673 ありがとうございます。
無視して進みます。
あ〜672の書き込みも誤字だらけや、すいません。
Atandard Tool=Standard Tool 当てまめても=当てはめても
みなさん色々ありがとうございます。
懲りずに、ゆっくりですが頑張ります。
>>672 はい。シンタックス(構文)エラーです。正しくはこう書きます。
---------
#include <stdio.h>
int main (int argc, const char *argv[])
{
// insert code here. . .
printf("Hello, World!\n");
return 0;
}
---------
エラーが出た箇所について説明しますと、まず、main関数の第二引数、argvの前の
ポインタ(*)ですが、argvと離して書いてはいけません。「*argv」このようにくっつけて
書いて下さい。あと、その後の配列の角括弧ですが、これも中にスペースを入れては
いけません。何もないので「[]」このように書いて下さい。
それと、printfの引き数ですが、改行を表すコードは\mではなく\nです。最後。
rerurnではなくreturnです。
最初のうちはエラーメッセージの意味さえ分からずに戸惑ってしまいがちですが、
タイプミスが無いか、テキストと画面を交互ににらめっこすると、馬鹿馬鹿しいタイプミス
でエラーが出ている事が分かります。例えば行の最後にセミコロンを打たないと、コードと
しては一行として解釈してしまうので、エラーメッセージは意味の分からない事を羅列
します。Cの一行はセミコロンまでで一行なので、エラーメッセージで「セミコロン打ち
わすれてない?」などと気の利いた事は言ってくれません。
これからもめげずに頑張って下さい。私で分かる範囲なら答えます。
676 :
名称未設定 :02/07/11 05:28 ID:SZ3JqVnf
皆さん、お騒がせしてすいませんでした。 この前から、Project Buklderのビルド結果に日本語が表示 されないって悩んでいた者です。 できました!もう無茶苦茶しょうもないことが、原因でした。 恥ずかしい話なんですが、英語もわからないクセに見た目が、 カッコいいんで環境設定で日本語と英語の優先順位を入れ替えて 英語表示にしていたのが原因でした。 日本語を1番上にもどしたら、ちゃんとビルド結果も日本語で 表示されるようになりました。 また、しょうもない書き込みするかもしれませんが、 見捨てずに、アドバイスお願いします。
678 :
名称未設定 :02/07/12 23:09 ID:+O5Sqa6O
Macの開発者は心が狭い。あのフリーソフトの少なさは異常だ。 糞ソフトでもシェアウェア名乗ってるんだもんなぁ。
>>678 昔はこんなものまで?っていうほどフリーソフトが多かったんだけどね。
RealBasicのせいかなぁ???
680 :
名称未設定 :02/07/13 22:42 ID:KLmktXts
私もとうとう始めました。
>>664 を読んで、 「C言語体当たり学習徹底入門」 でやってます。
その例題なんですが、なんだか異様にしょうもないところで
つまずいています。
#include <stdio.h>
int main(void)
{
intheight;
printf("身長を入力してください>");
scanf("%d", &height)
printf("身長は%d", height);
return 0;
}
という感じなんですが、ビルドはできて、実行の段階で、
いつまで待っても「身長を入力してください>」が出てきません。
STOPボタンが表示されています。まさか、途中で入力できない、
とかじゃないですよね?
いったい何をどうしたらいいものやらさっぱり分かりません。
だいたい、ここで聞くことがふさわしいのかどうかすら分かりません。
その点も含め、よろしくご教示お願いいたしますm(..)m
なお、scanfはわざとだそうです。
681 :
680 :02/07/13 22:43 ID:KLmktXts
すみません、書き忘れました。 Project Builder 1.1.1でやってます。
682 :
名称未設定 :02/07/13 22:44 ID:eT9YZEAP
>>680 Terminal.app上でやっているのなら、とりあえず日本語は使わない方が良いです。
683 :
名称未設定 :02/07/13 22:46 ID:eT9YZEAP
>>681 Project Builderでも、今のところは、日本語は使わないようにしておきましょう。
684 :
680 :02/07/13 22:52 ID:KLmktXts
>>682-683 さっそくありがとうございます。
英語にしてみましたが、同様です。
なお、表示させるだけなら日本語でもうまくいきます。
685 :
名称未設定 :02/07/13 23:00 ID:/JbQvXyv
>>680 ちなみにprintfの文字列が表示されないのはバッファが吐き出されてないだけで,
fflush(stdout); の一文をprintfの後に置いてやれば表示されるはずです.
// ここらへんは初心者の方には少々難しいかもしれませんが,
// 今のところあまり気にしない方がいいかも...
また, scanfにキーボードからの入力を渡してやるには, 「実行」ウィンドウの内部を
クリックしてカーソルが出た状態で入力してやればいいです.
686 :
名称未設定 :02/07/13 23:00 ID:hv+ci1Uc
Project Builderの実行はバッファリングされているみたいですね。 無理矢理ですけど、 printf("how long is your height>"); fflush(0); こうすればうまくいきますよ。 あとTerminal.app上で実行しても表示されますけど、shellによっては結果が上書きされますね。 printf("your height is %d.", height); を printf("your height is %d\n", height); にすれば表示されますけど、ファイルがutf8になっていると\は円記号でなくバック スラッシュを入力しなければなりません。 /Applications/Utilities/KeyCapsとか使えば入力できます。 Option+\かな?
687 :
686 :02/07/13 23:03 ID:hv+ci1Uc
fflush(0);
はいい加減すぎました。
>>685 のように、
fflush(stdout);
をおまじないとして挿入して下さい。
688 :
680=684 :02/07/13 23:09 ID:KLmktXts
>>685-687 ありがとうございました!うまくいきました。
fflush(stdout);
は、とりあえずおまじないとして入れておいて
追及しないことにします。
本当にありがとうございました。
689 :
685 :02/07/13 23:24 ID:/JbQvXyv
少し掘り下げて言うと, printf()みたいなので出力される文字列とかは 一時的にバッファリング(ためおき)されているから, printf()したからといって すぐに表示されているとは限りません. そこで fflush(stdout); としてやることでバッファリングしておいた内容を 吐き出して表示させることができます. ただ, プログラムの中にいくつもfflush()を書くのもしんどいので, プログラムのはじめの方で setvbuf(stdout, NULL, _IONBF, 0); の一文を入れておいてやれば, 以降でバッファリングは無効になります. C言語の解説書に載っているようなプログラムをProject Builderで 入力・実行する際はこれを入れておくといいかもしれませんね. 頑張ってください.
690 :
688 :02/07/13 23:37 ID:KLmktXts
>>689 ありがとうございます。
教えていただいて、本でも見てみましたが、
setvbuf(stdout, NULL, _IONBF, 0);
は自分では見つけられなかったので、
勉強になりました。ありがとうございました。
ところで、
>C言語の解説書に載っているようなプログラムをProject Builderで
>入力・実行する際はこれを入れておくといいかもしれませんね.
というのは、なぜでしょうか。
というのは、本には、
「scanf()のような入力要求があったときにはバッファの内容がOSに渡される」
と書かれています。今回はまさにそういうときだと思うので、
なぜ渡されなかったのだろう、と、ちょうど考えていたところ
だったんです。PBの特徴(?)なのでしょうか。
691 :
685 :02/07/13 23:48 ID:/JbQvXyv
>>690 PBがどういう挙動でそこらへんを処理しているのかは私も詳しく知らないです...
とりあえず「仕様」ってことですかね. (w
Terminalからだと特に問題はないんですけどねぇ...
プラットフォーム非依存のJavaプログラムって、メニューがウィンドウ内にあるじゃないですか。 あれをMac OS XネイティブなGUIにするには、どれくらいの労力が必要なのでしょう? そしてそれは何もプログラミングについてしらない奴が最初から勉強をはじめた場合、どれくらい勉強すればできるようになるでしょう?
693 :
690 :02/07/13 23:55 ID:KLmktXts
>>691 分かりました。仕様ってことで追及しないでおきます。
Terminalは、なんか苦手なので(w
PBで頑張ります。ありがとうございました。
>
>>680 ところでそれは
>>441 で思いっきり既出の話題なんですが……。
できればスレッドの中をそれらしいキーワードで検索するぐらいはやっておいてくださいね。
今回なら、"scanf"で検索するだけで見つかってたはずです。
ブラウザで毎回スレッド全部を取得してくるのは非効率的なので、CocoMonarなどの2ch専用ブラウザを使うと良いと思います。
695 :
680 :02/07/14 11:59 ID:3QRC98pr
>>694 すみません。
>>440 とはまた別の話だと思っていました。
>>440 は実行の順番が違う、という話で、私の問題は、
実行しない、ということで、違うのだと思っていました。
根は同じことなんですね。ありがとうございました。
画像ビューワーみたいな物を作ろうと思い、 NSScrollViewの中にNSImageViewを入れているんですが、 どうやっても左下の方にNSImageViewがきてしまいます。 これを左上の方に固定するにはどうすればいいのでしょうか?
左下ってどういう意味? スクロールが上と右側についてしまうってこと?
>>696 たぶんNSViewのサブクラスを作って
- (BOOL)isFlipped {return YES;}
を実装してそれをNSScrollViewのdocumentViewにセットして
この中にNSImageViewをいれてみるといいんでない?
>>697 え〜と、
┌───────┬┐
│ これが ││
│NSImageView││
├───────┘│
│ これが │
│NSScrollView │
└────────┘
こんな感じにしたいんですけど
┌────────┐
│ これが │
│NSScrollView │
├───────┐│
│ これが ││
│NSImageView││
└───────┴┘
こんな風になっちゃうんです・・・
ゴメソ、もっと分かりにくくなった・・鬱
>>692 おおざっぱに。
・Javaを勉強する。(本一冊)
・Swingを勉強する。(本一冊)
・そのプログラムを解読する。(この状態なら下手すれば一生)
大抵不勉強な輩が標準のメニューバーの形にせずに
Viewに直接メニューを放り込んでいるからだろうとは思うが。
>>698 レスありがとうございます。
isFlippedで従来の座標に変える(?)というのは分かりましたが、
NSViewのサブクラスの中にNSImageViewを入れるというのがよく分かりません。
NSViewのサブクラスのインスタンス変数にNSImageViewを追加するんですか?
・・すいません・・逝ってきます・・・
702 :
698 :02/07/15 00:07 ID:3nb1t5xe
>>701 NSViewにはsubviewを追加できる
NSView *myView = [[NSView alloc] initWithFrame:frame];
[scrollView setDocumentView:myView];
[myView addSubview:imageView];
[myView release];
703 :
701 :02/07/15 21:06 ID:BXWy18GF
>>702 早速試してみます!
どうも有り難うございます
704 :
607とか :02/07/18 19:59 ID:BTsJkB12
705 :
motoko :02/07/19 14:57 ID:nOTSLQAG
プログラミング超初心者です。 あまりに基礎的な質問かと思い書き込みがはばかられましたが、 どうしても困ってまして… 今、cocoaアプリで簡単な計算ソフトを作っています。(私用のため) 通常の計算は、「cocoaはやっぱり」にあるような割り勘アプリの変形でなんとかなっていたのですが、 今回、数値の羅列したテキストファイルから順に数値を読み込み、 その値を計算させてみようと思い、それの実現で今悩んでいます。 似たようなソースでもあれば参考にできるのですが、見つけられなくて(^^; よろしければ、ご教授お願いいたします。
漠然とし過ぎて激しく意味不明だ。 データファイルの読み込みで困っているのか?
707 :
名称未設定 :02/07/19 18:22 ID:ktnz64zy
>>705 データファイルを適当なセパレーターを入れた形で保存。
NSOpenPanelでフルパス取得。
[NSString stringWithContentsOfFile:]
でNSStringに格納。
[NSString componentsSeparatedByString:]
でセパレータで分割。
708 :
707 :02/07/19 18:30 ID:ktnz64zy
付けたし [NSArray objectEnumerator] でNSEnumeratorとってきて [NSEnumerator nextObject] がnilになるまでループ。
709 :
704 :02/07/19 20:13 ID:DGb4Ac5f
暇な人いないの? 一応ソースも公開してるんだが、、、 ところでCocoaのTextHandlingSystemって枯れてないのかな? viewのboundsを変更するとNSRunStorageとかがでたり、あとkotoeri関連で落ちたようなことがあった。 特にNSLayoutManagerのバックグラウンドでのレイアウト中に落ちるのが痛かった。何かやり方悪いのかな? でもTextEditでもページサイズ表示にすると落ちるからなぁ。バグかなー?
710 :
440 :02/07/19 22:51 ID:1BUjPvfZ
>>704 ソース落とせないッス。文字化けな画面に移りますが。。。
なんか保存の仕方が悪いのかな?
いちおう書いておくとIE5.2.1。
711 :
704 :02/07/19 23:30 ID:DGb4Ac5f
>>710 .dmgなのでリンクをディスクにダウンロードでやってみて下さい。
>>704 ちょっとだけさわってみたよ。
エディタから直接シェルをたたけて、結果をテキストに流し込めるのは面白いね。
もうちょっと操作方を練り込めばかなり便利になりそう。
713 :
704 :02/07/20 00:21 ID:3kjfXf3/
>>712 ありがとう。
タスクバーはパッと思い付いた機能なんだけど、思った以上にうまくいったかも。
でもマルチスレッドで苦労したな。
714 :
. :02/07/20 04:04 ID:WRvVPtyF
>>712 >エディタから直接シェルをたたけて、結果をテキストに流し込めるのは面白いね
おお!!それいいね。
>>704 質問
Finderからファイルを開いているVIEWにD&Dすると、アイコンになるけど開けないの?
715 :
704 :02/07/20 12:07 ID:3kjfXf3/
>>714 ドラッグドロップはあんまり考えてなかった。
やりかたがよくわかんないけど、NSViewのdragFile:fromRect:slideBack:event:あたりかな?でもこれだとサブクラスでオーバーライドしなきゃいけないような。
つーかdrag dropは意外にめんどくさい。
ちなみにエディタ自体はこれ以上変更する気はないんで、ぜひソース落として改良して下さい。
>>714 それは多分RTFDの添付ファイルになっていると思うんだけど。
NSWindowのサブクラスでvalidateMenuItem:すると
何故かundo;とredo:が引っ掛かるんだけど、
ここでundoManagerからundo/redoMenuItemTitleを貰って
メニュー書き換えようと思ったら変な「&」が先頭に付いてくる。
日本語だとそうでもないんだけど、回避する手段ってある?
717 :
名称未設定 :02/07/21 09:54 ID:OfE1csdo
>>704 最初ソースを見てNSDocumentにほとんど何もやらせていないので
「へ?」と思った。
NSWindowControllerに文書の内容の保持までやらせているんだね。
718 :
704 :02/07/21 11:03 ID:kFQJidC7
>>717 そうです。
最初、NSDocumentとNSWindowControllerで処理を分担してたこともあったんだけど、だんだん区別がつけにくくなってきて、
わけ分かんなくなったんでNSDocumentの処理をNSWindowControllerに丸投げするようにしちゃった。
WindowControllerを使ったのはスタイルとかのデータも別のWindowControllerを追加して使うかなと思ったからだが、結局やんなかった。
あとオープンの処理もWindowControllerがやってる。
これもWindowControllerを独立できて楽かな〜と思ってやったんだけど、失敗だったかも。
ちなみにクラス等の概要はoverview.txtに書いてあります。
719 :
717 :02/07/21 18:44 ID:OfE1csdo
>>718 逆にAppleのサンプルだと大概NSDocに
NSWinConのやる事をやらせてるね。
自分はそう言う時は
ファイルシステム/データモデル関連→NSDoc
ユーザーインターフェイス関連→NSWinCon
で分けている。
データの操作をユーザーアクションからワンクッション置くんで
ちょっとクドくなる嫌いはあるんだけど。
720 :
名称未設定 :02/07/23 23:36 ID:nvFuhxWB
どなたかiTteyoshiを何とかしてくだされー。 漏れはプログラム書いたことないのでさっぱりだー。
722 :
名称未設定 :02/07/27 13:38 ID:Q6jAJKZk
ペーストボード履歴アプリケーションを作ろうと思っているんですけど、 他のアプリケーションが、「ペーストボードにコピーした」タイミングを ハンドリングするうまい方法が思いつきません。 NSPasteboardのドキュメントを見た感じだと、そういうのはなさそうだったので・・・ どなたかお知恵を貸していただけないでしょうか?
昔Core Foundationにそう言うのがあったらしいが 今は無いんでポーリングするしか無い。
724 :
名称未設定 :02/07/27 22:24 ID:b1CIGy+k
ありがとうございます。 「ポーリング」という言葉、良く聞くのですけど、おぼろげにしか理解できて いなかったので、ちょっと調べてみたのですが、 ようするに、無限ループを回して、ペーストボードに変化がないかどうかを 常に見張る、みたいなイメージでよいのでしょうか? CocoaだとNSTimerとかを使うといいのかな?
725 :
名称未設定 :02/07/28 08:07 ID:qpqEOdtR
オライリーの「Cocoa 入門」にある「Travel Advisor」で 'NSTextField' does not respond to 'setString:'エラーが連発するんだけど、同じ経験ある人 or 解決方法知ってる人いる?
>>725 エラーメッセージにあるとおり、NSTextfieldはsetString:というメソッドを
持っていません。
NSTextfieldに文字をセットするにはsetStringValue:を使います。
setString:はNSTextViewに文字をセットするためのメソッドです。
つまり、文字をセットするのがNSTextfieldかNSTextViewかでこれらの
メソッドをきちんと使い分けなければいけないところを、混同してしまって
いるのではないかと思います。
727 :
名称未設定 :02/07/28 13:14 ID:qpqEOdtR
>>726 なるほど、勉強になりました〜、サンクス!
確かに、確かめてみると、
IBOutlet NSTextView *〜 とするところを
IBOutlet NSTextField *〜 にしてしまってました。
ViewとFieldの使い分けって、難しいっす。
この二つ、機能にどんな違いがあるんでしょうか?
>>727 そんなに使い分けに苦労する?
NSTextFieldっていうのは一行の文字を入力するためのViewで
returnキーを押したりとかフォーカスが外れたりするとアクションが送られるビュー。
NSTextViewっていうのは複数行の文字を入力するためのビューで、
主にテキストエディタとか文書を入力する必要があるソフトを作るときに使われるビュー。
名前は似てるけど用途は全然違うよん。
729 :
名称未設定 :02/07/29 07:18 ID:OcMv901q
>>728 なるほど、またまた勉強になりました。
これまでなんとなく長い短いで使い分けていただけなので、スッキリ!
名スレ保守。
731 :
名称未設定 :02/08/07 05:18 ID:tZEzDVqg
NSViewでデフォルトでは 原点が左下 右に行くと x が + 上に行くと y が + になってるのを 原点が左上 右に行くと x が + 下に行くと y が + に変える方法が分かりません ずっと前にサンプルコードを見た覚えがあるのですが忘れてしまいました 御存じの方がいれば教えて下さい
732 :
名称未設定 :02/08/07 05:39 ID:vhR6Y8uy
>>731 NSViewのサブクラスで isFlipped メソッドをオーバーライドし、
YES を返すようにすると自動的に原点が左上に、上→下の方向が
Y軸の正の向きになる、というようなことがリファレンスに書いて
あります。
NSView > Coordinate System Transformations のまん中から
ちょっと下のあたりを参照。
733 :
731 :02/08/07 13:20 ID:E7O/r5hv
さっそくのレスありがとうございました リファレンスって英語ばかりだから読むのあきらめてました(汗
734 :
732 :02/08/07 14:33 ID:9qKypnsX
確かに英語は漏れもツライ! それにあのクラスの数といったら……(苦藁 だけどまあ激ムズってほどでもないし、 どういう働きをするクラスなのかってとこ(Class at a Glance)と、 どんなメソッドがあるのかだけでもさらっと見とくといいよ。 (最初から最後まで熟読しようなんて考えてもどうせ忘れるしな) で、必要な時に辞書的に調べる&関連項目も勉強しとくか ぐらいの スタンスでいいんじゃないでしょうか? あれくらいの英語だとやってる内に慣れてきて結構普通に読みこなせる ようになるんで英語だからと頭っから諦めるのは損ですよ。
735 :
名称未設定 :02/08/07 23:26 ID:CgxzN3E/
保守age
>>728 用途としてはそれでいいけど、NSTextFieldでも
複数行入力できるよ。
737 :
728 :02/08/08 23:39 ID:RwSGkMAi
738 :
名称未設定 :02/08/09 00:25 ID:J03zTP5H
ちょっと疑問に思ったので質問。 /Developer/Examples/AppKit/ にある CompositeLab というサンプルで、 CompositeView というクラスにsetSourceColorWell、setDestColorWell、 setBackColorWellというメソッドあって、それがどうやらアウトレットの 設定をやってるらしいのですが、このメソッドの呼び出し元がわかりません。 どこかから呼び出されて実行はされていることは確かなのですが、ソースの どこを見てもこれらを呼び出している箇所がないのです。 この辺、一体どうなっているんでしょうか?
739 :
名称未設定 :02/08/09 02:03 ID:ARhr/M4p
>>738 勝手に呼び出されるみたいだ。outletに対しこんなことをやるとは知らなかった。
どうやらInterfaceBuilderで設定したoutletには"set" + outlet名(先頭の文字をupper case) + ":"というselectorを自動生成し、
respondsToSelector:で確認してmethodを実行しているようだ。
selectorはCの文字列らしいから、これは簡単にできると思われ。
この場合はsourceColorWellとかのインスタンスが設定されるときに"setSourceColorWell:"等を生成して、設定されるインスタンスを引数にして実行してる。
ちなみに-awakeFromNibというmethodも自動で実行される。
これらの自動で実行されるmethodはoutletを初期化するルーチンを書くのに使える。InterfaceBuilderで作ったインスタンスは-init...の時点でoutletはバインドされておらず、nilだったりするから。
740 :
738 :02/08/09 03:13 ID:9Xd0/9Yk
>>739 レスどうも。
最初、インターフェースを見たときに IBOutlet が付いてなかったので、
変だと思ったんですよ。これじゃInterface Bulderがアウトレットだと
認識できないんじゃないかと。でも、Interface Bulderの方でアウト
レットを設定しておき、かつInterface Bulderでソースを生成しなければ
こういう形になることもあり得ますよね。後はなんというか、普段
Interface Bulder(Project Bulder?)が自動でやっているところを
あえてマニュアルでやったという感じなんでしょうかね。
まだまだわからんことも多いので自分でも何を言っているのかわからなく
なってきた(藁
フレームワークを検索すれば出てくるが、 IBOutletの中身は何も無い。IBActionもvoid。 Interface Builderは先ずアクセサメソッドからoutletにアクセスしようとして、 アクセサが見つからなかった場合はpublicなインスタンス変数、 それも見つからなかったらprivateな"_"付きのインスタンス変数にアクセスする。 と、リリースノートかどこかに出てくるぞ。
742 :
ligature? :02/08/11 06:10 ID:ewZUjuMc
どうも、Cocoa修行中のものです。 現在 NSAttributedString のあたりを勉強中。 で、気になったんですが、文字列の属性の1つに ligature って ありますよね。これは一体何を設定するものなんでしょうか? いろいろ設定値を変えて描画させてみても、ぱっと見何も変化が ないようにしか見えないのですが。
私は完全な初心者でまだCを勉強している身ですが、 それはリガチャのことでは? アルファベットの小文字がくっついて表現されるやつ。 Texteditを使ってAppleChanceryのフォント48ポイントくらいで 「office」と入力すると、よく分かります。 出しゃばり&違ってたらスマソ。
744 :
742 :02/08/11 07:51 ID:Lcfbn/n5
どうも。やってみたら、なんとかその効果を見ることができました。 かなり微妙な違いではありましたが((藁 にしてもいまいちその活用方法がわからんのですが。 ま、わかる人にはわかるんでしょうかね。というわけで sage。
745 :
名称未設定 :02/08/11 23:47 ID:7JWVPU1n
keyDownイベントで、押されたのがDeleteキーかどうかを判定するやり方が わからなくて、困っています。 普通のアルファベットキーは、NSEventの、charactersというメソッドを使って if([event characters] isEqual:@"a"){ // 処理 } のようにすることができるのですが、Deleteの場合、上の'a'に相当する部分には 何を入れれば良いのでしょう・・・ NSEventのドキュメントを見ると、NSDeleteFunctionKeyなる定数値が用意されていたので、 はじめはこれと比較すればよいのかと思ったのですが、 どうも、この定数は、NSString型ではないらしく、比較しようとすると警告が出てしまいます。 どなたか、教えていただけないでしょうか。
746 :
名称未設定 :02/08/12 00:53 ID:xVCW+ME3
>>745 よく知らんのでテキトーだが。
NSLog(@"%x", [[event characters] characterAtIndex:0]);はやってみた? Deleteは7fだったよ。
NSEvent.hをみるとNSDeleteFunctionKey=0xF728となってる。コメントにはUnicodes we reserve for function keys on the keyboardと書いてある。これはファンクションキーらしい。
というわけで
if ([[event characters] characterAtIndex:0] == 0x7f) {
//処理
}
で、とりあえずできると思う。
あと一応NSText.hでNSDeleteCharacter = 0x007fとなってるからこれを使うべきかな?
ありがとうございます! 教えていただいたやり方でうまくいきました。おかげさまで、先に進めそうです。 characterAtIndex:0でとってきた値を比較すれば良かったのですね。 ちなみに実験してみたところ、「NSDeleteFunctionKey」は、「Delete」ではなく、「Del」キーを 表しているようでした。
748 :
名称未設定 :02/08/15 04:42 ID:WQWAVCSp
だれか〜、informal ptorocol について教えてくれ〜。 現在の時点でのワタクシ的理解は、 1、インターフェースを見る限りカテゴリと見分けがつかない 2、インターフェースは定義されているが実装が伴っていない 3、プロトコルに適合させるにあたり、全てのメソッドを実装 する必要はなく、必要なものだけをチョイスできる ぐらいなんですがいかがなもんでしょ? 多分ダメなんだろな(藁 というか、これって実装し忘れたカテゴリと違うの? クラスって実装されていないメソッド宣言しとってもええの? メッセージを送る側は常に対応するメソッドが相手に実装されて いるか調べてんの? などなどわからんことだらけ。 どなたかアドバイス下さい。
749 :
748 :02/08/15 04:45 ID:WQWAVCSp
ptorocol だって… (;TДT) protocol です、ハイ。
750 :
名称未設定 :02/08/15 12:14 ID:PZi4Iw+d
>>748 informal protocolはNSObjectのcategolyとして定義されてるけど、categolyはinterfaceだけでimplementationはなくてもwarningにはならんみたいだ。
informalにするのはprotocolにするとオーバーヘッドが出るか、あるいは単にめんどくさいだけかな?
> クラスって実装されていないメソッド宣言しとってもええの?
interfaceにあるメソッドを実装し忘れたりするとwarningが出るけど、コンパイル自体はできる。
> メッセージを送る側は常に対応するメソッドが相手に実装されて
> いるか調べてんの?
メッセージの送信はobjc_msgSend()という関数になってるはず。
この関数がレシーバに対してセレクタに対応するメソッドがあるかどうか調べて、あれば実行する。
/usr/include/obj/にあるヘッダをみるといいかも。
751 :
748 :02/08/15 18:36 ID:whgta1k/
>>750 おお。レスありがとう。
informal protocol について抱いていたもやもやとした感覚が
ようやく、払拭されたよ。ちょっと乱暴かも知れないけど
informal protocol = 実装後回しカテゴリ
つーことかな。本来 category と protocol は別のものだけど
informal protocol として interface だけを NSObject みたいな
継承の大元となるクラスに adopt させておけば、その interface に
そってメソッドを実装することで、それは一種の protocol として
機能する。
こんな感じでしょうか。
(おかしなこと言ってたらだれか突っ込み入れてね)
> メッセージの送信はobjc_msgSend()という関数になってるはず。
> この関数がレシーバに対してセレクタに対応するメソッドがあるかどうか調べて、あれば実行する。
Objective-Cにおけるメッセージ送信のオーバーヘッドって、つまり
これのことなんだよね。
752 :
748 :02/08/15 18:41 ID:whgta1k/
それにしても、英語のドキュメント読んで勉強した人って、 ところどころ日本語に英単語が混じるからすぐわかりますね。 interface とか implementation とか。
753 :
名称未設定 :02/08/16 13:12 ID:iQ57Q4RI
NSImage と NSImageRep の関係がいまいちわからないのですが、 どなたか噛み砕いて説明して下さらないでしょうか? NSImage が複数の representation を持つとは、一体どういう ことなのですが? 漏れにはサパーリです。
NSIMageRepのサブクラスを見ればヒントになると思うが。
755 :
753 :02/08/16 14:37 ID:70dfRwN8
スマソ。 Cocoaはやっぱり に NSImage と NSImageRep について 説明してるとこがあった。うぬぬ、わかったようなわからんような… つーか漏れは「データ」と「機能」を禿しく混同していたことが 判明した(;TДT)
757 :
753 :02/08/18 03:05 ID:L5HXBkmW
情報サンクス。行ってみるよ。 後一押しという感じなんだ。
758 :
名称未設定 :02/08/19 10:22 ID:a9JHm0DO
NSImage関連で質問させてください。 現在、メインスレッド外で描画ターゲットウインドウを使ってNSGraphicsContextを取得、設定し、 NSImageのlockFocusを使ってNSImageに描画後、 メインスレッドにそのNSImageを渡し、 メインスレッドで描画ターゲットウインドウ上のNSViewに描画しようとしているのですが、 なぜか、NSWindowの持つウインドウビュー(?)に描画されてしまいます。 具体的に言うと、描画しようとするビューからの相対位置ではなくウインドウビューからの相対位置に、 描画しようとビューのisFlippedの値ではなくウインドウビューのisFlippedの値を使用して描画されます。 これってNSGraphicsContextの使い方がまずいのでしょうか。 それともNSImageを作成するときは、あらかじめ描画するビューを指定しておかなければならないのでしょうか。 よろしくお願いします。
759 :
758 :02/08/20 15:02 ID:yacBMAvp
下がってるのでageながら追記。
NSImageの描画は描画しようとしているビューの-(void)drawRect:で行っています。
ここで描画をしているにもかかわらず、
>>758 のような現象が起こるのはなぜでしょう。
また、シングルスレッドでは問題なく描画されています。
NSImage作成をメインスレッドで行っている事と、NSGraphicsContextはいじってないだけで
やってる事は同じです。
760 :
名称未設定 :02/08/21 18:43 ID:OV8f6FAs
IBでNSImageViewをNSScrollViewのサブビューにした状態で NSImageViewへと接続したクラスからいろいろ送っても 全部NSScrollViewのほうへ反映されてしまうのですが どうしたらサブビューのNSImageViewへ正しく送れるでしょうか。 また、10.1に付属しているPreviewのように、画像全体が 表示されたらスクロールバーを表示しないようにしたいのですが どうしたらよいでしょうか。 よろしくお願いいたしますm(_ _)m
>NSImageViewへと接続 接続ってIBでアウトレットの結線をやってるんですよね。 接続先のクラスがちゃんと NSImageView になってますか? NSScrollView の方につないじゃってるのでは?
762 :
名称未設定 :02/08/21 19:44 ID:OV8f6FAs
>>761 いえ、ちゃんと中の方に接続しているのですが...(涙
インスペクタで見たら接続先のクラスがわかるでしょ? それは NSImageView になってんの? なんかよくわからんのだが、接続してしまった後に ScrollView の サブビューにすれば確実なんではないか。
764 :
名称未設定 :02/08/22 11:01 ID:xy+T/jXb
ヒラギノフォントの指定をどうやるのか教えて下さい。 「Alphabet」というAppleのサンプルコードをいじってます。 [cell setFont:[NSFont fontWithName:@"Times-Italic" size:small ? 18.0 : 36.0]]; ここを変えればいいと思うんですが。
765 :
名称未設定 :02/08/22 12:30 ID:dF8v+gW/
766 :
764 :02/08/23 06:31 ID:S6zxHxtc
>765 助かりました。ぬりがとうございます。
767 :
名称未設定 :02/08/26 21:59 ID:HpK/5t0b
本家 Cocoa はやっぱり! のサンプル AffineTest に関する疑問。 AffineView の drawRect で 1、スライダーから値を読んでそれを元に affine transform matrix を 作って concat 2、図形を描画 3、view の transform matrix を初期状態にリセット ってことをやってるんだけど、3にあたる [atReset set]; をコメント アウトしても、実は何も問題が起こらない。スライダーが動かされる度に drawRect が呼び出され、その度に matrix を concat していけば、その 効果が蓄積されていくから、とんでもないことになるはずなんだけど、 そうはならない。なぜ? view の transform matrix って drawRect の中でいじっても一時的な 効果しか得られないのだろうか? どなたか詳細キボン。
768 :
名称未設定 :02/08/30 03:15 ID:6tPrqLdb
プライベートなメソッドってどうやって宣言したらいいんでしょうか? インターフェースファイルで特定のメソッドを宣言しないでいたら、 selecter が認識できないといわれ、実装ファイルの方に宣言しても 当然ダメでした。隠したいメソッドをそれを内部的に呼び出すメソッド よりも順序的に先に書いておくと一応問題なく動いたのですが、どうも しっくりきません。関数のプロトタイプに static を付けるのと同じ ようなことってできないのでしょうか?
769 :
名称未設定 :02/08/30 03:15 ID:3PoU4Yuy
>>768 Objective - Cではメソッドのアクセス権を設定することはできなかったと思う。
771 :
名称未設定 :02/08/30 05:11 ID:QotEd9Jp
>>768 できないです、ハイ。
関係ないけど、おジャガのDevToolsを使ってる人は
connect.apple.comにちょっとした幸せが...
772 :
768 :02/08/30 05:39 ID:8VDcA/lj
メソッドは必ずしも公開しなくてよいとかいうようなことをどっかで 読んだような気がするんですけどねー。フレームワークとか作って配付 したりする時ってコンパイル時に使ったインターフェースファイルとは 別に、配付用のインターフェースファイルを用意したりするってこと なんでしょうか? アクセス権自体を設定できなくてもメソッドの存在 自体を秘匿できればいいんですが。
>>772 おれはこうやってる。
ヘッダファイルを公開・非公開2つ用意して、非公開から公開を#import、
クラスとサブクラスの実装ファイル(.m)は非公開を#import。他のクラスは
公開のみを#import。まあ、警告はでるから。
あるいはJavaでよく使われるように、重要な部分だけでもprotocolのイン
ターフェースのみで操作するか。
774 :
768 :02/08/30 06:24 ID:aLdYMvJR
>>773 おー、そういうやり方があるのか。
やっぱヘッダを2つ用意するんですね。
にしても Objective-C でも、この辺もうちょっと融通がきくといいなとか
思うんですけどねー。
1つのクラスの定義を1つのファイルに書いている場合なら 定義ファイル(.m)の中にCのstatic関数で書けばそれで充分 ではないないでしょうか。 メッセージ送るよりちょっとは早そうだし。 static id aPrivateMethod (id self, id p0, id p1);
776 :
名称無設定 :02/08/30 08:24 ID:adsNzKC6
非公開のカテゴリを作ってやればいいだけでは? 実装ファイルに埋め込んでもいいし、ヘッダを分けてもいいし。 外部に公開するときは適当な接頭辞をつけて、 その接頭辞は予約されているとか書いておけば、ぶつかる事は無いです。
777 :
768 :02/08/30 11:19 ID:V58lXLnN
皆さんレスありがとうございます。
やり方はいろいろあるみたいですね。
>>775 ちょっとしたユーティリティルーチンなんかはそうするのがベターかも
知れないですね。もはやメソッドではないですが、プライベートに呼び
出す場合、そもそもメソッドである必然性もないですし。(というか、
だから Objective-C にはプライベートメソッドがないのか……)
>>776 そういうカテゴリの使い方もあるんですね。全然思い付かなかった (^_^;
何を今さらな気もしますが、Apple のドキュメントとか読んでても、この
メソッドは他のメソッドが内部的に呼び出すものなので直接呼び出さない
でくれみたいなことが書いてあったりするので、プライベートに使うメソ
ッドとはいえ、何が何でも隠さねばというほどのものでもないのかなとか
も思ったりしてるのですが…(汗
皆さんはその辺どのようなポリシーをお持ちですか?
カテゴリ作らなくても、@interface にないメソッドを @implementation に書けちゃったりしますよ。 ただ、どっちにしても、アクセス制御はできないので、 メッセージ送られたら、そのメソッドが呼ばれちゃうけどね。 # この辺、Objective-C はむしろ融通ききすぎって気も # しないではない。。。
>>778 >カテゴリ作らなくても、@interface にないメソッドを
>@implementation に書けちゃったりしますよ。
そう言えばそうだった。
実行時チェックだもんね。
でも、メンテや警告抑止には有効です。
と強がってみる。
780 :
768 :02/08/30 20:51 ID:1eDM7xxL
>>778 ほんとだ… いけるじゃん
いや、ビルド時に does not respond 云々の警告が出るもんで、それを
鵜呑みにしてその時点で実行を止めちゃってたんですよ。今やってみた
ら別に何ごともなく件のメソッドが呼び出されてるし。
なんだ、それだけのことだったのか… がく。
動的結合ってやつをいま一つ理解してなかったからこんなことになった
んでしょうかね。まだまだ不勉強でした。
781 :
名称未設定 :02/08/30 22:35 ID:kOf7VyUN
「入門Cocoa」のp271に、プライベートなメソッドについての話題がのってたよ。 776さんが書いているように、やっぱりカテゴリをつかってるみたいね。 こんな感じで、実装ファイルなり、プライベートなヘッダなりに書いておけばよいそうです。 @interface Foo(PrivateMethods) -(void)method1; -(void)method2; @end こういうやり方って、Objective-Cの慣用句みたいなものなのかな?
782 :
778 :02/09/02 11:54 ID:A1rbmPwY
警告は、呼び出されるメソッドを先に定義すれば抑制できるよ。 C で static な関数を先に定義すればプロトタイプ宣言が いらないのと同様。複数のメソッドがお互いに呼びあってたら 駄目だけどね。 まぁ、形式を重んじるならちゃんとカテゴリ定義するのも悪く はないけど、気楽に書けるのが Objective-C のいい所、って 気もしないではない。。。
前にも書いた気がするが、真にprivateなメソッドを作りたかったら @implementationと@endの間にstaticな関数を作ればいい、と思う。 selfは自前で用意、インスタンス変数はそのself経由でアクセス、 と面倒だし、実際にこんなことしている人の話は聞いたことはないが。 あと、プライベートなメソッドとか変数とかの頭にアンダースコアをつける、 ってこともあると思う。
@"保守age" はじめの頃の一断ちは、Cocoaはすっかり忘れた〜になってない?
785 :
1 :02/09/07 05:05 ID:x6Bq8+ON
忘れてませんよ、進歩がないだけで… やりたい事があるけど、何から手をつけていいか分からないからお手上げなんですよね。 学生の頃みたいに時間があれば、プログラミングの勉強に没頭できるのですが…
786 :
名称未設定 :02/09/08 17:47 ID:DRIHbYU3
Rbから移ろうかという者で非常に初歩的ですが… 例えば、(NSString *)aString ってとこの「*」ってなあに? たまに「**」ってなってたりもする…。 (先にCを勉強した方がいいかな。。)
787 :
名称未設定 :02/09/09 02:06 ID:MFPReRI/
↑ポインタじゃないんですか?
>>786 とりあえずはそんなもんだ、と思ってサンプルを書いて動かしつつ、
初心者向けのC教則本を同時進行で読んでいけばいいです。
789 :
名称未設定 :02/09/11 01:42 ID:cpPTYypB
OS Xと開発環境を10.2にupしたら 10.1.xでは問題なかったコードがうまく動かなくなってしまいました (スタックが壊れている模様) 似たような事例はありませんか
790 :
名称未設定 :02/09/11 02:02 ID:G36MIEgz
どんな処理で、どういう風に壊れてるのか教えてもらわないと 似てるかどうかも分かりませぬ じゃがのせいか、はたまたコードの問題部分が今になって露呈したのか....。
Cocoaはやっぱりの最新更新情報が、 「★ 2002.09.09 : ジャガーの新機能の解説を更新しますた。」 になってるよ。ツルチャンみてる??
793 :
名称未設定 :02/09/13 01:56 ID:H+ItbT1w
しかし、なんでMac OS X 10.1用のDeveloper Toolsはいまだに Betaなんだ?10.2の方はBetaとれているのに。 そういえばiCalも10.2以上じゃないといかんのだよな。 力ずくでもMacユーザーを10.2へ移行させようと言うのか。
794 :
名称未設定 :02/09/13 04:08 ID:1l1Q4qUn
>>793 それ、April 2002 のこと?
だとしたら、それはジャガタンについてるやつのバグ取り、評価、フィードバックの
ためのベータ。
10.1のは December 2001 が正規版最終だと思ったけど。
April 2002 は、普通の開発には使うなとリリースノートに書いてあったはず
795 :
名称未設定 :02/09/13 12:18 ID:H+ItbT1w
そです。April 2002です。 そうか、あくまでもジャガのための評価版なんだ。 自分もやっぱりDecember 2001を使ってます。 っていうことは、ジャガを導入しない限り、 Dev Toolsのアップグレードはないわけですね。 December 2001にはいろいろと不満があるのですが。 まあ、ただだし、開発が楽なんで、むしろ感謝しています。 CWのように頻繁にバージョンアップしてプログラム の方まで作り直さなきゃならん、なんてことがないので これはこれで安定していていいです。
やっぱり 10.1 を使い続けてる人もいるんですね。 某自作アプリも、しばらく 10.1 のサポートは続けるかな。
797 :
名称未設定 :02/09/13 16:08 ID:0O54oeEL
そうですね。さすがに10.0からサポートするのはつらいけど
798 :
名称未設定 :02/09/13 18:23 ID:023Z91Zs
Jaguarのプロジェクトビルダーでテクスチャードウィンドウ を使ったアプリって、10.1.xで動く? すでに10.1.5にJaguarを上書きしちゃったんでわかんないの・・
799 :
bloom :02/09/13 18:33 ID:hyfVfuen
余裕で800ゲト(藁
>>798 >Jaguarのプロジェクトビルダーでテクスチャードウィンドウ
>を使ったアプリって、10.1.xで動く?
多分無理。
フレームワークが異なるので何らかのエラーになると思われ。
802 :
801 :02/09/13 19:08 ID:zP2Illo5
(追記) Win2000の半透明がNT4で動かないのに近いかも。 ただCocoaは動的解決の傾向が強く QTプレーヤやiTunes等の背景は隠しAPI臭いので 或いは・・・
804 :
名称未設定 :02/09/13 19:17 ID:023Z91Zs
>>804 10.1.5
予期しない理由で終了しました。
普通のウィンドウになるかと思ったけどだめらしい。
806 :
名称未設定 :02/09/13 23:06 ID:rnpErCmO
>>804 そういうときは、File -> Compatibility Checking を使うといいよ
807 :
806 :02/09/13 23:07 ID:rnpErCmO
808 :
名称未設定 :02/09/13 23:15 ID:023Z91Zs
>>805 ありがとう。やっぱりダメかぁ。
現時点で、10.2専用!・・っていうのは、使える人の
人数を考えるとまだ厳しいから、テクスチャードにす
るのはあきらめた方がよいですね。
>>806 そんなことができたなんて、初耳でした。サンクス。
809 :
名称未設定 :02/09/14 15:15 ID:k274qRIm
質問でーす。 Cocoaでサウンドのボリュームってどうやって変更すればいいんでしょう? 今、簡単なアラームみたいなものを作ってて、 現在のボリューム値を保存 ボリュームを最大に設定 NSBeep() ボリュームを元に戻す みたなことがやりたいんですけど、NSSound のドキュメントとか見ても それらしいメソッドはないし… やっぱCarbon使わなきゃダメっすか?
>>809 NSSoundには残念ながらボリュームを調整する機能はありません。
CocoaではNSMovieとNSMovieViewを使えばボリュームを調節することは可能です。
簡単なアプリケーションならこれで十分でしょう。
あと、直接サウンドデータを加工してからNSSoundに渡すという手もあるにはあるけど、
これは面倒くさいだけなのでよほどの理由が無い限りおすすめしません。
811 :
809 :02/09/14 21:28 ID:K29dQyd+
>>810 ただビープを大きな音で鳴らしたいだけで NSMovie & NSMovieView か,,,
なんか大仰だけど、それが一番楽なんかな。NSTask でシェルを起動して
そっから AppleScript で set volume とかいう手もあるかと思ったんです
が、これもちょっと回りくどいし、それにこれだと現在のボリューム値が
得られない。NSSetVolume、NSGetVolume とかいうそのもののずばりの関数
がなんでないかな〜?
じゃがなら NSAppleScript を使えるよ。 最初のコンパイルに時間がかかるのがちょっといやだが [[[NSAppleScript alloc] initWithSource: @"say \"O ma i La, zen in, Ittae yoh she!\""] executeAndReturnError: nil];
813 :
812 :02/09/15 04:45 ID:+XALr1n5
↑ NSTask経由にしなくても、という意味です。
814 :
809 :02/09/15 05:22 ID:Wo7SOCxr
>>812 おお, そんな使い出のありそうなそうなクラスが (^_^
実は今日じゃが入れたとこなんだよ、さっそく見てみよう。
にしても、Apple Event 関連ともども、アプリケーション同士の
メッセージのやりとりに関するところは全然勉強してない。今後
はその辺を中心に勉強を進めるか。
@private
とかいいながらいつもドキュメント読むことばかりが先行し、
実際作るとなるとまだまだつまらん小物アプリしか作れない俺
であった...悲
★ 2002.09.13 : ジャガーの新機能の解説を更新しますた。 pdfだと落とし直しが面倒なのです。
816 :
名称未設定 :02/09/16 06:37 ID:IKJRNKEL
大変だ! じゃが入れて Developer Tools もアップデートしたら ODCompletionDictionary が使えなくなっちまった! 思いっきり辞書鍛えてたのに〜〜〜 (T-T) これって俺だけじゃないよね? 使ってる人どうですか?
817 :
816 :02/09/16 06:40 ID:IKJRNKEL
818 :
816 :02/09/16 07:03 ID:IKJRNKEL
追加の自己レス。 コンソールみたら 2002-09-16 06:44:41.357 Project Builder[543] ODCompletionDictionary (Version 3.1.v212) loaded とログに残ってて、どうやらロード自体はされている模様。はて? なんで使えないんだ?
>>816-818 うちの環境ではちゃんと動いてるよ。
コンソールに出てるバージョンも同じ。
~/Library/KeyBindings/PBKeyBinding.dictはちゃんとある?
>>819 ご、ごめん…
関連メニュー項目がなくなってたんで早とちりしてました。
今試したら(おぃ)補完自体はちゃんとされます。
ただ、以前は command + shift + X で辞書が編集できたのに、今やると
できないんです。確か Edit メニューの一番下にありましたよね、Show
Dictionaru かなんかの項目が。あれがなくなってるんです。
Project Bulder のメニューが日本語になってるんですけどそれが原因
かなあ? 819 さんは Project Bulder のメニューは英語ですか?
821 :
816 :02/09/16 09:35 ID:jDRgmLEP
自己レス。問題の原因がわかりました。 システム環境設定の「言語環境」で英語を一番上に持ってくると、 Edit メニューの一番下に Completion... と表示され、辞書への 登録、編集ができるようになりました。このメニュー項目は Project Bulder のメニューが日本語表示の時には出てこないみた いです。なんで? メニューが日本語表示の時って英語のタイトル をもったメニュー項目は出てこられないようになってるんだろうか...
822 :
816 :02/09/16 09:45 ID:jDRgmLEP
うおお! 何度も自己レスすまん! システム環境設定の言語環境で英語を最優先にしてしまうと Finder を はじめすべてのアプリのメニューが英語になってしまってちょっとアレ なんで、思案の結果 Project Buileder のパッケージから Project Builer/Contents/Resources/Japanese.lproj/PBX.nib を抜き取るという方法を思い付き、試してみたらうまくいった。 なんか裏ワザ的だけどまあこれで一応解決しました。 もっといい方法あったらだれか教えて。
>>822 PBX.nibのMainMenuの「編集」を「Edit」に変えるとか。
試してみたら、一応うまく行きました。
ところで、 ODCompletionDictionary知りませんでした。
ありがとう!
824 :
名称未設定 :02/09/16 10:54 ID:GHmjdczW
>>822 ProjectBuilder.appの「情報をみる」で、
「言語」の日本語チェックをはずせば良いんじゃないかな?
825 :
816 :02/09/16 11:06 ID:CgkRpefq
>>824 おお、そんな方法があったのか。気付かなかった。うまくいったよ。
アプリごとに個別に設定できるとは知らなんだ。これって Jaguar
になってからだよね?
>>823 辞書を鍛えればかなり能率が上がるよ。例えば dragging に対して
インフォーマルプロトコルの NSDragging の実装サンプルをそのまんま
登録しとくとかね。今度自分のアプリでドラッグを実装したい時は
dragging とタイプして esc でどかんと一発入力。後は必要に応じて
細部を修正ってな感じで。
826 :
823 :02/09/16 11:14 ID:aMezpA7/
>>825 ですね、いままでCopy&Pasteでやっていたところがかなり楽になりそう。
自動インデントも、ProjectBuilderのものはかなりバグっぽいので切ってたけど、
これで代替できますね。
# 特定言語リソースのON/OFFは以前からありました
827 :
総括 :02/09/16 11:19 ID:CgkRpefq
ODCompletionDictionaryはおそらく自分に関するメニュー項目の 追加先を itemWithTitle:@"Edit" とかで探してるっぽいので、 Project Bulder のメニューは英語表示になるように、Project Builder の「情報をみる」で、「言語」の日本語チェックを 外しておきましょう。
828 :
名称未設定 :02/09/16 20:01 ID:K2Lseu/p
NSTableViewに、キーイベントを処理させたいのですけど これって、サブクラスを作ってacceptFirstResponderを オーバーライドして・・・っていう方法しかありませんか? TableViewをサブクラス化すると、何かと面倒なんで できれば避けたいのですけど・・・。
829 :
名称未設定 :02/09/16 21:16 ID:j9cHSpT0
>>828 NSResponderのサブクラスを作り、-keyDown:をオーバーライド
↓
[tableView setNextResponder:myResponder];
これでOKのはず
Responder chainについて調べてみてくれ
>>828 昔、同じようなことをやろうとして色々調べたのですが、
結局のところサブクラス化以外の方法を見つけることができませんでした。
誰か知ってたら教えて欲しい・・・
832 :
828 :02/09/16 21:45 ID:K2Lseu/p
>>829 なるほど!そういうのもアリか〜。名案ですね。
さっそく使わせてもらいます。VeryTHX.
833 :
829 :02/09/16 22:08 ID:j9cHSpT0
>>833 そ、そうなんですか・・・ハズカスィ
大変勉強になりました。
Cocoaフレームワークってやっぱり洗練されてますね。
このスレが無くなったら泣いちゃう!!
836 :
名称未設定 :02/09/21 22:42 ID:PiS5NM4Y
837 :
名称未設定 :02/09/21 23:59 ID:Ld7wRzZl
すみません、質問があるんですが April 2002 Mac OS X 10.1 Developer Tools (Betas)と December 2001 Mac OS X 10.1 Developer Tools どちらが良いんでしょうか? 教えてちゃんですみませんが、よろしくお願いします
838 :
名称未設定 :02/09/22 00:03 ID:fuGqbdig
やっぱり後に作られた法が良いんじゃない?
839 :
837 :02/09/22 00:10 ID:zxEP+paX
>>838 そうなんですが、Betasというのが気になって。
どちらか使ってる方いらっしゃらないでしょうか?
>>839 Jaguar付属のDevToolsを使いましょう。
841 :
837 :02/09/22 03:01 ID:zxEP+paX
>>840 Jaguar持ってないんです。
うちのはOSX1.1なので。
842 :
名称未設定 :02/09/22 03:18 ID:9WsB41IO
>>841 Jaguar付属のヤツもADCのダウンロードサイトにあると思うが。
Cheetahで起動できるかどうかは保証出来んが。
>>841 初心者が使う分にはどっちでもいいような気がするぞ。正直。
844 :
837 :02/09/22 05:53 ID:zxEP+paX
>>842 >>843 レスありがとうございます。
Betasの方を落としてみました。
で、「Cocoaはやっぱり」に沿ってメモ帳を作ろうとしたみたところ
本とかなり違う・・・。
IBでのドキュメントウィンドウにはタブが少なく
インフォパネルもないし、パレットウィンドウにもクラス(?)が少ない。
う〜ん、どうしよう。
845 :
837 :02/09/22 05:57 ID:zxEP+paX
>>844 すみません、自己レスです。
↑の原因が分かりました。
恥ずかしい事にCarbonにしてました。
お騒がせしました
>>842 Cheetahって…せめてPumaでしょ?
847 :
名称未設定 :02/09/22 18:33 ID:avgxvBUg
次の開発コードは何でしょう。もう決まってるのか。 模様で選ぶならzebraがいいな。 ところで昔フラワーパワーとかブルーダルメシアンという 悲惨なiMacがあったけど、JaguarのiMacならかなり売れた のではと思うが。
848 :
847 :02/09/22 18:35 ID:avgxvBUg
すんまそん。すれ違いです。無視してね。
849 :
kokoa :02/09/23 15:15 ID:+YNPRUwQ
ツルちゃんことに「Cocoa Visual Reference」ってクラスの説明図が ウプされたんだけど、最後の「ペーストボード」のリンク先がツールバーと 同じになってて見れないYO www.big.or.jp/~crane/cocoa/_cvr/
>>849 そういうことは直接当人にメールを出せばいいんでない?
851 :
名称未設定 :02/09/24 02:27 ID:k2njO6jL
「更新しますた」のツルちゃんが来てるかなっていうテストだと思われ
>>849 さっき見たら直ってました。ここ読んで直したのかは不明だけど。
# それにしても 1800 とは。1400 と 1600 と 1700 は
# 試したんだけどなぁ。(わらい)
個人的には、NSDocument とか NSWindowController
あたりの解説が読みたいっす。
# MyDocument が巨大化したので、window controller に
# 仕事を振り分けたいけど、うまい分割の仕方が分からないので。
853 :
名称未設定 :02/09/25 17:21 ID:GYLdJcAV
それある。
854 :
1 :02/09/25 17:22 ID:2U8/R1vk
10ヶ月ぶりくらいにProjectBuilderを起動。 さて、また一から勉強のやり直しだ〜! 今度こそ挫折せずに目的のソフトを作ってみせるぞ。
855 :
名称未設定 :02/09/25 17:46 ID:GYLdJcAV
ちなみにどんなの?
856 :
1 :02/09/25 18:42 ID:2U8/R1vk
まず第一段階として、座標値から面積を算出するソフトを作りたいのです。 去年チャレンジした時は、Cocoaはやっぱり!に掲載されてる計算機ソフトを ちょこっと改造して一応はできたんですけど、三角形の面積を計算するためには 三角形用のソフト、四角形の面積を計算するには四角形用のソフトと別々になってしまって。 うまく言えないんですが、セルとセルの関係が一対一になる技しか知らなくて。 ええと、全然説明になってませんね… 臨機応変に三角形でも四角形でも五角形でもそれ以上でも計算できるようになるソフトが とりあえずは第一段階の目標です。それでも、数カ月は掛かりそうですけど…
857 :
1 :02/09/25 19:16 ID:2U8/R1vk
859 :
1 :02/09/25 23:32 ID:2U8/R1vk
>>858 おお、まさにそれです!
しかも、なんかプログラムの行も短いし案外簡単そう!!
でも、Javascriptのソースさえ読み方が分からない!!!
いつか理解できる日が来るだろうから、ソースを保存っと...
860 :
名称未設定 :02/09/26 00:01 ID:0l96W04G
NSLogをつかって変数を表示させたいのですが、 ?for(i=0;i<10;i++){ number=[[NSNumber alloc]initWithInt:(i*3)]; [array addObject:number]; [number release]; } NSLog(@"array=%@",array); を実行すると、0,3,6....,27が表示されるのを期待していたのですが、 0 : <CFNumber 0x4ca60 [0xa01303fc]>{value = +0, type = kCFNumberSInt32Type} . . . 9 : <CFNumber 0x595f0 [0xa01303fc]>{value = +27, type = kCFNumberSInt32Type} となってしまします。なにがいけないのでしょうか?
for ( i = 0; i < [array count]; i++ ) { printf( "%3d:%6d\n", [[array objectAtIndex] intValue]; } ではダメ? そういうことではない?
862 :
861 :02/09/26 01:20 ID:FZFE0+ka
スマソ。 printf( "%3d:%6d\n", i, [[array objectAtIndex:i] intValue] ); です。逝ってきます。
863 :
マーシー :02/09/26 09:39 ID:GfZ4nyr/
>>860 NSLog(@"array=%@",array);
これは実質、
NSLog(@"array=%s",[[array description] cString]);
とやっているのと同じことだよ
>>1 Objective-Cを存分に且つ大げさに使うのなら例えば、
@interface Area : NSObject
{
NSArray*params;
}
-(float)calcArea; // NOT implement
// こうするとどんな図形でも使える。
-(id)initWithParamsArray:(NSArray*)params;
// これもありかな?
-(id)initWithParams:(float)arg1,...;
@end
@interface Triangle : Area
//特に何も無くてもいい
@end
つづき インターフェイスとしては、ポップアップメニューの選択で動的に NSTextFieldの数とそのラベルを変更したり。 NSMatrixを使うのがいいですかね。 まず、NSMatrix(NSTextField)の変更で引数配列を作成。 計算時に、 NSArray params; // すでに作成済み Class areaClass; float result; id area; switch(foo){ case 3: areaClass = [Triangle class]; break; case 4: areaClass = [Square class]; // もちろんAreaのサブクラス break; .... } area = [[[areaClass alloc] initWithPramsArray:params] autorelese]; if( [area isKindOfClass:[Area class]] ) { result = [area calcArea]; } とか。
866 :
1 :02/09/26 21:39 ID:w43+JMuZ
>名称無設定さん
なんかヒントというか、解答というか、教えて下さってありがとうございます!
しかしながらっ!残念ながら私にはまだまだこれを読めるだけの頭がありません。
今はまだ「はじめてのMacOSX Cocoaプログラミング」という本の真似をしている段階です。
まだこのスレで質問のようなものができるレベルにも到達していないみたいです…
>>1 のくせに。。。
>>866 おいらもえらそーなこと言うほどべんきょーしてないけど。
やっぱ読んでてわかりやすい解説書ってあるよなぁ。
868 :
名称未設定 :02/09/27 18:13 ID:KXadaBpf
>1 僕はアーロン・ヒレガスのMac OS X Cocoaプログラミングで勉強中です。 お互いがんばりましょう。ちなみに1さんが持っている 「はじめてのMacOSX Cocoaプログラミング」(本の題名が似ていてややこしい) も持ってます。質問の書き込みをするときに本のどのあたりを読んでるか教えて もらえますか?僕も同じところを読んで勉強させてもらおうと思ってます。
869 :
名称未設定 :02/09/27 20:55 ID:KXadaBpf
あるメソッドが「公開」されているときと「非公開」な場合の違いとは、 どういう事なのでしょうか?
>>869 堂々と使っていいか、内緒で使うかの違いです。
非公開のメソッドがフレームワークのバージョンアップでなくなっても僕は驚きません。
>>870 >>869 はCocoa + Javaなんじゃない?
非公開のメソッドがフレームワークのバージョンアップでなくなっても誰にも分かりません(w
そういう違いです。
872 :
870 :02/09/28 01:00 ID:040k5z3D
>>871 なぜJavaと推測されたのですか?
それからnmって知ってます?
873 :
名称未設定 :02/09/28 01:26 ID:hAH24uQ7
ココアはやっぱり森永。
874 :
名称未設定 :02/09/28 12:46 ID:dpgPTypf
ProjectBuilder のプラグインを作るための情報を御存知の方、
いらっしゃいますか?
Eclipse (
http://www.eclipse.org/ ) みたいにプラグインで
開発環境そのものをいじりたいのですが、どの辺のドキュメントを
漁ればいいのかもわからないへなちょこなのです。
875 :
871 :02/09/28 13:42 ID:zanMBQGT
>>872 ここはCocoaスレで、しかもアクセス制御の質問をしてくるぐらいの
レベルならたぶん、Objective - C++をやろうとはしてないだろう、
と推測した。
>それからnmって知ってます?
おれの揚げ足とっても仕方ないでしょ。
質問者はそんなこと訊いてないんだから。
もっとも、オレもちゃんと答えてないけど(w
876 :
名称未設定 :02/09/28 13:59 ID:2hOUk6AS
>>874 おれも知りたい。
pbplugin と pbxplugin の違いはなんだろ。
877 :
名称未設定 :02/10/01 00:54 ID:WT+ZkkJH
NSTextViewに書いた内容をある変数にいれたいのですが、 どうしたらいいのでしょうか?
>>877 - [NSTextView textStorage]
- [NSText string]
でアクセスできるよ。
879 :
名称未設定 :02/10/01 01:46 ID:WT+ZkkJH
881 :
名称未設定 :02/10/02 02:22 ID:g/tEqt8v
下げてしまっていたのであげます。すみません…。
882 :
名称未設定 :02/10/02 22:37 ID:164XwRZk
ボタンを押すとNSTextField内の文字列を取得して、別のフィールドに文字数を表示するために ?- (IBAction)mojisuuwoKazoeru:(id)sender /*NSButton mojisuuwoKazoeruを押すと文字列の文字数を数える*/ { int length; NSString *word; word = [mojiwoNyuuryokusuru stringValue]; / *文字列を入力するNSTextField mojiwoNyuuryokusuru*/ length = [word length]; [mojisuuwoHyoujisuru setIntValue:length]; /*文字数を表示するNSTextField mojisuuwoHyoujisuru*/ } としました。例えば文字列「東京特許許可局」と入力すると「7」と表示されるのですが、 これを「東京特許許可局は7文字です」と表示させたいのですが、うまくいきません。 +stringWithFormatを使うとうまくいくらしいのですが、使い方が分かりません。 どなたかお知恵を貸してください。
883 :
名称未設定 :02/10/03 00:24 ID:4NtdwfwL
?>882自己レスです。 NSString *hoyuji; hyouji = [NSString stringWithFormat:@"%@ has %d letters.",word,length]; を追加して解決しました。が、@" "の中に日本語を入れると、文字化けしてしまいました。
885 :
884 :02/10/03 09:20 ID:IBuKGDlb
886 :
parao :02/10/03 09:56 ID:wdQfNrXD
OS10.2になってたとえばscheduledTimerWithTimeintervalで音をならすメソッドを 一定の感覚で鳴らす際に、再生が終わらない内には次のループでも再生、しなくなったのか、 それとも0.4秒以下のループには対応していないのか(まぁ、これはないと思うのですが、) ご存じの方いらっしゃいます?
887 :
マーシー :02/10/03 11:07 ID:HtafKTKI
>@" "の中に日本語を入れると @"text"は7bitASCII専用だから日本語は無理です。 やるとすればLocalizable.stringsファイルを使うべきです。 やり方はアーロンヒレガス本の11章ローカライズを参考に。
888 :
マーシー :02/10/03 11:10 ID:HtafKTKI
241の [ myOutlet setStringValue:[ NSString stringWithCString:"あいうえお" ] ]; も個人的にはどうかな、と思います。というのもファイルの文字コードの設定 を間違えるとうまく行かない可能性がありますし(Unicodeでないと化ける んじゃなかったっけ?)将来的にも通用するかは怪しいもんです。
>>882 慣れないうちはローマ字でもいいと思いますけど
将来的には英語で書いた方がよろしいかと。
890 :
名称未設定 :02/10/04 01:07 ID:Bqd7pKS8
Project Builderから何を実行しても、実行ウィンドウに ## Component Manager: attempting to find symbols in a component alias of type (regR/carP/x!bt) というメッセージが出ます。実行は正常に出来ます。 DevToolをインストールしなおしても同じでした。 原因が分かる方いますでしょうか? OSX10.2.1、DevToolはOSX10.2についてたものです。
>## Component Manager: attempting to find symbols in a component alias of type (regR/carP/x!bt) これ、Terminalからopenコマンド使ってもたまに出てくる。 0S10.2.1。 なんだろう・・・
みんなどんなマシン使っているの? ibook 600(Late2001) だと、コンパイルが遅くて泣きそうだよ。
893 :
名称未設定 :02/10/08 05:31 ID:IYngMitF
>>892 同じく iBook(Late 2001) だが、泣かないぞ。
そうえいば、コンパイルに G3/G4 の差ってあるのか?
Volocity Engine なんて関係しなさそうだから、単純にクロック速いやつが
コンパイルも速いという理解で正しい?
894 :
名称未設定 :02/10/08 06:46 ID:5DDn5fB+
正しい。 ついでにメモリたくさん積んであった方が、ファイル読みに行く処理が減ってさらに早い。
895 :
名称未設定 :02/10/08 23:18 ID:V8694tw5
unicode-UTF8の文字をunicode-UTF16に変換する方法ってありますか? なぜかどのサイトを探してもみつかりませんでした。
>>895 NSStringかCFStringでサポートされてなかったっけ?
>>890 、891
/Library/QuickTime/Toast Video CD Support.qtxが入ってない?はずせば出なくなるとか。
898 :
名称未設定 :02/10/12 15:02 ID:GSvT1c9B
このスレもそろそろ900なわけだが、みんなCocoa上達しました? 漏れはまだまだです。というわけで、 もしよかったら、勉強のために題材選んで、みんなでなんか 作ってみたりしませんか?
題材ねぇ。 2chブラウザは既にたくさんあるし、YahooBBSブラウザなんてどうよ?
>>899 レスタイトル取得が滅茶苦茶しんどそう。
一回に付40個づつしか取ってこれないから
6000レスが付いてたら150回htmlデータを取ってこないといけない。
しかもそれぞれでhtml中の必要な部分の切り出しがあるわけで。
最初の一回だけとはいえ、実用的じゃないと思う。
まあ、投稿データを生で取ってくる手段があれば別だけど。
多分無いよね。
>>898 ML専用メーラーとかはどうよ。
ツリー表示対応。ヘッダ解釈による投稿者自身への返信抑止とか。
MLからのメールはヘッダにいろいろ情報が入ってるから遊べそうだけど。
>>900 ML専用メーラーというのがあんまりイメージがわかないんだけど、
それって、特定のMLのメールしか受信しないようにするの?
で、MLごとのローカルルールに合わせてに色々カスタマイズできる・・・
っていうようなアイデア?
メーラーでいいんじゃないかな。 Cocoaベースでフリーの開発継続中の奴って純正Mailくらいでしょ。 OMEってのもそうかな、あれはよくわかんないんだけど。 メニューバーとかDockとか使って、2chのメール欄となんか連動できたり すればおもしろいんじゃないかな。難しい機能はとりあえず抜きでも。 ・・・まあ、俺はなんの役にも立たないけどな。
メーラーか。どうやってつくればいいのかな・・・ Cocoaに、メール用のAPIなんて都合のいいものはないよねえ。 JavaだとJavaMailっていうのがたしかあったけどな。
とりあえず、POP クライアントを作るのが良いのでは? Unix のライブラリをぱくってきて、POP でメールを取得 するとか。 もしくは、procmail 等の外部コマンドを実行して、GUI でメールを表示するところから、始めるのが良いのでは?
>>904 なるほどです。確かに、まずはPOPクライアントの機能がないことには、
話にならないですね。
その他の機能は、後からつけていけばいいし。
とりあえず、言い出しっぺなので、ドラフトっていうか、
基本になりそうなPOPクライアントを近日中に漏れが作ってうpしてみます。
そのあと、協力してくれる人がいたら、協力してください。
Cocoaのメーラって、NameraもGyazMailもそうだけど、 1メール1ファイルで、使ってるとどんどん遅くなるでしょ。 これをなんとかできるメーラができたらすごいかもよ。
907 :
名称未設定 :02/10/15 01:39 ID:RhF5BtPp
1200ページのCocoa Programmingはどうよ
908 :
名称未設定 :02/10/15 03:20 ID:YOkP1iXT
ツルちゃんページでは Cocoa Programming Donald Yacktman, Erik Buck, Scott Anguish 著 $59.99 : 2001.12発売 : 1300page となってるぞ。また増えたのかな? っていうかこの本もう売られているの? このままページ数の予定だけがどんどん 増えていき、しまいには出版中止とか いったらおもろい。
909 :
名称未設定 :02/10/15 03:24 ID:9GwpCUgF
>>908 もう発売されてるよ、その本。
ツルちゃん本人もすでに手に入れて読んでるところらしい。
(SiteAroの方はみんな読んでないのかな?)
910 :
:02/10/15 05:54 ID:mFuYPugO
911 :
名称未設定 :02/10/15 09:45 ID:13GZf9hj
Project Builderプラグインの作り方のドキュメントはどこにあるのかな?
>>910 Option-Mはデフォルトで前の単語を選択するようになってるから。
PBKeyBinding.dictはちゃんとコピーした?
もしちゃんとコピーしてあるなら、PBKeyBinding.dictを編集して
別のキーに割りあてると良いかも。
ちなみに、うちでは
>>238 のCompletion DictionaryのPBKeyBinding.dictを
編集してF1にPBXtraを割りあてるようにしてる。
こうすればそれぞれのプラグインが共存できるし。
915 :
_ :02/10/19 04:50 ID:4/Sln49E
916 :
_ :02/10/19 04:52 ID:4/Sln49E
>>915 あ。でもこれ送信だけか。(´・ω・`)ショボーン
917 :
名称未設定 :02/10/19 09:27 ID:XwACkTeh
>916 Message.frameworkには、実はPOP/IMAP送受信やmbox操作のクラスも ちゃんとあるんだよね。公開されてないけど。
918 :
898 :02/10/19 09:35 ID:HDlmxbMy
>>917 ま、まじですか?
一生懸命作ってたのに・・・
っていっても、POPはfetchmail+procmailでやってしまっていますが。
ついでに、厨なもので、それでもかなり苦労してますが。
>>918 後々変更可能なようにバンドルにしちゃうのがいいかもね。
例えば、
MailerEngine.plist
POPClassBundleName="hoge.bundle";
POPClassName="POPclass";
とかを作っといて、POPclassは
@protocol POPEngine
//これは適当。もうちょっとまともに設計してね。
-(void)initWithHostName:(NSString*)host;
-(void)setUserName:(NSString*)userName;
-(void)setPasswd:(NSString*)pass;
-(void)setHostName:(NSString*)host;
-(void)setHostIPAddr:(NSString*)ip;
-(void)setPort:(int)port; //default port is 110.
-(unsigned)mailNum;
-(size_t)sizeOfMailAt:(unsigned)position;
-(NSArray*)sizeOfMails;
-(NSString*)uidAt:(unsigned)position;
-(NSArray*)uids;
-(NSData*)mailAt:(unsigned)position;
-(NSData*)mailAt:(unsigned)position range:(NSRange)range;
-(NSArray*)mails;
-(NSArray*)mailsInRange:(NSRange)range;
@end
とかに適合させておく。
後は起動時もしくは使用時にPOPclassをMailerEngine.plistを元にロードしてやればいい。
920 :
898 :02/10/22 00:11 ID:5Khlx241
>>919 なるほどです。POPの実装を設定ファイルで、入れ替え可能にすると
いうことですね。いいですね。カッコイイと思います。
ところで、POPクライアントの方、はりきってやりはじめたはいいのですが、
ヘタレなもので、なかなか思うように進んでいません。ごめんなさい。
このままだと、先に行けないので、
とりあえず以下の3点について話し合いたいと思っているのですが。
1.メーラーの仕様(何を、どこまで作るか)
2.画面設計
3.クラス設計
ただ、Cocoaの話とはだいぶずれてきてしまうので、
別スレ立てた方がいいですかね?
921 :
Java Beginer :02/10/22 01:09 ID:O4XpQGdb
PBでClasspathの設定はどこに書けばいいんでしょう?プログラミングバイブル見ても判らなかった.
922 :
_ :02/10/22 02:27 ID:Tf8FmJNL
>>920 せっかく
OSXのみでの環境なので、それをいかしていくといいのでは?
例えば検索やフィルターなんかはPerlの式を直接かけるようにするとか。
MySQLとかにデータを流せるとか。menuextraから操作できたりとか。
923 :
_ :02/10/22 04:11 ID:Tf8FmJNL
PBのタブみたいなのを作りたいんですが、 やっぱりカスタムビューで自分でつくっていくしかないんでしょうか。 PBのインターフェイスをIBのみで作れないとは。。。。 だれかいいHP知りませんか?
924 :
名称未設定 :02/10/22 10:13 ID:SbK3SIJv
>923 PBXSplitView
925 :
898 :02/10/22 22:05 ID:IVp4bnD0
>>922 なるほどです。
MySQLでちょっと思ったんだけど、メールボックス毎にメールの保存先を
代えることができたら便利かな。
例えば、大量に流れるメーリングリストのメールは、MySQLみたいな
データベースに保存して、外出先でもみたいメールはiDiskに保存して・・・
って感じで、用途に応じて色々な保存先を指定できるようにするとか。
926 :
_ :02/10/22 23:32 ID:Tf8FmJNL
>924 ぐぐってみましたが、でてきませんでした。。 ポインタくださひ。(゚д゚)
927 :
_ :02/10/22 23:34 ID:Tf8FmJNL
>925 それはいいかも。
928 :
名称未設定 :02/10/23 13:33 ID:e0TTlieY
mouseDownやmouseDraggedと同じようにmouseMovedを定義したのですが マウスを動かしても、mouseMovedが呼ばれません。 どなたか教えて下さい。
>>225 良さげですね。
個人的には正規表現を使って検索できると助かります。
(願わくば日本語でも問題ゼロで…)
Cocoaスレだとプログラミングに関心の無い人の
意見を聞きにくくなるでしょうし、
せっかくプロジェクトが立ち上がったわけですから
別スレを立てるのも良いのではないでしょうか。
(荒らしは増えるかもしれないのでお任せします)
>>928 Viewの初期化時、initWithFrame:で
[[self window] setAcceptsMouseMovedEvents:YES];
ってやってくらはい。
動的にWinodowに貼付けてるなら
viewDidMoveToWindow
で同上のことをしてくらはい。
931 :
928 :02/10/23 23:56 ID:ANzrlDzK
>>930 返信ありがとうございます。
さっそく試してみたのですが上手くいきませんでした。
#import "MyView.h"
@implementation MyView
- (id)initWithFrame:(NSRect)frameRect
{
[ super initWithFrame : frameRect ];
[ [ self window ] setAcceptsMouseMovedEvents:YES ];
return self;
}
- (void)mouseMoved:(NSEvent *)theEvent
{
NSLog( @"ok" );
}
@end
932 :
898 :02/10/24 00:34 ID:Qd71qucq
933 :
930 :02/10/24 08:14 ID:ZTbFbDYh
>>931 すんません。すっとぼけてました。
良く考えると動的であろうと無かろうと、初期化時にはwindowはセットされてませんね。
と言う事で、
-(void)viewDidMoveToWindow ;
で呼んでください。
>>933 IBで配置してあるViewに対してなら
-(void)awakeFromNib
で呼んでもいいんじゃない?
935 :
928 :02/10/24 12:07 ID:jqFE3bsX
>>933 >>934 ご教授ありがとうございます。
さっそく以下のように試してみたのですが動作しませんでした。
#import "MyView.h"
@implementation MyView
- (id)initWithFrame:(NSRect)frameRect
{
[ super initWithFrame : frameRect ];
return self;
}
- (void)viewDidMoveToWindow
{
[ [ self window ] setAcceptsMouseMovedEvents:YES ];
}
- (void)mouseMoved:(NSEvent *)theEvent
{
NSLog( @"ok" );
}
@end
mouseMovedってマウスが動かされたら呼ばれるんじゃないのでしょうか?
936 :
928 :02/10/24 12:14 ID:jqFE3bsX
937 :
928 :02/10/24 12:38 ID:cHmcbWTl
viewDidMoveToWindowで以下の行を追加したら動作しました。 [ [ self window ] makeFirstResponder:self ]; お騒がせいたしました・・・
938 :
_ :02/10/24 16:32 ID:UBEe0PPy
英語がよめないので調べきれなかったのですが、 Objective-Cで正規表現をつかえるAPIってありますか?
939 :
名称未設定 :02/10/25 18:37 ID:d03XCTLD
Cocoa初心者です。 ソースを読んでおおまかな処理の流れはつかめるのですが、いざ自分で 書こうとするとさっぱりです。 わからないのは変数?やクラス?の定義で名称の先頭に*とか@とか付けて ますが、これはどういう意味なんでしょうか。 それと、{}と[]の使い分けも分かりません。 普通のC言語ではこのような定義で*を付けたりメソッドを[]で囲ったりとか はしないと思うのですが、こういったObject-C独自の文法解説をしている サイトって無いでしょうか?
941 :
名称未設定 :02/10/27 23:13 ID:3Da+pIKd
>> 939 もうちょっと、わからないことを具体的に書いてみな。 たとえば、 @interface ... @end なら、クラスのインタフェースの宣言をしているということ。 インターフェースの宣言をしたら、実装をしないといけない。 で、実装は、 @implementation ... @end の間に記述する。こんなのでも参考になる?
942 :
名称未設定 :02/10/28 23:05 ID:+WolWPmm
きょう、オライリーの "Learning Cocoa with Objective-C 2nd Ed."か届いた。 中身が旧版とえらい変わってるぞ。 2nd Editionといいながら、全く別の本じゃないか。 序文と目次をぱらぱら見ただけだがかなりよさげなので紹介しておく。
943 :
名称未設定 :02/10/29 11:52 ID:oH37oYTB
project builder 使って何かプログラム(Cで)作ろうと思うのですが、使える関数がわかりません 関数一覧みたいなのってどこで見れるんでしょうか?
/Developer/Documentation にいっぱいあるよ。 いっぱいありすぎて、どれ読んだらいいか分からないと思うので、 最初はまず入門書を読むことをお勧めします。
945 :
名称未設定 :02/10/29 17:17 ID:vhq78Nla
946 :
939 :02/10/30 21:20 ID:V78yDhSP
>> 941 たとえば書籍版「Cocoaはやっぱり!」のP105に NSString* str = @"Temple"; とありますが、この「*」の意味がわかりません。 また、同じくP108のソースでは NSString *sdName = 〜 と、変数側に「*」が付いていて、その使い分けもわかりません。 というわけでコーディングのかなり初歩の段階で躓いています。
>>946 「*」はC言語のポインタと同じですね。
「NSString* str」 と、「NSString *str」は、単に書き方の違いで、
意味は同じです。どちらかというと、
後者の書き方をしている人の方が多いような気がします。(単なる印象ですが。)
>>947 >後者の書き方をしている人の方が多いような気がします。
たとえば、同じ型で複数の変数を宣言するとき、
NSString* str1, *str2;
って、かっこわりーじゃん(w
しかも前者の場合でやってると、 NSString* str1,str2; としてしまい、激しくミスに陥りやすい罠
950 :
名称未設定 :02/11/01 18:13 ID:+ie332jn
質問です。 一定時間処理を止めるにはどうすればいいのでしょうか? (HyperTalk でいうところの wait、AppleScript では delay に 相当するものです。) ループを回して2つの NSDate を比較し続ければ、一定時間が経過する まで処理の流れをそこでストップさせることができますが、ループを まわる度にオブジェクトの生成と破棄を繰り返すので、かなり CPU タイムを浪費しちゃってる気がします。もっとすっきりした方法って ないもんでしょうか?
NSTimerは?
952 :
950 :02/11/01 19:42 ID:aodJOBot
NSTimer、NSDate あたりを駆使して時間を管理するクラスを自分で 作るのが一番かな。なんにせよ、NSTimer はそのままではちょっと 使いづらい感じです。一定時間経過後、または定期的に、あるメソ ッドをどこか見えないところから(笑)呼び出すという形になるの で、今現在の処理の流れをそこで止めたいという場合にはちょっと 融通がきかない気がします。 Cocoa でゲームとか作ってる人はこの辺どうやっているんだろう? C の標準ライブラリとか使ってるんだろうか???
>>950 ?[NSThread sleepUntilDate:[NSDatedateWithTimeIntervalSinceNow:10]];
とかではだめでしょうか。
954 :
952 :02/11/01 19:59 ID:LCayY6yc
何か変になってました。スマソ。正しくは、こうです。 [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:10]];
>>954 main thread でそれをすると、イベント処理が止まっちゃって、
レスポンス悪くなって、虹色カーソルが出たりするよ。
>>950 とりあえず、簡単なアニメーションの例題が
/Developer/Examples/AppKit/CircleView
に転がってる。
956 :
名称未設定 :02/11/01 20:32 ID:B2cJ4Yh4
ProjectBuilderの文字って小さすぎるので せめてソースコードの文字を拡大したいのだが、 メニュー→形式→フォント→大きく、としても全然かわらない。 誰かやり方知っていますか? ちなみに動作環境はver.2.0.1です。
957 :
952 :02/11/01 20:46 ID:LCayY6yc
>>956 メニュー→「環境設定」→「構文の色付け」でしょうか。
フォント→大きくはなんのためにあるのだろう・・・
958 :
952 :02/11/01 20:50 ID:LCayY6yc
>>955 そか、mainスレッドのsleepすると、全部止まってしまうわけですね。
そりゃまずいですね。失礼しました。
959 :
956 :02/11/01 20:59 ID:B2cJ4Yh4
>>957 ありがとうございます。
助かりました。
[ [ NSRunLoop currentRunLoop ] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10] ]; のようにすることで、虹色バルーンを出さずに待ちを入れることができるよ。
961 :
950 :02/11/02 10:44 ID:oF59xkFK
>>952 , 955, 960
皆さんどうもです。
- (void)wait:(float)sec
{
NSDate *stopDate = [[NSDate alloc] initWithTimeIntervalSinceNow:sec];
while ( [stopDate timeIntervalSinceNow] > 0 )
;
[stopDate release];
}
みたいなのを考えていたんですが、メインのイベントループを回して
待機する 960 さんのやり方の方がいいですね。ちっと NSRunLoop の
ドキュメントでも読んで勉強します。
962 :
950 :02/11/02 11:05 ID:oF59xkFK
ついでなんでもうひとつ質問させて下さい。 NSTimer についてなんですが、scheduledTimer を invalidate した 後に、955 さんの言ってるサンプルでは、前もって retain している のでその分 release していますが、Cocoa はやっぱり!のサンプル なんかを見る限りでは invalidate したタイマを release していま せんよね。このタイマーって自動解放されているんですか? ドキュメントを読んでもどうもその辺のことが書かれていないので ちょっと心配なのですが。
>>962 自分でallocしていない、retainしていないインスタンスはreleaseしてはいけません。
しかし、
instance = [instance2 copy];
等でコピーしたもの、
instance = [Class new];
によって取得したものについてはreleaseしなければなりません。
964 :
950 :02/11/02 21:36 ID:e1F+rUlW
>>963 オブジェクトのオーナーシップの原則については理解している
つもりです。ただ、タイマーの場合、ストップがかかるまで
イベントループが何回回ろうが存在し続けているので、イベント
ループの NSAutoreleasePool はアテにはできないはずですよね。
で、結局 invalidate されたタイマーってだれがどっから
release しているのかなというのが自分の疑問なのですが。
その辺のメカニズムがいまいちよくわからんです (^_^;
>>964 >イベントループの NSAutoreleasePool はアテにはできないはずですよね。
この場合、タイマーが解除された時点でautoreleaseされるのが自然。
>で、結局 invalidate されたタイマーってだれがどっから
NSRunLoopじゃない?
Programming Topicsとかに話題あったと思う。
966 :
名称未設定 :02/11/05 09:01 ID:mPMrNriW
QuickTime フレームワークをインポートしてビルドしたところ 「一部のヘッダの修正日付がプリコンパイルヘッダ作成後のもの になっているため、プリコンパイルヘッダを使用できない」 というような内容の警告が出ました。ヘッダのプリコンパイルを やり直せば解消できそうなんですが、どうやればいいんでしょうか?
>>966 Terminal で sudo /usr/bin/fixPrecomps かな。
でも、DevTool をちゃんと install/update すれば
自動的にやってくれたような。。。
968 :
966 :02/11/05 18:39 ID:5FIzSaJ7
>>967 サンクス。問題解消しました。
プリコンパイルヘッダについては GNU C Preprpcessor の
ドキュメントに説明がありますね。
にしても、Jaguar にして、DevTools もアップデートし、
そっから何もいじってないはずなんですが。
>>968 QuickTimeのバージョンアップもやってない?
970 :
966 :02/11/05 20:02 ID:5FIzSaJ7
>QuickTimeのバージョンアップ あ… やってますね、そういや。 ソフトウェアアップデートが(以下略) そうか、QuickTime のバージョンアップでヘッダが新しいものに 置き換わったのか。 ということは今後システムのマイナーバージョンアップなんかで 同じことが起こり得るということですね。で、その時は fixPreComps ですね。勉強になりました。
971 :
名称未設定 :02/11/07 10:38 ID:DPVob6Mv
Project BuilderでCの簡単なコードを 試すのってどうやるんでしたっけ?? C言語入門スレってもう落ちちゃったのかな?
>>971 Standard Toolからです。
?setvbuf(stdout, NULL, _IONBF,0);
↑するかバッファを吐いてね。
973 :
972 :02/11/07 10:57 ID:SqdlCt9g
コピペしたら?が入っちゃった…。 ?は、無しね…。 レス一個余分に使っちゃった…。 ごめんなさいね。
974 :
971 :02/11/07 11:36 ID:DPVob6Mv
かんたんなコードならTerminalからやったほうが はやいと思われ。
976 :
972 :02/11/07 14:19 ID:xR1d9764
急いでま〜す。
>>974 main.c
の変数宣言の後にでも
setvbuf(stdout, NULL, _IONBF,0);
を入れてみてください。
モードね
_IONBF バッファリングしない
_IOLBF 一行バッファリング(文字列\n newlineしたとき)
_IOFBF フルバッファリング(溜められるだけ)
代わりにprintf関数の後に逐一
fflush(stdout);
を入れても表示されます。
まだ、Macだけってところじゃないから
プログラム板を徘徊するのもよろしいかと…。
身内が入院してるもんで、暫く居なくなりますが
がんばってください。
関数の説明を載せているサイトを色々回ってみると
それぞれ、言い回しが違ったりするので説明を
見比べて理解するのもよろしいかと…。
977 :
971 :02/11/07 16:28 ID:DPVob6Mv
>>972 さん
お忙しいのにありがとうございましたm(_ _)m
いろいろ調べてみますね。
978 :
名称未設定 :02/11/07 17:12 ID:ICVe0lVi
NSTimerってクラスクラスタなんでしょうか? サブクラス作ったんですけど初期化でコケてしまいます。 コンパイルは通ったのですが、実行時に初期化しようとすると サブクラスの初期化メソッドから NSTimer の初期化メソッドを super で呼び出した時に *** initialization method -initWithFireDate:interval:target:selector:userInfo:repeats: cannot be sent to an abstract object of class XXXTimer: Create a concrete instance! てな感じのログが出力され、初期化できないのです。 自分の知る限り NSTimer がクラスクラスタであるということは どこにも書いてなかったと思うのですが。それとも他に何か 問題があるのでしょうか?
>>978 class cluster かどうかは知らないけど、
NSLog() で timer を表示すると NSCFTimer とか表示するから、
Core Foundation と toll-free bridge されてるやつはみんな
抽象クラスだと思った方がいいのかもね。
ってか、そもそも NSTimer をサブクラスする必要ってあるの?
メソッド追加したければ、category で充分じゃない?
>>979 いや、インスタンス変数を追加したんですよ。
それをカウンタとして使うことで、そのカウンタが 0 になったら
タイマを invalidate するという。自身の終了条件を内包した
タイマなんですけど。
>NSLog() で timer を表示すると NSCFTimer とか表示する
NSCFTimerってプライベートサブクラスってやつですよね。
荻原本でクラスクラスタのサブクラスを作る方法が解説されて
ますけど、それを適用すればうまくいきすですね。ちょっと
試してみます。
981 :
978 :02/11/07 21:52 ID:DyLuh7A9
だ、ダメだ…… いろいろあがいてみたものの、結局ムリだった… 方針を変更し、userInfo の辞書にカウンタを含めることにして、 そのカウンタへのアクセサメソッドをカテゴリで追加することに します。プロトコルと併用すれば型チェックもできるし。 ただ、カウンタへのアクセスがな〜、何度も参照されるものだけに、 できる限り単純化したかったのに、、、 とはいえ、まずは動くものを完成させるのが第一ですね。 979 さんアドバイスありがとうございました。 完成させるのが第一ですね。
982 :
名称未設定 :02/11/08 06:44 ID:l1asF/+5
Project Bulder のプロジェクトに例えば画像なんかのリソースを フォルダごと Resouces に追加しても、ビルド後にアプリの ラッパを開くと、Resouces の直下に各ファイルが置かれている のですが、フォルダの階層を残したまま Resouces に追加できない んでしょうか? 画像は画像、サウンドはサウンドという風に 分類して格納したいのですが。 うちの環境は Jagar とそれに付いてきた DevTool です。
>>982 まず、ターゲットタブをクリックして、ターゲットを選択し、
ビルドフェーズのバンドルリソースから、任意の場所に置きたいファイルを削除してください。
次にメニューのプロジェクト->新規ビルドフェーズ->新規コピーファイルビルドフェーズを
選択し、ここにファイルを登録すれば任意の場所に置くことが可能。
984 :
982 :02/11/08 10:36 ID:FrMQ3Inf
>>983 ありがとうございました。うまくいきました。
まだまだ IDE を使いこなせてないなー > 俺
昨日ココアを触りはじめて必死で勉強してさっきNSTextViewに対してメニュー から定規をつけることに成功。。。 と、思ったら、、、、、、 最初からTextMenuに同じ機能がついてるじゃねーかーー。 乱文乱筆御免。