Cocoaはさっぱり!!! version.X(10)at MAC
Cocoaはさっぱり!!! version.X(10) - 暇つぶし2ch1:Cocoa
08/05/20 22:27:35 ItX/CuiA0
前スレが終了したみたいなので立てました。
過去ログとかよくわからないのでフォローお願いします。

2:名称未設定
08/05/20 22:43:11 sG8g16K80
前スレ

Cocoaはさっぱり!!! version.9
スレリンク(mac板)


3:名称未設定
08/05/20 22:57:38 8Odxygdm0
間違ってても(゚ε゚)キニシナイ!!

Cocoaはさっぱり!!! version.8
スレリンク(mac板)
Cocoaはさっぱり!!! version.7
スレリンク(mac板)
Cocoaはさっぱり!!! version.6
スレリンク(mac板)
Cocoaはさっぱり!!! version.5
スレリンク(mac板)
Cocoaはさっぱり!!! version.4
スレリンク(mac板)
Cocoaはさっぱり!!! Version.3
スレリンク(mac板)
Cocoaはさっぱり!version:2
スレリンク(mac板)
Cocoaはさっぱり!
スレリンク(mac板)

4:名称未設定
08/05/20 23:10:29 7Hvy2BoK0
>>1
乙。

5:名称未設定
08/05/20 23:12:32 7Hvy2BoK0
関連スレも貼っとこう

Macでプログラミング{8}
スレリンク(mac板)

MacOS XをUnixとして使ってる人の為のスレ その13
スレリンク(mac板)

Cocoaはさっぱり!!! version.9
スレリンク(mac板)

Xcode part6
スレリンク(mac板)

【マック】Macintoshプログラミング質問箱
スレリンク(tech板)

Mac OS Xでの開発環境はどれがイイ?
スレリンク(tech板)

6:名称未設定
08/05/20 23:23:40 RwxhciDA0
ObjectiveC++最高ぉ

7:名称未設定
08/05/20 23:30:39 tYSiPPVw0
現実
URLリンク(slashdot.jp)

プログラミング言語別求人件数(アメリカ)

Java 16479件
C++ 8080件
C# 7780件
JavaScript 6749件
Perl 5710件
PHP 2641件
Python 1408件
COBOL 1207件
Ruby 769件
Objective-C 38件 ←←←←
Lisp 33件

8:名称未設定
08/05/20 23:37:49 KHEABemo0
これも関連スレに入れてあげてください
Objective-C [ObjC part:3];
スレリンク(tech板)


9:名称未設定
08/05/20 23:50:51 HRwZ9j3i0
>>7
Java がトップとは、当たり前のような、そうでないような…

10:名称未設定
08/05/21 00:08:18 rWpwWuzp0
え、当たり前以外の何物でもなくね?

11:名称未設定
08/05/21 09:23:41 f3o28oAX0
そもそも今MacOSX用アプリを開発してる会社が何社あるのやら・・・。

12:名称未設定
08/05/21 10:22:01 Y93RS+ry0
アメリカには一杯あるよ
日本にはほとんどないけど ...

13:名称未設定
08/05/21 21:18:40 21cJALCV0
HMDTが募集してんじゃんw

14:名称未設定
08/05/21 22:13:00 L3QcPzgd0
>>7
俺、Lispやろうかな。へたれPGの俺は求人件数よりも求人倍率の低さ
で採用されるかもしれないから。

15:名称未設定
08/05/22 00:54:28 pDh7HLnh0
それってさらに
Emacs Lisp
Common Lisp
Scheme
とかに細分化されてるだろうからなぁ
一つに絞りたがっても意味ないよ

煽りじゃなく色々やった方がいいよ
得意分野として特定の言語を伸ばすのはアリだけど、特性の違う2、3の言語にまたがっといた方がいい
折角Macportsで手軽に色々入れられるんだし

16:名称未設定
08/05/22 19:23:46 F0xUDbhN0
ようつべを利用したいのですが、サンプルプロジェクトによくある
GData.frameworkというのはどうすれば手に入れられるのでしょうか?

17:名称未設定
08/05/22 19:48:31 46WSZxhf0
ヒレガス本第3版今届イタ━━(゚∀゚)━━!!!!
Garbage Collection も Core Animation も載ってるね
つーか、やっぱり Leopard に対応するために、当初の予定より
出版が遅れたんだろうな‥

18:名称未設定
08/05/22 19:51:27 QT31KVFx0
そういえば、Leopardも遅れたな。

19:名称未設定
08/05/22 20:02:40 O70xzo5x0
>>17
第2版と比べて
どれくらい変わってます?
目次でいいので教えて。

20:17
08/05/22 20:23:52 46WSZxhf0
>>19
Chapter 名の変化で比較するとこんな感じ

+ 追加(第3版のみ)
- 削除(第2版のみ)
→ 変更
他は同じ

+ Memory Management
+ Target/Action
Bindings and NSController → Key-Value Coding, Key-Value Observing
+ NSArrayController
+ Basic Core Data
Responders and Keyboard Events → Keyboard Events
Working with Fonts and NSAttributedString → Drawing Text with Attributes
+ Web Services
- Creating Interface Builder Paletts
- AppleScript
+ View Swapping
+ Core Data Relationships
+ Garbage Collection
+ Core Animation
Cocoa and OpenGL → A Simple Cocoa/OpenGL Application
+ NSTask
- Creating Frameworks
- GNUstep

21:19
08/05/22 21:11:01 O70xzo5x0
>>20
ありがとう!

22:名称未設定
08/05/22 22:56:09 3rHyH/v/0
ページ数も増えてるよね>第3版

23:名称未設定
08/05/22 23:11:40 u2zk9cyj0
>>16
ググれ。
つーか、googleに聞け。
つーか、googleを調べろ。

24:17
08/05/22 23:41:56 46WSZxhf0
>>22
第2版 450ページ
第3版 433ページ


25:名称未設定
08/05/23 00:17:04 T833at980
>>23
Googleとは小一時間格闘して敗北したんですけど、
objective-c用?のをダウンロードできるところが無さそうでした。
(っていうか、そもそもそういうものなのかもわからず)

ソースを落としてコンパイルするのですかね?

26:名称未設定
08/05/23 00:29:38 o+/m2vgU0
いや、ググったら二秒で出てくると思うが ...
URLリンク(www.google.com)
の二つ目に
URLリンク(code.google.com)
があるとおもうんだけど、あなたの目は節穴?

27:名称未設定
08/05/23 02:24:54 j99xmi9d0
縦横比を維持しつつリサイズされるQTMovieViewはどのようにしたら作れるのでしょうか。
URLリンク(brpg.hp.infoseek.co.jp)
これのメインウィンドウの左下フレームのような感じのものです。

28:名称未設定
08/05/23 02:48:48 3AyFrRZN0
>>27
attributesにPreserves Aspect Ratioってチェックがあるけど。

29:名称未設定
08/05/23 03:01:23 j99xmi9d0
>>28
ありがとうございます。助かりました。


30:名称未設定
08/05/23 04:21:31 dXEXmQ0i0
>>27
こういうのってなんで作ってるんだろうと思う
ターゲットはいるのかな、趣味なのかな

31:名称未設定
08/05/23 04:25:01 IL6J9Zwh0
>>30
ゆくゆくはiTunesよりも高機能に育てる過程の一つとか。

32:名称未設定
08/05/23 09:58:56 cwPsB5600
シンプルに連続再生して垂れ流ししたい
iTunesが重い
iTunesが扱えないフォーマットが扱える(QuickTimeで再生出来れば)
Cocoaプログラミングの勉強

などです。

33:名称未設定
08/05/23 22:33:32 T833at980
>>26
ああ、お恥ずかしい限りで。
そのページは何度も見ていたはずなのですが(^^;
なんというか、「GData.Framework」という文字ばかり探してました。
DLしてビルドしたら(エラーになりましたけど)GData.Frameworkフォルダが生成されたので
これを使えば良いのだろうと思って次に進みます。

34:名称未設定
08/05/23 22:51:17 jKCdJQha0
Foundationは思想かなにかですか?

35:名称未設定
08/05/24 01:12:15 DcLAwtro0
>>32
iTunesが扱えないフォーマット、に関してはすごく同意する
ようするに他のフリーソフトに関してもしがらみがないってある種強みだよね

36:名称未設定
08/05/24 01:22:23 LruzwE630
現在、NSOutlineViewの使い方を勉強中です。
で、サンプルプロジェクトやネット上での解説ページを見ていたところ、

return (item == nil) ? YES : ([item numberOfChildren] != -1);

の様な表記をよくみかけました。
これはどのように解釈すれば良いのでしょうか。

37:名称未設定
08/05/24 01:55:20 gZp6b3Ai0
>>36
itemがrootなら、YESを返す。
itemが内包数0のフォルダ(num = 0)ではなく、ファイルなのでexpandしないようにする。

つーか、その質問だけではちょっと意味不明だよ。
FileSystemItemのアレについて質問しているのだろうけど。

38:36
08/05/24 03:01:01 NtDdGehO0
>>37
申し訳ありません。
ID変わったけど>36です。

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
return (item == nil) ? YES : ([item numberOfChildren] != -1);
}

そして質問の仕方も抽象的でした。申し訳ありません。
仰るとおりFileSystemItemのアレなのですが、
具体的には「? YES :」の部分の解釈の仕方、ということです。
とりあえず、頂いた答えとサンプルコードを再度見返してあれこれ考えてみたのですが

return a ? b :c;
となっていた場合、aを評価した結果がYESならbを、NOならcを返す、という理解でよろしいでしょうか。

Cocoaにはあまり関係していませんでしたね。。。すいませんでした。

39:名称未設定
08/05/24 03:26:59 gZp6b3Ai0
>>38
> となっていた場合、aを評価した結果がYESならbを、NOならcを返す、という理解でよろしいでしょうか。
うん。

40:36
08/05/24 03:28:15 NtDdGehO0
>>38
ありがとうございました。

41:名称未設定
08/05/25 17:58:40 lLZMSYBY0
>>35
wmvとかflvとか、コンテナmovにしちゃえばいいのに。
全部まとめて管理できる所に意味があると思う。

42:名称未設定
08/05/27 23:52:33 CZYQD03h0
萩原さんの「詳解 Objective-C 2.0」
もう手に入れた人居ます?

買いなのかな?

43:名称未設定
08/05/28 09:09:00 L3/IqKQ00
URLリンク(www.pragprog.com)

44:名称未設定
08/05/28 12:55:17 opb4iFeH0
アマゾンで、ヒレガスさん3+萩原さん2.0=9,321円、萩原さん2.0は明日到着

45:名称未設定
08/05/28 21:49:31 VttZwart0
>>42
>買いなのかな?

URLリンク(hmdt.jp)

46:名称未設定
08/05/29 00:53:38 WGFKGrSC0
>>42
まだぱらぱらめくった程度だけど
おととしに出た「Objective-C Mac OS Xプログラミング」の
バージョンアップといった感じ。章の構成や内容は同じものが多いです。
前の本を持っていないなら、買って損はしないと思うよ。



47:42
08/05/29 08:33:18 rVgTXt350
>>46

前の本も
前の前の本も
持ってるだけに
悩むな~

今日出勤前に本屋に寄って
少し眺めてから決めます。

48:名称未設定
08/05/30 00:33:33 PlwTpTkX0
Cocoaと言うよりObjective-Cの質問?なのですが、いいですか?

現在Cで記述したプログラムがあります。
データの最大数は不定なので、可変でデータを保持したかったのですが、面倒だったので、
データ領域を大きめに確保して、固定長の配列として処理しています。
データは配列の番号でインデックスされ、歯抜けになっても新たなデータが来ると若い順に
埋めていきます。

ObjCに移植するにあたって、NSMutableArrayに置き換えようと思ったのですが、NSMutable
Arrayは要素が消されると自動的に配列を詰める、とのことで、配列番号での索引が利かなく
なるようです。

このような場合、データ数を可変で確保でき、且つ、配列番号での索引ができるいい方法が
ありますか?

49:名称未設定
08/05/30 00:40:51 xrC+L8bu0
>>48
別に Obj-C は C の拡張なので、すでに配列で出来てる箇所を
NSArray に変える必要がないとおもうんですが ...

どうしても Cocoa にかえたければ、NSDictionary つかって、数字じゃなくて文字列でタグをつければしまいだとおもいます。

50:名称未設定
08/05/30 00:47:59 CkhV8SZM0
>>48
要素を削除するときにその位置にあるオブジェクトを取り除くのでなく、
値をNSNullに変更するようにすれば、元の処理と同じようにできると思います。
元のCのコードでもNULLにするなどしていますよね?

51:名称未設定
08/05/30 23:32:12 L1G/osgq0
>>47
>持ってるだけに
>悩むな~

今日尼から届いた。1.0→2.0の変化詳しく50ページほど増量。
ま、前版もってても買いじゃね、とおもた

52:名称未設定
08/05/31 00:41:36 9zILcVHo0
>>49
折角良さげなものがあるので、固定長配列を可変長に変えたかった、というのが主な理由です。

>>50
なるほど、考えてみれば別に取り除かなくてもいいんですもんね。有り難うございました。

53:46
08/05/31 01:28:09 m3HKOXME0
>>47
10.5の新しいトピックを中心に1/3くらいまで読み進めました。
32/64bit、ガーベジコレクションで注意が必要なところなど、
細かいとこが丁寧にフォローされてる。
てゆーか、罠多すぎ>ガベコレ

・10.5以降でプログラムを書かない
・あとで買えなくても泣かない
というのでなけりゃ、買いかと。



54:名称未設定
08/05/31 12:29:28 WjiDQvAu0
名古屋大須の三洋堂で買ってきた。まだ2冊あったぞ。昨日の話だけど。

55:名称未設定
08/05/31 13:03:56 MFBihJHB0
今Amazonから届いた
けど読む暇がない

56:名称未設定
08/05/31 16:52:17 EZpALD+x0
>あとで買えなくても泣かない
これが一番問題になるなw

57:名称未設定
08/05/31 22:53:52 r05FKlJl0
IM制御をしようとしてます。
前スレ 915 を参考にして、ターミナル上で、ことえり日本語入力時に

int main() {
TISInputSourceRef tis = TISCopyCurrentASCIICapableKeyboardInputSource();
TISSelectInputSource(tis);
CFRelease(tis);
}

を実行すると、見た目(メニューバーのとこ)は英字になるのに
いざ入力しようとすると日本語のままなんですが、
うまくいく方法ありますか?

58:名称未設定
08/06/01 11:09:53 bmGuDI3g0
>>57
うちではそれでちゃんと動く気がする
(ことえり、egbridge とも)


59:57
08/06/02 00:17:15 5l7yqjBi0
>>58
ども。
一旦、ターミナルを非アクティブにして、もう一度アクティブにすると
入力も英字になるんですけど...

そういう処理を入れりゃいいのか。。

60:名称未設定
08/06/02 05:46:08 U2iAatA00
>>59
それしなくてもうちは英字入力に切り替わるけど?
日本語変換中の文字が残っている場合のこと?その状態でどうやってプログラムを走らせればいいか良くわからんけど ...

61:57
08/06/02 15:42:09 5l7yqjBi0
>>60

1、ターミナル上でIM制御プログラムを走らせる。
2、cmd+spaceでひらがな入力にする。
3、「あああ」と入力
4、c-pで、コマンド履歴をだしてそっからプログラムを走らせる。

3で日本語変換中の文字が残っていても残っていなくても、
変換確定済でも未確定でも
見た目(メニューバーのとこ)は英字入力になるが、
いざ入力すると、日本語(ひらがな)が入力される。

という感じです。
10.5.2
i686-apple-darwin9-gcc-4.0.1
zsh 4.3.4 (i386-apple-darwin9.0)

62:名称未設定
08/06/02 23:49:54 U2iAatA00
>>61
うちでは再現しないよ ... 謎。
メニューバーも英字になって、入力してもちゃんと英字になります。
ためしてみたけど、bash/zsh のちがいでもなさそう。
IM はなにをつかってる? キーボードは英語キーボードなのかな。
こちらは日本語キーボードなので。それぐらいしか違いが見当たらない。

63:名称未設定
08/06/03 01:33:09 wMSlazAP0
Interface Builder 3で、UserDefaultsと"ThreadURL"キーとWebViewの"mainFrameURL"をバインディングしたいのですが操作方法がわかりません。
WebViewのバインディングのインスペクタを見てみると、"Editable","Hidden","ToolTip"しかバインディングできる項目が無く、"mainFrameURL"をバインディングできません。
WebViewをMyClassにデリゲートして、ソースからバインディングすればどうにかなりそうな気はするのですが、InterfaceBuiderだけでする方法は無いのでしょうか。

あと、IB3では、
URLリンク(www.big.or.jp)
のようにテキストフィールドとWebViewを直接つなぐことは出来なくなったのでしょうか。


64:名称未設定
08/06/03 01:34:22 wMSlazAP0
>>63
訂正
×UserDefaultsと"ThreadURL"キー
○Shared User Defaults Controllerの"ThreadURL"キー

65:名称未設定
08/06/03 06:10:10 pp+RRbGE0
あるViewの上にテンプレートのようなViewを置きたいと思ってます。

下のViewは通常通り動くものが出来上がっていて、その上にImageViewをのせて
そのViewに
- (void)mouseDown:(NSEvent *)theEvent {
[[self nextResponder] mouseDown:theEvent];
}
- (void)mouseUp:(NSEvent *)theEvent {
[[self nextResponder] mouseUp:theEvent];
}
とか各種イベントをスルーするようにすれば下に行くものだと思っていたらう
まく下のViewにイベントが渡って行きませんでした。何か根本的な考え違いが
あるのでしょうか?



66:名称未設定
08/06/03 07:40:43 IEedy5rj0
superviewに渡すもんじゃない?

67:名称未設定
08/06/03 08:03:37 91xa2rp50
何をしたいか分からんけど、
下のviewの描画をオーバーライドすればいいんじゃね?

- (void)drawRect:(NSRect)rect {
[super drawRect:rect];
//テンプレ描画
}

68:名称未設定
08/06/03 08:10:05 pp+RRbGE0
>>66 >>67
上に乗っているViewは下のViewのsubViewではありません。描画上重なっている
だけで、上のテンプレート表示は下のViewより大きくなる場合があります。

イメージのオブジェクトがいくつかあって、その上に定規のステンシルがオー
バーレイで乗っている状況です。この状態で定規は動かさず、下のオブジェク
トの操作がしたい訳です。


69:名称未設定
08/06/03 08:49:49 oXsq6zVd0
>>63
う~ん、たしかにかなり変わってるね。
IB3 でも、単純に URL の中身を表示させたかったら、WebView の takeUTLfrom: というアクションを NSTextField のターゲットにしておくという方法があるけど。

70:名称未設定
08/06/03 12:58:41 aw4+EDm70
弟がスーパーハカーを目指してるらしく、まずCから始めようと思ってるらしい
1からC言語を勉強するサイトってどこがいいかな。書籍はamazonで購入して発送待ち
目当てはMacやiPhoneで使う自作アプリだからObjective-Cをやりたいんだと思うけど
このままでは俺の3日間しかない黄金週間が潰されてしまうので助けてください

71:名称未設定
08/06/03 13:08:46 XD4GWoXw0
その黄金週間までに、スーパーハカーへの道を閉ざすというのも手だ。

72:名称未設定
08/06/03 22:56:02 kOTQ+iAx0
>>68
ViewにとってのnextResponderはsuperViewだよ。
だから、下のViewとsubViewの関係にないなら、イベントを中継するコードを手動で書かないとダメかもね。
つまり、マウスダウンした座標から、下のどのViewの上にいるのかを計算して、そのViewのmouseDown:メソッドを直接呼び出すみたいな感じ。

73:名称未設定
08/06/04 00:09:16 p9a2L9Dk0
acceptsFirstResponderでNOを返すんじゃだめだっけ?
これはキーイベントだけだったかな…

74:名称未設定
08/06/04 00:09:50 T5rsQU4g0
>>72
なるほど、下にオブジェクトがそこそこ沢山あるので結構複雑になりますね。
単に「イベントはスルーするけど描画はするレイヤ」を上に置きたいためだけ
なのに、、、
ウィンドウを上において[window2 setIgnoresMouseEvents:YES];しておいて
このウィンドウに描画してやるとうまく行くかと思ったけど、このウィンド
ウをクリックした瞬間に下のウィンドウが上にでてきた←あたりまえ
もう少し考えてみます。


75:名称未設定
08/06/04 00:47:24 T5rsQU4g0
>>73
- (BOOL)acceptsFirstResponder {
return NO;
}
- (BOOL)becomeFirstResponder {
return NO;
}
- (BOOL)resignFirstResponder {
return NO;
}
やってみました。残念ながらオーバーレイの
- (void)mouseDown:(NSEvent *)theEvent {
に処理が飛んできました。



76:名称未設定
08/06/04 04:43:59 l7IMH3zH0
おれだったら、superviewにわたして、superviewからsubviewを全部チェックして適合するviewを探すかな。

77:57
08/06/04 09:51:22 FsqvQyEC0
>>62
IMはことえり
MacBook CoreDuoのUSキーボード

anthyでも試してみたけど、入力するとやっぱりひらがな。。

他にintelマシンないし、Cocoaはさっぱりなんで、AppleScriptで逃げます..
ありがとう。

78:名称未設定
08/06/04 13:23:44 PLLPbHtE0
Xcode 3.1/IB3です
iTunesのように、閉じても"ウィンドウ"メニューから再び表示できるウィンドウはどのようにしたら作れるのでしょうか。

79:名称未設定
08/06/04 14:33:09 aQgm8y1m0
IBで"Dispose When Close"をoff
ウインドウメニューにアイテム追加。
アクションを oderFront: とかその辺。

80:名称未設定
08/06/04 14:56:02 KlJQ+yiW0
OS 10.5だと、iCalは起動してなくてもDockのアイコンをカスタムにしてますがこれどうやってるんでしょう?
-[NSApplication setApplicationIconImage:]の拡張っぽいものは見つかりませんが

81:名称未設定
08/06/04 14:58:34 2RtF4pPv0
NSFastEnumerationプロトコル実装させようと奮闘してるんだけど、
for ... inループの途中でbreakさせるとそのループが何度回ったかを
知る方法ってないのかな?
NSEnumerator使うと、
NSEnumerator *e = [a objectEnumerator];
x = [e nextObject];
y = [e nextObject];
for( z in e ){
. //何らかの処理
. if( xxx )
. break;
}
w = [e nextObject];
s = [e nextObject];
なんて文でもしっかり順番合うけど、なんか隠し機能でもあるのかな?

82:名称未設定
08/06/04 15:05:01 PLLPbHtE0
>>79
"Dispose When Close"が見つからないのですが、Release when Closedのことで良いのでしょうか。

メニューアイテムを追加して、orderFlontにつなぐ方法は、IB2/Tigerのときは問題なく動いたのですが、IB3/Leopardでやるとアプリが起動時にフリーズします。

makeKeyandOrderFlontにつなぐと、つないだメニューは消えてしまうのですが、ウィンドウメニュー一番下のウィンドウ名の項目が閉じても残るようになります。
この方法でもウィンドウを再度開くことができることはできるのですが、ウィンドウを開いているとき、そのウィンドウを示す項目がウィンドウメニューに2つ表示されてしまうことになります。
また、閉じたときも項目がぽっかり消えてしまうのでなんか違和感があります。


83:名称未設定
08/06/04 15:45:21 aQgm8y1m0
>>82
おお。それそれ。

>とアプリが起動時にフリーズします。
うちでは問題ないけどな。なんかあるのかな?

>ウィンドウメニューに2つ表示されてしまうことになります。
-[NSWindow setExcludedFromWindowsMenu:]
これ。

84:名称未設定
08/06/04 20:21:25 xLFIAeEO0
>>80
Info.plist に
<key>DockExtra</key>
<string>iCalDockExtra.bundle</string>
ってあって,Dockがこれを呼び出してると思う。


85:名称未設定
08/06/04 21:03:50 FtD8O2Sd0
>>81
基本的にNSFastEnumerationが何回ループしたのか、ベースとなっている配列オブジェクト側で知るすべは無いように思います。
そのサンプルコードがうまく動作しているのは、NSEnumeratorをベースとしているからだと思います。
NSFastEnumerationは一気に16回ぐらいループできますが、NSEnumeratorの場合は1回づつ回してるんじゃないですかね。
特に調べた訳ではないですが。

86:名称未設定
08/06/04 21:09:23 0ZiY20sM0
>>81
URLリンク(developer.apple.com)


For collections or enumerators that have a well-defined order―such as NSArray or NSEnumerator
instance derived from an array―the enumeration proceeds in that order, so simply counting iterations
will give you the proper index into the collection if you need it.

NSArray *array = /* assume this exists */;
NSInteger index = 0;
BOOL ok = NO;

for (id element in array) {
if (/* some test for element */) {
ok = YES;
break;
}
index++;
}

if (ok) {
NSLog(@"Test passed by element at index %d", index");
}


87:名称未設定
08/06/04 21:28:03 PLLPbHtE0
>>83
ありがとうございますm(_ _)m

88:87
08/06/04 21:54:41 PLLPbHtE0
File's Ownerの
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

[MainWindow setExcludedFromWindowsMenu: YES];
をしたところ、ウィンドウのメニュー項目が自動生成(?)されることはなくなりました。

しかし、makeKeyandOrderFrontに繋いだメニュー項目があると、ウィンドウを閉じたときエラーになります。

環境は、Mac OS 10.5.3(9D34)/Xcode 3.1(iphone_sdk_9m2173a)/Mac Book(現行モデル・竹)です。

コンソールには、以下のエラーが出力されます。
GNU gdb 6.3.50-20050815 (Apple version gdb-956) (Wed Apr 30 05:08:47 UTC 2008)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-apple-darwin".プログラムは読み込まれました。
sharedlibrary apply-load-rules all
Attaching to program: `/Users/admin/Developer/ClickJapanCocoaReporter/build/Release/ClickJapanCocoaReporter.app/Contents/MacOS/ClickJapanCocoaReporter', process 54373.
(gdb)

89:名称未設定
08/06/04 21:54:51 FtD8O2Sd0
>>74
NSWindowのサブクラスを作って、-displayか-displayIfNeededあたりをオーバーライドすれば、Viewの再描画処理に割り込めるんじゃないかな?
もし、うまく割り込めたら、すべてのViewの再描画が完了した直後に、
[[window contentsView] lockFocus] か [NSGraphicsContext setCurrentContext: [window graphicsContext]]で
グラフィクスコンテキストを設定して、すべてのViewの上に画像を上描きできます。
手前に、ViewやWindowを重ねてる訳じゃないので、イベントを取られる事はないはず。



90:名称未設定
08/06/04 22:06:28 mSrg2YBE0
>>80
URLリンク(jens.ayton.se)

91:名称未設定
08/06/04 22:07:39 mSrg2YBE0
>>88
gc つかってる?それなら window が解放されてしまってるんでないかと思うけど ...

92:87
08/06/04 22:25:26 PLLPbHtE0
>>91
ガベージコレクション?
どのようにしたら解放しないようにできるのでしょうか…

ウィンドウの設定はこんな感じになっています。
URLリンク(wktk.vip2ch.com)

93:名称未設定
08/06/04 22:30:53 mSrg2YBE0
>>92
ガベージコレクションつかってると、nib のトップレベルに単においてあるオブジェクトは誰にも強く参照されてないから、GC が気が付いたとたんに削除しちゃうよ。
File's Owner の delegate にコントローラオブジェクトをつないであるなら、
さらにコントローラオブジェクトに outlet をつくってそこに window をつないでおかないといけません。

URLリンク(developer.apple.com)
の nib files の項、
URLリンク(journal.mycom.co.jp)
のまんなかあたりとか参照。

94:名称未設定
08/06/04 22:31:08 p9a2L9Dk0
Release When Closedはチェック「しない」って話じゃなかったか

95:87
08/06/04 22:40:26 PLLPbHtE0
>>93
[MainWindow setExcludedFromWindowsMenu: YES];
をするためにコントローラオブジェクトのアウトレットにMainWindowを繋いでいるんですが…

@interface NSApplicationDelegate : NSObject {
IBOutlet id Send2chView;
__strong IBOutlet id MainWindow;
}

ためしに__strongをつけてみましたが効果無しでした(´・ω・`)


96:名称未設定
08/06/04 22:40:34 YuPHi7F30
>91
どうだろう?
最初の5行を考えると、
主要nibファイル - NSMainNibFile -のFile's Ownerなんだと思う。
MainWindowはそのインスタンス変数。
で、[MainWindow setExcludedFromWindowsMenu: YES];でちゃんと動くってことは、
IBで MainWindowにちゃんと接続できてるんだと思うんだよね。
てことは、主要nibファイルのFile'sOwnerが解放されるってあり得ないから、
そのインスタンス変数がgcで解放されるなんてあり得ないと思うんだけど。

まあ、状況的にはMainWindowが解放されてるには違いないんだけど。

とはいっても、常人には理解不能な摩訶不思議な事をやってる可能性もあるんだよね。
ソースコード一式どかーんと見せてくれたら、みんな寄ってたかって直してくれると思うよ。

あと、
>88
それエラーじゃないから。

97:87
08/06/04 22:42:01 PLLPbHtE0
>>94
orz
Release When Closedのチェックを外したらいけましたorzorz

98:名称未設定
08/06/04 22:45:07 YuPHi7F30
あう。
リロードしてから書き込むべきだった。
しかもそれ一番始めに言ったじゃん。w

99:名称未設定
08/06/04 23:15:26 WH5iIvoT0
>>84,90
ありがとうございます。
まだprivateなAPIのようですね。

100:名称未設定
08/06/05 03:28:08 Iy8p9dIO0
PragmaticBookshelfからRubyCocoaの本出るみたいだね
びっくりした

101:名称未設定
08/06/05 03:28:39 Iy8p9dIO0
URLリンク(www.pragprog.com)

URL貼り忘れた

102:名称未設定
08/06/05 06:38:16 N70IRzNR0
>>89
これ、挑戦してみます。

とりあえず、NSFloatingWindowLevelの透明ウィンドウを作って、setIgnoresMouseEvents
したものを描画したいウィンドウに自動追従する形で実装してみました。
移動したとき付いてくるのがちょっと遅れるのが気になる、、、


103:名称未設定
08/06/06 18:58:26 /nwOtou00
GetP2PDBクラスからCore Dataを使いたいと思っているのですが、
IBOutlet id *ADI;をFile's Ownerのデリゲートオブジェクトに接続した上、
context = [ADI managedObjectContext];
object = [NSEntityDescription insertNewObjectForEntityName:@"P2PDB" inManagedObjectContext:context];
をしたところ、
2008-06-06 18:38:38.231 Yaezakura[1703:10b] *** +[NSEntityDescription insertNewObjectForEntityName:inManagedObjectContext:]: unrecognized selector sent to class 0xa08caf40
と出てしまいます。
もともとCocoa Applicationとして作り始め、YaezakuraDelegate.mの中身だけ
CoreDataアプリケーションのデリゲートクラスのものから引っ張ってきました。applicationShouldTerminateだけはコピーしていません。
xdatamodelファイルは、File>New File…"Yaezakura.xcdatamodel"という名前で追加しました。
デリゲートクラスのソースに、xcdatamodelのファイル名を指定するところが見つからないので、もしかして、xcdatamodelのファイル名は規定されているとかでしょうか。

104:名称未設定
08/06/06 19:04:13 K898eDqK0
とりあえず
+[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:]
ね。
Forが一個足りない。
補完機能を使うかコピペしましょう。

105:名称未設定
08/06/06 19:08:43 /nwOtou00
>>104
ありがとうございます。
URLリンク(journal.mycom.co.jp)
からコピってました。
確かに、For、抜けてるorz
記事より補完機能ですか…


106:81
08/06/06 23:24:48 DnNWuDyX0
>>85
> ベースとなっている配列オブジェクト側で知るすべは無いように思います。
NSFastEnumerationState構造体に空きスペースは充分あるんだから
情報を入れてほしいと思う今日この頃・・・

>>86
やはりそれしかなさそうですね。
ループ周りのコードをスッキリさせたかったんですが、残念です。

107:名称未設定
08/06/07 03:06:06 czfM+cV40
乱暴にコード減らしてみた
NSArray *array = /* assume this exists */;
NSInteger index = [array count] -1;

for (id element in array) {
if (/* some test for element */) {
index = [array indexOfObject:element];
break;
}
}

if (index != 0) {
NSLog(@"Test passed by element at index %d", index");
}

無茶したw
実際に何回ループしたかカウントしてないしね。

108:名称未設定
08/06/07 05:36:42 oLB88PWk0
ヒレガス本第3版のPDF買ってみたけど
AdobeDigitalEditionという電子書籍ビュワー
入れないと見られないし、コピペも出来なので
$35の値段のわりに微妙だった。

109:名称未設定
08/06/07 08:19:56 lneVQl2h0
それはひどい
経験を共有してくれてありがとう

110:名称未設定
08/06/07 14:51:12 bqgf91t00
>>106
NSFastEnumerationプロトコルを実装してる配列オブジェクト側からは、NSFastEnumerationState構造体に自由に情報を格納することができます。
問題となっているのは、そのNSFastEnumerationState構造体を他の場所から参照できないことだと思います。

111:名称未設定
08/06/07 16:29:39 TibeL3oq0
複数のNSButtonやNSTextFieldが集まって一つの機能を持った物。仮にこれをモジュー
ルと呼びますが、このモジュールを部品として、IBで他のウインドウ上に配置でき
るようにしたいのですが、スマートにする方法ってあるでしょうか?

とりあえず今実現しているやり方はこうです:

・モジュールを表すカスタムビューを作る。モジュールを利用する側のウインドウ
上にはこのビューを配置する。

・モジュール専用のnibファイルを用意して、その中にモジュールで使用するコント
ロール類を並べ、モジュール内部のふるまいを実現するコントローラのインスタ
ンスも作っておく。

・カスタムビューは自分がロードされたら上記nibファイルをロードする。

・モジュールを利用する側はカスタムビューとだけやり取りする。モジュール内部
には触れないようにする。(モジュール用nibて使っているOutletが表に見えない
ようにする)

これでうまくは行ってますが、なんかスマートじゃない気がします。
また理想的にはモジュールのパラメータ類もIB上で設定できるようにしたい・・。

となると、究極的にはIBのプラグインを作ればいいんでしょうけど、配布したり他
のアプリで使えるようなものでもないので、それはちょっと大げさかな、と。


112:名称未設定
08/06/07 16:35:31 TwyUwYCb0
>それはちょっと大げさかな、と。
面倒くさいとかやり方わからないの間違いでしょ。

あなたの実現したいものはibplugin以外の何者でもないじゃん。

113:名称未設定
08/06/07 18:43:39 TibeL3oq0
>>112

実のところibpluginも途中まで進めてましたが、ターゲットOSが
10.5以上でないとだめなようなので(今回は開発も実行も10.4)
他のやり方を探してるわけです。

「パラメータをIBで設定」なんかは無理だとしても、
複数のコントロールを一つにまとめて同じプロジェクト内で
使いまわす程度の事って、最新版のOS・・と言うほど
高度な話とは思えませんし、珍しい要求でもないですよね?

だから、今までは皆さんどうやっていたのか、
何か定番みたいな方法があるのでは?
と気になったから書いたんですが。


114:名称未設定
08/06/07 18:48:34 TwyUwYCb0
>>113
じゃあ、IBPaletteでしょ?

115:名称未設定
08/06/07 19:21:17 T3VD/+310
URLリンク(www.nitenichiryu.org)

微妙だなあ・・・。

116:名称未設定
08/06/07 19:35:40 VBQ7XzHf0
URLリンク(jp.techcrunch.com)
>AppleのiPhoneチームとiTunesチーム出身者2人が-退社してY Combinatorと手を組んで-スタートアップを始めるとどうなるか?
元Apple社員らしい。GUIアプリみたいなものを作るなら、JavaScriptよりもObjective-Cってこと?

117:名称未設定
08/06/07 20:20:20 N0VOrekx0
俺のdel.icio.usのsubscriptionsがObjective-Jでいっぱいなんだが

118:名称未設定
08/06/07 22:50:58 VBQ7XzHf0
>>117
本当だ。

119:名称未設定
08/06/10 11:53:52 v6XJxThv0
Xcode3.1 ベータ6を使ったCocoa Applicationの開発をして、友人にテストのためできあがったものをビルド構成Releaseでビルドして渡したのですが、起動しないと言われてしまいました。
ここでは私のプログラムした内容は正しかった、と仮定した上で質問があります。友人の環境はPPC G4, G5で10.4のはずなので、プロジェクトの設定のディプロイメントターゲットを10.4にしたのですが、デフォルトの設定から変更しなければならない項目は他にありますか?


120:名称未設定
08/06/10 12:03:43 8XOktTUG0
コンソールに出力されたものの内容を送ってもらう。

121:名称未設定
08/06/10 12:25:46 ZtjOgx420
>>119
新規プロジェクトでCocoaApplicationを選択、「プロジェクト設定を編集」の
「すべての構成のベースSDK」で「Mac OS X 10.4」を選択、Releaseをビルド
してG4 10.4.11に持っていったら普通に起動してウィンドウが出ました。

プロジェクトの設定が悪いのか、自分のプログラムが悪いのか、それとも
ツールがβ版だからなのか、という切り分けをした方がいいと思いますけど。

122:名称未設定
08/06/10 14:51:37 UgSK0RIy0
・PPC のコードが含まれていない
・友人のマックにはないフレームワークを使っているのに
 アプリに入れ忘れている

とか

123:名称未設定
08/06/10 14:52:35 NdfOdpVf0
>119です。みなさんありがとうございます。
ベースSDKの設定の可能性が高いようです。今外なので確かめられませんが。
>121の方が言っているとおりもちろんそうすべきと思いますが、
自分の環境では問題なく動いていたため、
プログラミングミスはないものと仮定しました。
また、先日はベータ5を使って成功していたこと(ベータなので理由にはなりませんが)と、
私が一番自信がなかった部分がプロジェクト設定だったため
そこに絞った質問にした次第です。
細かい説明を省いてしまい申し訳ありません。

124:名称未設定
08/06/10 19:29:34 M+lv1G8s0
122さんも書いてるけど、ディプロイメントターゲットだけでなく、アーキテクチャもよく確認を。
32bit Universal Binaryね

125:名称未設定
08/06/10 20:26:50 zi/2SxUe0
プログラムのミスうんぬんじゃなくてコンソール見て起動しない原因探せって意味だろうが
起動どころか開けないのなら配布する時に気付くだろうし

126:名称未設定
08/06/10 20:56:17 UzQ8SNX80
ビルド構成DebugのままでReleaseにし忘れてるとかはないか

127:名称未設定
08/06/10 21:21:06 tXsfQ9xo0
ここで公開すればいいじゃん。
よっぽど早くけりがつくよ。

128:名称未設定
08/06/10 22:29:17 RnNeIuj80
特定の時間になったら音を鳴らすアプリを作っているのですが
主音量を上げるメソッドってないんでしょうか?

129:名称未設定
08/06/11 00:30:49 +Muj4NnA0
勝手に音量を上げるとはウザいアプリだな。

130:名称未設定
08/06/11 01:02:21 BuT1Yz540
できるだろうけどCocoaじゃ無理じゃねーかな

131:名称未設定
08/06/11 12:23:53 7YtizGAL0
>>128
URLリンク(developer.apple.com)

132:名称未設定
08/06/11 16:35:05 raOc4tIo0
>119です。
>>122 すいません、書き込んだとき気付きませんでした。
結論から言うと、設定ミスとプログラミングミスでした。
アーキテクチャはあっていました。
ベースSDKの設定、もしくはアクティブSDKの設定を変更し、
それでも起動しないためログを送ってもらったところ、
setImageScaling:が悪さをしていることが判明しました。
ビルド時にエラーが出なかったため、10.4ではメソッド自体が
無視されるものと勘違いしていました。
IBとコード内のImageScalingに関連している箇所を修正したところ
無事に起動しました。
お手数おかけしました。ありがとうございました。

133:名称未設定
08/06/11 17:27:22 7YtizGAL0
>>128
#include <CoreAudio/CoreAudio.h>
void setVolume(Float32 theVolume/*0-1.0*/) {
AudioDeviceID mAudioDeviceID;
UInt32 i, numberChannels, outSize =sizeof(AudioDeviceID);
AudioBufferList *mAudioBufferList;
AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &outSize, &mAudioDeviceID);
AudioDeviceGetPropertyInfo(mAudioDeviceID, kAudioPropertyWildcardChannel, false, kAudioDevicePropertyStreamConfiguration, &outSize, NULL);
mAudioBufferList = malloc(outSize);
AudioDeviceGetProperty(mAudioDeviceID, kAudioPropertyWildcardChannel, false, kAudioDevicePropertyStreamConfiguration, &outSize, mAudioBufferList);
numberChannels = mAudioBufferList->mBuffers[0].mNumberChannels; free(mAudioBufferList);
for (i=0; i<=numberChannels; i++) {
Boolean isWritable = false;
if (noErr != AudioDeviceGetPropertyInfo(mAudioDeviceID, i, false, kAudioDevicePropertyVolumeScalar, NULL, &isWritable)) continue;
if (isWritable == FALSE) continue;
AudioDeviceSetProperty(mAudioDeviceID, NULL, i, FALSE, kAudioDevicePropertyVolumeScalar, sizeof(Float32), &theVolume);
}
}

134:128
08/06/11 23:17:21 VSIeQFLB0
>130
確かにw 環境設定で制御できるようにしますw

>131
>133
できました! ありがとうございました!

135:名称未設定
08/06/11 23:23:57 lty4nRSj0
>>132
結局プログラムミスもあったのか
性格的に向いてないよ

136:名称未設定
08/06/12 04:36:35 gv1qz7ju0
>>132
設定はよかったんじゃないの?
10.5以降にしかないメソッドを普通に使って、何もしてなかったということではないのかな?

137:名称未設定
08/06/14 13:13:47 BS7eOK3p0
10.6はQuickTimeに大ナタを振るのか。
こりゃ、のたれ死にするアプリが続出する予感。

138:名称未設定
08/06/14 17:03:06 r3BUjdUn0
>>137
??
kwsk

139:名称未設定
08/06/14 18:15:22 chqMToVQ0
なんで開発してるのにWWDCの情報追っかけてないの?

140:名称未設定
08/06/14 18:44:58 FubexbBn0
>>137

んなこと言って無いが。QuickTime X、理解した?

141:名称未設定
08/06/15 00:47:11 Cygey6F/0
Quicktime「X」だなんて、いかにも
過去のレガシーAPIをバッサリいきそうな感じじゃない?


142:名称未設定
08/06/15 03:35:28 UNwFe1i20
>>140
大鉈ふるうんだと理解したけど。。??

143:名称未設定
08/06/15 08:19:09 XnhWKJTp0
URLリンク(hmdt.jp)
↑という事じゃないのか?

144:名称未設定
08/06/15 09:58:09 oSH6UPle0
いきなり旧APIが使えなくなる訳じゃないだろうね、普通。

っていうか、もうQTKitを使っているアプリならば、互換性の問題を
避けて楽にQuickTime Xが使えるようになるってことだと思う。

現状、QTKitの下のQuickTimeはレガシーAPIの固まり。QTがあんまりにも
あちこちで使われているものだから、上位Frameworkを用意してあげないと
ベースをすげ替えるのが困難だということですね。

・・・でも、QTKitって旧APIに相当する機能の大半を、今だに提供できて
いないんだが、ホントにこれですげ替え出来るのかね?

145:名称未設定
08/06/15 10:29:43 XnhWKJTp0
>>144
12^2オメ

と云うのはさておき、提供出来てない部分は切り捨てられる可能性がある、と云うことでは?
まあ何がサポートされていないのかは知らないので自身は無いが。

146:名称未設定
08/06/15 13:45:34 ylVUqXAE0
VR とか 3D とか MIDI とか Text とか使ってる人いるんかいな?
この辺が切り捨てられるんじゃ

147:名称未設定
08/06/15 14:07:25 wTLy4n/p0
メディアスキンとかね。
MIDIとTextは需要あると思う。

148:名称未設定
08/06/15 14:08:32 qeeMQ1ni0
VR はアップルの製品ページのギャラリー自体に使われてるので ...

149:名称未設定
08/06/15 14:19:47 wTLy4n/p0
もう今iPodぐらいしかVR使ってないんじゃん。

150:名称未設定
08/06/15 14:38:33 259xwVUM0
でも、来年初めにリリース&切り捨てなら、
今から「作り替えてくれ」なんてアナウンスしても遅すぎじゃない?


151:名称未設定
08/06/15 14:46:39 DgXC+pk00
>>149
Apple の公式にある VR のこと?
Mac Pro,MacBook Pro,iMac,MacBook,MacBook Air
Time Capsule,AirMac Extreme,Wireless Keyboard,Mighty Mouse
iPod classic,iPod nano,iPod shuffle,iPod touch,iPhone
ざっと調べただけだけどこれらのページにはあったよ。
Mac mini と AirMac Express には無いっぽい。
あと日本のページの MacBook の VR はリンク切れになってる。

152:名称未設定
08/06/15 14:53:05 wTLy4n/p0
>>151
あーあったw
iMac見たけど思わぬとこにあったわ
切り捨てはともかく、推奨しないってのはさんざん言ってきたような
移行期間は修了したってことじゃないかな

153:名称未設定
08/06/15 14:58:22 DgXC+pk00
普通はデザインのところにあると思うよなw

154:名称未設定
08/06/15 18:15:00 OFFyy1VM0
>>151
mini
URLリンク(www.apple.com)

Airport Express
URLリンク(movies.apple.com)

155:名称未設定
08/06/15 20:53:59 zzsH9bZe0
すみません初心者ですが質問です。
NSTableViewに自前のNSArrayの内容を表示するにはどうすればよいでしょうか。
URLリンク(hmdt.jp)
の最初の例を試してみるとちゃんと表示されたため、
awakeFromNibで自前のNSArrayを作る処理を足して、
NSTableViewにsetDataSourceしてみたのですが、コンソールに
Illegal NSTableView data source
<NSArrayの内容がずらずら表示>
Must implement numberOfRowsInTableView: and tableView:objectValueForTableColumn:row:
と実装済みなのに出てしまいます。

多分、途轍もなく初歩的な部分でつまづいているように思えるのですが、
どなたかソースを見て頂けないでしょうか。
URLリンク(www.uploda.org)

156:名称未設定
08/06/15 21:10:50 ylVUqXAE0
[tableView setDataSource:self];
ってやってみ。あと、
NSArray *datasrc;
の実体は何処にあるんだ?
とか色々妙な点があるので入門書を一冊買って読んだ方がいい。

157:名称未設定
08/06/15 22:07:18 S0ISsK4N0
setDataSourceに与える引数は,
numberOfRowsInTableView:と
tableView:objectValueForTableColumn:row:
がインプリメントされてる「クラス(のインスタンス)」
じゃなかった?

158:名称未設定
08/06/15 22:18:30 jWHLIZ5t0
プログラマは何もする事が無い。
QuickTime Xによる最適化された再生は重いH.264等で必要な一部のみ。
QTKitの再生以外を行うAPIはLeopardと同様に動作する。

159:155
08/06/15 22:35:19 zzsH9bZe0
>>156
エラーメッセージの意味が理解できました。
ありがとうございます。
>NSArray *datasrc;
>の実体は何処にあるんだ?
もうこの時点で意味が分からないので、ちょっと旅に出てきます。
現状、NSTableViewへのバインド数が画面表示分の行数を超えると、
datasrcにオブジェクトが1つしかなくなってしまって、エラーになるのも
多分この辺が原因な気もしますし。
PyObjCで作った時はあんなに簡単だったのに…orz

>>157
ということなんですね。エラーメッセージ通りの意味でした。

160:名称未設定
08/06/15 22:46:31 PLDEhANR0
なんだ。じゃぁ、Component Managerとかにがっつり手を入れてくるわけ
じゃないのか。残念。

想像するに、decompressorComponentTypeに代わる新規コンポーネント
タイプを定義して処理体系を分離するような感じか?
CoreVideo Pipelineにあうような実装変更とみた。

QT7でSoundManagerなStandardCompressionSubTypeSoundから、
CoreAudioなStandardCompressionSubTypeAudioにすげ替えたような
感じと想像。

これなら互換性は確保出来るだろうけど・・・

どうせなら、InterleavedとかInterlacedとかPlanarYUVとかの扱いにくさは
改良してほしいなぁ。


161:名称未設定
08/06/15 23:22:42 jWHLIZ5t0
64bit化は、次の課題。3rd partyのcomponentの変更も必要だから。
32bitエンジンとのプロセス間通信じゃBDの再生に支障を来すから、と見た。

162:155
08/06/15 23:30:07 zzsH9bZe0
>>156,157
頭を切り替えようとプロジェクトをいったん削除して、
CocoaDevやら何やらのサンプルを眺めながら、
ゼロから組み直して進めたら拍子抜けするほど簡単に出来ました。
ありがとうございました。報告まで。

163:名称未設定
08/06/16 00:56:27 pextnS8l0
質問です 0S10.5.3です

DivXプレイヤー2.2のコンテキストメニューからデスクトップを選択したときの様に
したいんですけど、どうすればいいですか?
こんな感じです
(1)壁紙の代わりに動画が再生されています(メニューはDivX)
(2)デスクトップに置いてあるアイコンは選択できるし、アイコンやデスクトップをクリックすれば
メニューはFinderになります、壁紙が動画になっただけのような感じです
(3)Exposeですべてのウインドウを並べると普通のウインドウのように選択できます、選択した後は(1)の状態に戻ります

自作ウインドウに対しsetLevelでkCGDesktopWindowLevelを設定すればできるかと思ったんですが無理でした
アイコンの下に描画されたがアイコン、デスクトップをクリックしたら自作ウインドウのクリックと認識される
(3)の動作でウインドウとして並ばない

このsetLevelした自作ウインドウを表示しDivXをデスクトップにしたら、DivXは自作ウインドウより前面のレベルに描画される
自作ウインドウはDivXに隠れているが、クリックイベントは受け取れる

(3)はとりあえず置いとくして、描画だけ壁紙の代わりに描画しているのか
イベントを背面のウインドウにスルーしているのかとか考えましたがどちらもやり方の検討がつきません
以上何かアドバイス、意見など頂けませんか?
DivXがcocoaかどうかは、ちょっとわかりません

164:名称未設定
08/06/16 01:30:03 GXm3y6CT0
全然Cocoaはさっぱりなスレじゃ無い件

165:名称未設定
08/06/16 06:58:19 AaY9TCm60
>>163
[windou setIgnoresMouseEvents:YES]

でどうだろう?

166:名称未設定
08/06/16 16:06:11 xUL8HFRI0
LSUIElement = 1以外の方法で、
dockにアイコンを表示させなくする方法って無いですか?
メニューバーは出したいのです。

167:名称未設定
08/06/16 16:58:53 nLvA84dY0
SetSystemUIMode

168:名称未設定
08/06/16 19:44:48 J90ThS3S0
>>165
ありがとう、それでばっちりでした

169:名称未設定
08/06/16 20:07:44 HnijONm20
>>165
>>163じゃないけどトンクス

170:名称未設定
08/06/17 01:32:10 ypgNmm+l0
インスタンスの流儀について今ひとつ無理解なものからの質問です。

あるデータを共有するためのクラスDataを作成しました。
DataをIBでインスタンスにし、
IBでインスタンスに出来る他のクラスからの参照は
他のクラスでIBOutletを作成してDataへ接続して利用しました。
良く分からないのは、IBでインスタンスにせず、
プログラム上でインスタンスにするクラスからDataへの参照方法です。

知識的にはNSNibやNSApplicationのリファレンスを読んでみても
この件に関してさっぱり糸口が見えないレベルであります。

171:名称未設定
08/06/17 01:38:54 MxqL1SlJ0
IBOutletでDataインスタンスの参照を持ってるクラスが
インスタンス化したやつに参照教えてあげればいいじゃん

172:名称未設定
08/06/17 02:01:40 2Z6DpQEF0
allocしたやつがdataを返してあげればいいじゃn

173:名称未設定
08/06/17 06:24:25 HIrcziuV0
Dataって名前だとモデルなのかな?
IBでモデルをインスタンス化するのは珍しい気がする。

174:166
08/06/17 09:42:36 jcIXFWOX0
>>167
SetSystemUIModeだとメニューバーまで消えちゃいませんか?
SetSystemUIMode(kUIModeAllHidden,kUIOptionDisableAppleMenu);
SetSystemUIMode(kUIModeContentHidden,kUIOptionDisableAppleMenu);
は試してみたんですが、期待する様な動作じゃありませんでした。

175:名称未設定
08/06/17 11:57:37 ROOb9CQQ0
>>174
>>166メニューバーは出したくないんだろ?

176:名称未設定
08/06/17 11:59:09 99O8N3c20
>>174
普通 Dock に出ないアプリのときはメニューバーの右側にアイコンをだすしかないと思います。

177:170
08/06/17 12:42:15 ypgNmm+l0
>171
なるほど、私自身が確実に糸口(IBOutlet)つけたものが
あるのだから、そこから手繰るわけですね。
この発想はありませんでした、ありがとうございました。

>172
確かにおっしゃる通りで、例えば、ここら
URLリンク(cocoawithlove.com)
辺り等を読んでどこらへんで何がallocするのかを検討したのですが
今の私の知識では理解出来ませんでした。
引き続き調べてみます、ありがとうございました。

>173
(まだ術語的にうまく操れてる自信はありませんが)
おっしゃる通りMVCのM(モデル)の部分です。
最初、[NSApp delegate]で参照出来ないかと考えたのですが、
今の自分の知識では手法が分からず、取り敢えずその線は
あきらめて今回のIBでインスタンス化でやってみた次第であります。
流儀として珍しい系統であるとすると、今後何か支障を
来す事もあるかもしれません。他の実装方法も検討してみます。
コメントありがとうございました。

178:166
08/06/17 13:12:05 jcIXFWOX0
>>175
いえ、dockのアイコンを非表示にしたいだけです。
>>174
うーん。なるほどそうですか・・・。わかりました。

179:名称未設定
08/06/17 13:18:42 99O8N3c20
>>178
というか Dock のアイコン非表示、メニューバーだけ、というソフトにほかからどうやって切り替えるの?Dock から消したら Cmd-Tab でも切り替わらないだろうし ...

180:166
08/06/17 15:52:08 jcIXFWOX0
>>179
今、親ソフトから立ち上げる子アプリをバンドルの形で作ってて、
そっちはdockに出したく無いんですよ。でもメニューバーだけは子アプリを方を表示させたいんです。

181:名称未設定
08/06/17 19:02:28 AF6fQ7/I0
そんな部分にこだわらなくても利用者は気にしないよ。
こういうのを「床屋のオナニー」っていうんだっけ?

182:名称未設定
08/06/17 21:57:22 MxqL1SlJ0
そういうのはMenuExtraみたいな形にした方がいい気がする

183:名称未設定
08/06/17 22:46:04 I13n1WLn0
>>180無駄だろ

184:名称未設定
08/06/18 00:02:46 AeC8SojL0
>>180
そんな動作するソフトって他にある?
ユーザーを混乱させるだけだとおもうけど ...

185:名称未設定
08/06/18 00:40:19 0sjtBJ8F0
>>180
>そっちはdockに出したく無いんですよ

184じゃないが突飛な感じがするな
もう少し晒してくれれば誰かからいいアイデアでるかも

186:名称未設定
08/06/18 03:14:27 aZaN0e+W0
こういった批判の中からブレイクスルーするんですね、わかります。

187:名称未設定
08/06/18 06:18:33 ZpPcOH0s0
dockに出ないのなら子アプリにする必要すら無いと思うが。

188:名称未設定
08/06/18 19:25:38 JmkHn0ES0
丸ウェアを作りたいんだよ。

189:名称未設定
08/06/18 20:42:19 0lBcXg5v0
軍艦みたいだな

190:名称未設定
08/06/19 07:19:02 qttkZF1A0
>>188
やっぱりか。

191:名称未設定
08/06/19 10:28:55 dkzo9Jj60
アプリのアイコンを透過にすればいいんじゃね?

192:名称未設定
08/06/19 10:33:02 rhMGRNu40
ドックに隙間が空きますよ。あと下に起動中の印の黒三角(Tiger以前)か青白点(Leopard)がでます

193:名称未設定
08/06/19 10:38:42 tLwYtAlr0
166のやりたいことはLSUIElementでできるんだけどな
もちろんそれだけじゃ駄目なんだけど
でも決定的なのは無駄だってことだな

194:170
08/06/19 12:25:14 g1/Z810+0
色々調べてみたところ、IBでインスタンスを作成するのでなく、
シングルトンインスタンスの作成
URLリンク(developer.apple.com)
を利用して、今のところ期待した動作を得られているようです。
コメントしてくれた方々、ありがとうございました。

195:名称未設定
08/06/19 19:15:54 LJCPJwrL0
わかった。
Finderのアイコンにすれば、どんくさいユーザーは欺けるかと。

196:名称未設定
08/06/19 20:00:26 IN6Id/OS0
最近Cocoaやり始めた初心者です・

NSStringオブジェクトからC文字列を取り出すcStringメソッドなのですが
10.4 SDKでは問題ないんですけど
10.5 SDKだとdeprecatedのワーニングがでてくるんです。
とりあえず使えるからいいんですが、これに変わるメソッドとかあるのでしょうか?

197:196
08/06/19 20:15:22 IN6Id/OS0
自己レスです

cstringを

cStringUsingEncoding:NSUTF8StringEncoding

に変えてうまくいきました。スイマセン。。

198:名称未設定
08/06/19 21:47:50 CZER9Tmm0
table view のヘッダをクリックしたときに、
ソートとかせず何も反応しないようにするには
どうすればいいですか?

199:名称未設定
08/06/19 21:50:53 cR2hfrj80
ソートしないように設定、、
バインド使ってるか否かで方法が違うけど

200:198
08/06/19 22:01:03 CZER9Tmm0
バインディングしてます

[tableColumn bind: toObject: withKeyPath: options:];

でバインディングを設定した後に、

[tableHeaderCell setAction: nil];

というのを入れてみましたが、相変わらずソートしてしまいます。


201:名称未設定
08/06/19 23:49:46 IjZx3q/K0
AppleのサンプルコードのRoundTransparentWindowはNSWindowを透明にして
NSViewの一部分を透明にすることで、透明部分のマウスイベントがスルーされる様ですが
NSViewでOpenGLを使って描画すると
GLint opq = 0;
[openGLContext setValues:&opq forParameter:NSOpenGLCPSurfaceOpacity];
で透明にはなるんですが、透明部分でもマウスイベントがスルーされません
透明部分のマウスイベントはスルーしたいのですが
マウスイベントで透明部分かどうか判定し>>72の様に下のViewを検索して通知するしか無いでしょうか?

イメージはこんな感じで
URLリンク(www.watch.impress.co.jp)
動作はサンプルコードのRoundTransparentWindowみたいに色のついてるところだけ反応したい

202:名称未設定
08/06/20 13:01:44 NyIbt5u40
IB 2.0では、新規Nibの作成時にテンプレートの言語を選べたのですが、IB 3.0ではどこで選択できるのでしょうか。


203:名称未設定
08/06/20 23:04:43 emu6E9Wh0
よく分からんが、File -> Write Class Fileで言語は選択できるな。
初心者なもんで見当違いのことを言ってたらすまん。

204:名称未設定
08/06/21 06:15:41 G0KE6qM/0
夜中12時をまたいでアプリが走っているときに、
日付が変わった瞬間を知る良い方法ってありますか?

NSTimer でひたすら時刻を取り続ければできますが、
残りの24時間の間は無駄な動作になるので、
日付が変わった瞬間に notification を受け取るようなのが
やりたいです。

205:名称未設定
08/06/21 06:49:08 N9gnbwgv0
>>204
NSTimerは時間指定で呼び出す事も出来るけど。

206:204
08/06/21 06:58:24 G0KE6qM/0
>>205 ㌧
NSTimer て、今までインターバル測るのにしか使ってなかった‥ orz


207:名称未設定
08/06/21 07:00:12 LClgiSkx0
runloopで時間指定って出来なかったっけ?

それ以外だと、xNix的な考え方と組み合わせるのは?
cronサービスでnotificationを飛ばすようなやつをくむとか。
シェルスクリプトからatコマンドを使うイメージ。

208:名称未設定
08/06/21 11:32:35 C54+0kUw0
Cocoaバインディングがさっぱり・・・
ややこしいなあ

209:名称未設定
08/06/21 12:32:29 kIEVYzos0
>>208
どこがわからんの?IB でバインドする変数名を指定するだけだと思うけど。
(すくなくとも第一歩は。)

210:名称未設定
08/06/21 12:40:53 C54+0kUw0
ああ、、そか、バインド先とkeyとパスを指定するくらいなんだ。。
沢山項目があるのでこんがらがってた。。




211:名称未設定
08/06/21 16:47:43 aJQoGXKZ0
KVOがむずかしすぐる、、、
特定のインスタンス監視して変化があったら特定のメソッド叩いて欲しいだけの
時にやらなきゃいけないことが山盛りで理解しきれてない。
NSTimerぐらい簡単に設定できればいいのに、、


212:名称未設定
08/06/21 17:39:34 m9NZ2CO10
>>211
ターゲット・アクションでいいんじゃね?

213:名称未設定
08/06/22 00:02:38 DwFjZeXi0
>>211
なにが難しいの?山盛りではないよね。
observeValueForKeyPath:ofObject:change:context:
を実装して、
addObserver:forKeyPath:options:context:
で登録するだけだと思うんだが...
一、二、沢山の未開民族以前の、二つの時点で沢山のひとですか?

214:名称未設定
08/06/22 07:09:03 sXHrp8O60
テキストフィールド2つだけの
cocoaバインディングのサンプルないかな


215:名称未設定
08/06/22 07:36:43 DwFjZeXi0
それだけなら、なんか NSString* text; を中に持つオブジェクトをつくって、nib のなかにインスタンス化して、ふたつのテキストフィールドをそのオブジェクトの text にバインドするだけだけど ...

216:名称未設定
08/06/22 10:49:12 N0VcqJNZ0
個人的に思うのだが、Bindingの動作メカニズムをちゃんと理解していないと落とし穴が結構ある。
で、ちゃんと理解するにはKVOのメカニズムを理解していなきゃならない。
それにはObserverパターンとKVCの理解が必要で、さらに言えばそもそもObj-Cの実装が分かっていた方がいい。
それはつまりオブジェクト指向言語はどうやって作るのか?ってことで、それをCで考えるくらいの力があれば…
Bindingを使いこなせるんじゃないかと思う。

っていうのは言い過ぎだとしても、「もう一段深いところ」を理解していると楽になること多いです。

217:名称未設定
08/06/22 11:39:09 sXHrp8O60
アセンブラからやり直します。。

218:名称未設定
08/06/22 11:47:18 RhCPffZv0
>>214
例えば、こんなのありますけど
URLリンク(www.stripe-net.jp)
URLリンク(www.stripe-net.jp)

219:名称未設定
08/06/22 11:58:13 sXHrp8O60
>218
超さんくす!!

220:202
08/06/22 13:20:35 0Fs+nSDs0
>>203
すみません。プログラミング言語ではなく日本語/英語/中国語などの言語です。


221:名称未設定
08/06/23 00:11:09 FKweipuD0
interface builder3.0が糞な件について

研究室でObjective-Cを使ってプログラミングを書けって言われたんだけど、
何この糞みたいにめんどくさい開発ツールは。

なんでわざわざオブジェクトとコードのコネクションを手動で接続しなくちゃいけないわけ?
Visul Studioをちょっとは学べよ。
あんなのダブルクリックで済むんだぞ。

あーむかつく。
なんでこんなん使ってやらなあかんねん。
ふざけんな。研究費削っとんちゃうぞ!!!!!!!!!

222:名称未設定
08/06/23 00:17:12 2/CWbUXB0
>>221
マルチポスト乙
厶板のObj-Cスレに返事が書いてあるからそっちをみてやってくれよ

223:名称未設定
08/06/23 00:17:55 I4ASgrpV0
慣れだ慣れ 考え方ちゃうからな
IBに限らずCocoa慣れるとMSにも言いたい事が出て来たりする

で、結局みんなEmacs+GCCに戻るのさ
ねーよ

224:202
08/06/23 01:29:22 xvOwn1gf0
>>221
MVCアーキテクチャは慣れるまできついかもなぁ
ただ慣れたら離れられなくなる。
というか、俺の場合Cocoaに慣れて初めて俺のプログラムがいかにオブジェクト指向じゃなかったか気づいた。
自分のプロブラムを見直すチャンスって考え方もあるんじゃないかな
VBやったことないが基礎となる理論はしっかりしてるんだろうか。
ってスレ違いだなスマソ

225:名称未設定
08/06/23 04:04:59 bpjMPdrC0
マルチポストをマルポって呼ぶスレに認定することにしました

226:名称未設定
08/06/23 08:46:19 ZbmJMWrp0
すいませんまた初心者なんですが。。

File's OwnerとFirst Responderってこれはなんですか?
チュートリアルでも、たまにこれに向かってコネクトしてる場面があるんですが
なんのためにやっているのかの説明が無いのでなんだかぼんやり。

227:名称未設定
08/06/23 09:14:14 2/CWbUXB0
File's Owner は、nib を「開いた人」です。
MainMenu.nib は自動的に開かれて、開いた人は NSApplication (のインスタンス)になってます。
だから、MainMenu.nib の File's Owner につなぐってことは、NSApplication につなぐことになります。NSApp の delegate につなぎたいときとかにつかいます。

First Responder っていうのは、プログラム実行中にキー入力をうけつけているオブジェクトをさす抽象的なターゲットだとおもってください。
メニューバーの「文字を大きくする」メニューのターゲットを、特定のウインドウの特定のオブジェクトとかにつないでしまうと、いつもそのオブジェクトが呼ばれることになりますが、
場合場合に応じて前面のオブジェクトに命令したかったりするでしょ。

228:名称未設定
08/06/23 09:29:53 ZbmJMWrp0
>227
ありがとうございます!
なるほどそうだったんですか・・

cocoaアプリの構造知らぬままやってました。。

229:名称未設定
08/06/23 15:39:38 nJQGDEyG0
>>227
おまいの説明はすこぶる分かり易い。

230:名称未設定
08/06/23 15:45:03 9YeEOx5D0
>>229
俺も同じ事思ってた。
ID: ZbmJMWrp0 はいい人に出会えた。

231:名称未設定
08/06/23 19:30:38 gNpGWa+A0
ヒレガスよりわかりやすいな

232:名称未設定
08/06/25 18:15:44 WYDyD/990
>>227
神。説明が分かりやすい上に文体がしっくりくる。Cocoaの本書いてちょw


233:名称未設定
08/06/25 18:57:58 3DmRzNhv0
もし、友達に貸したエロ本がまた貸しされて、
さらにまた貸しされて・・・

もうあなたの手で処分出来なくなった場合、
これをメモリーリークと言います。


234:名称未設定
08/06/25 20:50:44 FELUv7Tr0
>>233
違うんじゃない?

235:名称未設定
08/06/25 21:35:13 7oMlqkxh0
>>227
File's Ownerは、その言葉どおり、nib開いた人ではなく、オーナー(所有者)だと思います。
ADCのドキュメントによれば、MainMenu.nibを開いているのは、NSApplicationじゃないし。
まあ、たいていは、開いた人がそのままオーナーになりますが。

First Responderは、マウスでクリックされたりして、フォーカスの当たってるオブジェクトのことです。
First Responderが必ずしもキー入力を受け付ける訳ではありません。



236:名称未設定
08/06/25 21:44:11 c0QFEsb40
>>235
正確に書く事と分かり易い事とは違うわけだが。
とっかかりとしては十分な説明だと思う。

237:名称未設定
08/06/25 22:16:45 J5cC1xD40
NSTextViewの中の文字列で
たとえば2行目の左から3文字目から5文字目を
"ABC"で上書きする場合どうすればいいのでしょうか。。


238:名称未設定
08/06/25 22:24:26 QvvFgoa30
NSTextを継承してるんだから
- (void)replaceCharactersInRange:(NSRange)aRange withString:(NSString *)aString
なんかを使えばいいんじゃないの?

239:名称未設定
08/06/25 22:48:50 J5cC1xD40
>238
ありがとうございます!試してみます!

240:名称未設定
08/06/26 00:28:58 QkkYa/qW0
オーナーとかの話しで思ったのですが、
MyObjectがインスタンスhogeを持っていた場合、
@interface MyObject:NSObject {
id hoge;
}
@end

@implementation MyObject
-(id)hoge {
return hoge;
}
@end
とアクセッサメソッドを用意してやることでIB上でMyObjectにバインドすることができるようになります。
これはMyObjectがhogeを持っているからですよね。
では他のオブジェクトと共有して使用されるグローバル変数の場合どうなるのでしょう。

241:名称未設定
08/06/26 00:32:49 QkkYa/qW0
@interface MyObject:NSObject {
}
@end


id hoge;

@implementation MyObject
-(id)hoge {
return hoge;
}
@end

とした場合バインディングはエラーが起きてしまいました。
hogeはMyObjectが持ってるんじゃないからそりゃそうかと思いましたが、
それなら誰が持っているのでしょう。
NSApplication?NSUserDefault?File's Owner?
それぞれに無理矢理バインドしてみましたがうまくいきませんでした。
アクセッサメソッで変数を返す時にグローバル変数の値を代入してやるしかないのでしょうか?

242:名称未設定
08/06/26 00:38:33 QkkYa/qW0
ああああすみません、
エラー文にセッターがないって出てたんで言われた通りにセッターつけたら解決しました。
プロパティ使っとけってことですね。試す前から書き込んだ自分が馬鹿でした。お騒がせしました。

243:名称未設定
08/06/26 10:37:58 DcE/JQ790
NSViewとかをNibに定義しないで、コードから直接
alloc&initWithFrameとかした場合、awakeFromNibは
呼び出されませんよね。
このメソッドも呼び出すべきですか?

244:名称未設定
08/06/26 11:18:59 nOuF1tC50
それって呼ばれるの?
ログ吐いて確認してみたら?

245:名称未設定
08/06/26 20:00:15 8BlZMsUG0
>>243
-awakeFromNibはNib使わないんなら気にしなくておk

246:名称未設定
08/06/26 22:05:41 DcE/JQ790
>>244-245
なんか勘違いしてたみたいで、呼ぶ必要ないですね。
ありがと。


247:名称未設定
08/06/27 02:48:34 rkAsU+Fv0
既存クラスにメソッド追加してやるのはカテゴリでいいですけど、
インスタンス変数を追加しようと思ったらサブクラス化しかないですか?
サブクラス化するとIB上に置いてあるControlを全部変更しないといけないのでどうにか方法はないかと考えています

248:名称未設定
08/06/27 06:48:39 5wCaEvMQ0
>>247
ポージング(poseAsClass)でいけるかも。

URLリンク(journal.mycom.co.jp)

249:名称未設定
08/06/27 06:50:53 5wCaEvMQ0
あ、ごめん。だめやった。インスタンス変数追加できないんやった。

250:名称未設定
08/06/27 07:44:23 QT0InZ8U0
posingでinstance追加できたらのっとりでなんでもできちゃいそうだね。
それはそれで面白そうだけど何か問題があるからできないようになってるのかな。

251:名称未設定
08/06/27 08:25:43 cVkbRC280
>247
漏れもちょうどいまそれ悩んでた。

とりあえずそのクラスに組み込んじゃったけど、やっぱしっくりこないや

252:名称未設定
08/06/27 09:03:28 YYux+Wek0
posingはLeopardからdeprecatedに指定されてる。

253:名称未設定
08/06/27 09:20:29 zgdyeD0/0
>>247
既存クラスも自作だったら、既存クラスの名前のほうをかえて、
サブクラスのほうのなまえをもとのものにしておくという方法が。

254:名称未設定
08/06/27 10:21:22 O3k3c+Fk0
>>252
知らなかった。すでに64ビットアプリだとサポートされてないし。

255:名称未設定
08/06/27 11:31:15 OEVIo/Co0
中継クラスみたいなものを用意するってのは駄目なの?
setter と getter を書いて中継するとか。

あと、Bindingにしておけば、selectionが中継クラスになるから、
実際のターゲットクラスが変更になってもnibの変更は最小限ですむよ。


256:名称未設定
08/06/27 12:00:47 zgdyeD0/0
>>254
でもいろいろと別の runtime 関数が用意されてて、class の乗っ取り自体は 64 bit でも自在にできるよ。

257:名称未設定
08/06/27 16:00:37 YYux+Wek0
特にプラグインは危険だな。アプリ上の任意のクラスを簡単に乗っ取れるから。
自分で作ったプログラム用のプラグインを使ってブルートフォースアタックを
かけたら簡単にシリアル番号をボロボロ抜き出せた。笑うしかないね。

258:名称未設定
08/06/27 20:03:42 pVLES8St0
まあこの辺がiPhone SDKでダウンローダブルなプラグイン禁止の理由なんだろうね。
FireFoxが移植出来ない、一番の原因。相変わらずCNETは表面的だ。
URLリンク(japan.cnet.com)


259:名称未設定
08/06/27 20:24:09 5dK6eRfR0
>>247
バインディングの実装と同じように手段を取ってみては?

バインディングした場合、NSView側でバインド先のオブジェクトとキーパスの情報を保存しなければならない。
でも、MacOSX10.3でバインドが追加されたとき、NSViewにインスタンス変数が増えたりはしなかった。
たぶんNSBinderというヘルパークラスが、NSViewに代わって、その辺の情報を保存してるっぽい。



260:名称未設定
08/06/27 20:42:37 NSFBdoqf0
>>259
あれってポージングで実装してるんじゃなかったの?

261:247
08/06/27 22:32:56 W9Mj7Of10
いろいろと意見ありがとうございます。
poseAsClassが10.5でdeprecatedになって、木下さんがどこかの記事で代替えの方法を解説してたと思うのですが。
>>259
バインドを使用すると結局たくさん線をつなぐことになりそうなのでスマートではなさそうな気がします、、。

262:名称未設定
08/06/27 22:39:03 cN+Ohq8K0
ポージングの代わりはメソッド交換でってアップルが言ってた。

263:名称未設定
08/06/27 22:40:13 5dK6eRfR0
>> 261
いや。バインドを使うんじゃなくて、バインドと同じ仕組みを応用すると言っています。

ところで、ポージングって、インスタンス変数の追加はできるの?
URLリンク(journal.mycom.co.jp)

264:名称未設定
08/06/27 22:53:14 W9Mj7Of10
ポージングでは無理そうです。
>>259を読んでおっしゃることは理解しました。

265:名称未設定
08/06/27 23:30:52 5dK6eRfR0
>>264
いちおう、詳しく説明すると。
まず、カテゴリー使ってNSViewにgetterとsetterを追加する。
- (id)hoge{ return [Helper getValueWithOwner:self]; }
- (void)setHoge:(id)value { [Helper setValue:value withOwner:self]; }
で、Helperクラス側に値を格納する。
static NSMutableDictionary* dict;
+ (id)getValueWithOwner:(id)owner{ return [dict valueForKey:owner]; }
+ (void)setValue:(id)value withOwner:(id)owner { [dict setValue:value forKey:owner]; }
こんな感じ。


266:名称未設定
08/06/28 00:52:34 MqHAm5mY0
>>262
MethodReplacementってやつか。

267:名称未設定
08/06/28 01:54:47 0eKOBZUW0
MethodReplacement
URLリンク(developer.apple.com)

その他のMethod Swizzling
URLリンク(www.cocoadev.com)
URLリンク(rentzsch.com)

268:名称未設定
08/06/28 14:28:41 KIP7kd9A0
メソッドの+と-って何ですか?

269:名称未設定
08/06/28 14:31:27 iKOABDQ+0
クラスメソッドとインスタンスメソッド

270:名称未設定
08/06/28 14:42:57 kuOvaWBW0
クラス名 *A = [クラス名 xxx]; でインスタンスを作れるのが、 +
それ以外が -
であってるかな?


271:名称未設定
08/06/28 14:50:17 3jJ6jb9L0
>>268,270
頼むからObjective-C Programing Languageぐらい読んでからCocoaプログラミング始めてくれ。
今は日本語版もあるんだから。


272:名称未設定
08/06/28 14:52:52 KXgNszZw0
むしろ頼むからプログラミング始めないでくれ

273:名称未設定
08/06/28 15:03:54 Pk2Ye7oi0
むしろ神解説できたらいいのにね
分かりやすい解説シリーズキボン

274:名称未設定
08/06/28 15:12:15 ICsN/hVj0
クラスとインスタンスってのはプッチ○プリンの入れ物と...

めんどくせ。

275:名称未設定
08/06/28 15:21:45 oynXjVSX0
クラス=風俗
インスタンス=風俗嬢

276:名称未設定
08/06/28 15:32:53 iKOABDQ+0
そういう方向で言うとアレか。
クラスメソッド:
 デリヘル ヘルス嬢 = [デリヘル 呼び出し];

インスタンスメソッド:
 [ヘルス嬢 xxx];

277:名称未設定
08/06/28 15:46:52 u+ckHd7H0
ゆとりのためにゲームで説明すると
ソルジャーから派生して枝分かれしたナイト、ウィッチ、プリーストといったジョブ(クラス)のキャラ達(インスタンス達)がいたとして、
10人ぐらいのパーティだと複数人同じジョブ(クラス)の人がいるんだけど
それぞれが持ってる、戦う、防御、逃げるなんかの戦闘コマンド(インスタンスメソッド)はもとのジョブ(親クラス)から継承したコマンドで、
ウィッチのサンダーとかファイア、プリーストのヒーリングなんかはジョブ固有のコマンド(インスタンスメソッド)なわけ。
んで特殊アイテム戦いのドラムを使ってナイト全員が2回行動になったりするのがナイトのジョブコマンド(クラスメソッド)、
前衛後衛入れ替えとかで全員場所入れ替えすんのがソルジャーのジョブコマンド(親クラスのクラスメソッド)。

278:名称未設定
08/06/28 15:52:27 u+ckHd7H0
あー、これだとクラスメソッドについて正しく説明できてないな、、

279:名称未設定
08/06/28 15:52:55 P5MKK7iV0
TOとFFとDQが混じってる…?

280:名称未設定
08/06/28 16:16:12 ICsN/hVj0
インスタンスメソッド:
 [ヘルス嬢 チェンジ]; // raise Exception if call 3 times.

こうですか><
分かりません><

281:名称未設定
08/06/28 16:16:34 u+ckHd7H0
オウガバトルベースのつもりが混じってますね、、
上の流れだとalloc系のクラスメソッドをどう説明すれば良いか

282:名称未設定
08/06/28 17:27:39 3jJ6jb9L0
そもそも、クラスもインスタンスも、メッセージを受け取れる「オブジェクト」であるという点では違いはないんだ。
しかし例えば画面上の無数のウインドウがあったとき、それらは全て別々のオブジェクトであるのだが、
その動作を規定しているのは共通のコードなわけだ。それが「クラス」。
対してウインドウの位置や中身などは全て別物だ。その情報を保持するのが「インスタンス」。
よくタイヤキの型(クラス)とタイヤキ(インスタンス)に例えられるな。型はおなじでも出来たタイヤキの中身は変えられる。
俺はクラスはイデアだと思ってるけど。

じゃあ動作を規定すると言ったけど、ウインドウにメッセージを送るときそれを受け取るのはインスタンスだ。
インスタンスが受け取るメッセージ(に対する動作)を規定するのが「インスタンスメソッド」だ。
クラスもオブジェクトである以上、クラスが受け取るメッセージもある。それを規定するのは「クラスメソッド」になる。
で、これを実際にObj-Cで書くときには、クラスメソッドの定義には「+」、インスタンスメソッドの定義には「-」をつけてる。

クラスメソッドの用途は確かにそのクラスのインスタンスを作るものが多い。allocを始めとして。
ただしそれに限るものでもない。全インスタンスに共通な性質を設定するアクセサだって作れるし。

283:名称未設定
08/06/28 17:39:16 3jJ6jb9L0
ちなみに、クラスとインスタンスはどちらもオブジェクトである…んだが、Obj-Cの場合はさらにこう言える。
「クラスオブジェクトはNSObjectクラスのインスタンスとして扱える」
つまり例えば、クラスをNSArrayにつっこむということは普通に出来る。ていうか俺もやる。例えば
[anMutableArray addObject:[NSString class]];
とするとNSStringクラスがオブジェクトとしてanMutableArrayに追加される。

ということで、-と+、インスタンスメソッドとクラスメソッドは
一つのファイルの中で2種類のオブジェクトの動作を定義する必要があるから、存在するとも言える。

284:名称未設定
08/06/28 18:03:52 u+ckHd7H0
すげええクラスとかまんまArrayに入れたりできるんですか!
ちなみにどういった用途で使うんでしょう?
便利な使い方が想像できないです、、

285:名称未設定
08/06/28 19:19:37 wWVbcxHq0
クラスで
外部から呼べるのが-
内部でしか呼ばないのが+

という理解でよろしいですか?


286:名称未設定
08/06/28 19:35:34 3jJ6jb9L0
>>284
コンパイル時にはどういうクラスを何個使うか分からないとき…かな。別にNSArrayに限らず、NSDictionaryでもいいし
Class型やid型に入れてもいい。

>>285
内部と外部の意味がよく分からん。
[[NSString alloc] init]; のallocはクラスメソッドで、initはインスタンスメソッドだが、この文に内部も外部もないだろ。
どちらもオブジェクトにメッセージを送っているにすぎない。呼べる呼べないで言えば、
[NSString init]はできないしNSString *aStringに対して[aString alloc]はできない。それだけ。


287:名称未設定
08/06/28 19:38:06 3jJ6jb9L0
ってNSStringクラスはNSObjectのインスタンスとしても扱える訳だから、[NSString init]は呼べるか。
多分意味はないし、実際に試したことはないけど。


288:名称未設定
08/06/28 19:43:10 yHYqfuzX0
>>285
クラスとインスタンスの関係は理解してる?

クラスって云うのは、いわば機械の設計図みた様なもので、材料とかその分量とか作る手順が書かれてる。インスタンスはその設計図を基に作った現物。

でまあ、+がついてるの = クラスメソッド が レシピについての操作。材料の分量を変更するとか、材料を準備するのもこれに入ってる。
要は、クラスに対する操作な。

で、現物を使ってテレビ点けたり、部屋冷やしたりする様な作業が-のついたインスタンスメソッド。例外的に用意した材料を加工するのもこれに当たる。

例えば、まあこんな感じかな。

// 疑似コード
パイ' = [パイのレシピ 材料の準備]
パイ = [パイ' 調理]

ここで、『材料の準備』はレシピについて行われてるから、クラスメソッドの呼出し。で、この後の調理は材料=ほぼ現物に対して行われてるから、インスタンスメソッド。一々こうかいてるのは面倒だから、

パイ = [[パイのレシピ 材料の準備] 調理]
みたいな感じで呼べる。


……こんな感じでおk?

289:名称未設定
08/06/28 22:02:07 r6CxQJy60
>>283, >>287
classはid型だけど、NSObjectのサブクラスとかじゃないよ。



290:名称未設定
08/06/28 22:14:41 5Bx5r4xK0
ここの盛り上がりに比べてiPhoneアプリ製作スレの中身の無さといったら

291:名称未設定
08/06/28 22:31:29 oyobADpU0
デリヘル嬢と本番するにはどんなメソッドを呼んだらいいの?

292:名称未設定
08/06/28 22:42:08 yHYqfuzX0
>>291
[[デルヘル嬢 alloc] init]

293:名称未設定
08/06/28 22:42:48 ZeRWvCBY0
release

294:名称未設定
08/06/28 23:01:21 5Bx5r4xK0
デリヘル嬢 デリ嬢 = [[デリヘル嬢 new] retain];
[デリ嬢 setMoney:1万];
[self setSkin:[Skin skin]];
[デリ嬢 play:self];
[self 射精];
[デリ嬢 release];
書いてて死にたくなってきたわ
以後建設的な話しを

295:名称未設定
08/06/28 23:22:14 EmOAb5fu0
処理中にキャンセルボタンでキャンセルさせたいのですが、
どうすればよいのですか?
処理はfor文とかで回してるのですが。

296:名称未設定
08/06/28 23:27:19 3jJ6jb9L0
>>289
失礼。正確には、
「NSObjectのサブクラスのクラスオブジェクトは、NSObjectのインスタンスメソッドを持つとして扱える」かな。
えーと例えば、
[NSString isKindOfClass:[NSObject class]] とするとYESが返ってくる。
クラスオブジェクトに対してrespondsToSelector:やperformSelector:が効くのもこのおかげだと思う。


297:名称未設定
08/06/28 23:43:35 +zEqA0Er0
メタクラス等はこれがわかりやすいよ
URLリンク(journal.mycom.co.jp)
URLリンク(journal.mycom.co.jp)

298:名称未設定
08/06/28 23:48:33 oynXjVSX0
>>295
ボタンが押されたforループから抜ければいいじゃん

299:名称未設定
08/06/29 00:38:06 XlViJVqL0
ループを別スレッドに分ける。


300:名称未設定
08/06/29 02:11:05 ywkudbmZ0
>>294
leakしてる

301:名称未設定
08/06/29 02:40:08 QGzHDlD00
使用後のゴムが小学校の校庭に落ちていたのを思い出した。
ちゃんと処分しろよな。

302:名称未設定
08/06/29 03:10:56 t568XiuI0
AVMovie* movie = [[AVLibrary sharedLibrary] objectForKey:@"InranJoshiKose"];

[self watchMovie:movie];
[self playWith:self];

[[AVLibrary sharedLibrary] removeObjectForKey:@"InranJoshiKose"];

[self sleep];

303:名称未設定
08/06/29 05:58:26 azI+MvI70
>>295
forループでなくて、runLoopにて処理させるってのもある。
performSelector:withObject:afterDelay:を待ち0で指定。
次のrunloopで動く。

これだと、ループのなかでGUIの更新とかイベント処理とか
全部出来るからべんりだお

304:名称未設定
08/06/29 06:27:34 GLTNi95n0
CoreAnimationで明示的なアニメーションをさせているのですが
アニメーションが終了するとレイヤーが開始時の状態に戻ってしまいます。
終了時の状態をキープさせるにはどうすれば良いのでしょうか?

305:304
08/06/29 09:43:32 GLTNi95n0
自己レスです

CABasicAnimation* animation;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;

でいけました。kCAFillModeForwardsが何なのかよく分かっていませんが。

306:名称未設定
08/06/29 10:33:07 G8HUtWbV0
NSTextViewを2つ左右に配置して、改行数も同じなテキストを表示してるんですが
この2つのTextViewの垂直スクロールを同期(ホイール、スクロールバー操作時)させるにはどうしたらいいのでしょうか。。

307:名称未設定
08/06/29 10:39:31 4W+71IXB0
>>306
NSScroller用のValueを誰かに持たせて両方にbindする。


と、何も試さずに言ってみる。

308:名称未設定
08/06/29 11:40:38 U0RClpmA0
>>306
ドキュメントで SynchroScroll を「全文検索」する。



309:名称未設定
08/06/29 14:13:09 BWFM2zTG0
すみません。
2つのNSSplitViewで片方のNSSplitViewのディバイダーを動かした時に
もう片方のNSSplitViewのディバイダーをシンクロさせる方法はありますでしょうか?

310:名称未設定
08/06/30 18:37:03 LJd79rmJ0
HMDTの2nd読んでるんだけど
cocoaバインディングのとこで

バインディング用のNSObjectControllerにある "content"というアウトレット
これってIndentify Inspectorにはでてこないんですが
(Connectionsにはでてくる)
具体的になにをやってるんでしょうか??

311:310
08/06/30 19:36:45 LJd79rmJ0
これってIndentify Inspectorにはでてこないんですが

でてきてます。

すいません勘違い。。



312:名称未設定
08/07/02 00:28:07 BE+n65l+0
Cocoaセミナーの資料、Leoaprd対応前のヤツどこかで入手できないでしょうか?
もしくは誰かどこかにアップして頂けると嬉しいのですが・・・
中級編と上級編を

313:名称未設定
08/07/02 09:26:55 TLvP2d9t0
>>312
あきらめてレパードをかいましょう。1万円の投資はいみがあります。
なるべくAppleの提供しているとおりするのが混乱が起きなくて良いです。
Apple はどんどん過去を切り捨てる会社だからプログラムしようとおもったら仕方がないです。

314:名称未設定
08/07/02 10:22:32 7uYmBryr0
Leoaprd使ってるんですが都合上、メイン環境はまだDeveloperTools2.5なんで...

で、自己解決ですが色々ググってたらありました。
URLリンク(hmdt-web.net)

315:名称未設定
08/07/02 10:24:05 TLvP2d9t0
それはすいません。どういう都合なのか興味深いんですが。

316:名称未設定
08/07/02 11:01:19 6x1NISwO0
>>314じゃないが、自分もメイン環境はTiger。
仕事で使うアプリがTiger用…っていうかLeopardに移行して余計なトラブルを起こしたくない
といった都合。

317:名称未設定
08/07/02 11:40:09 7uYmBryr0
僕も仕事とか、トラブルを避けたいってのがあります。

それと、自分の知識が、まだ段階的に、OS 10.3~10.4の新しいAPI勉強中、というぐらいなので
(そんなんで仕事すんなって話ですが)、Xcode3への移行も含めた10.5の勉強は後回しにしたいのです。

318:名称未設定
08/07/02 12:22:08 TLvP2d9t0
>>317
なるほど。でも XCode 3.1 (iPhone SDK についてるやつ)は全然機能豊富でいいよ。XCode でも Tiger 用のソフト作れるから、XCode だけは 3.1 にしてもいいんじゃないかな...

まあ Interface Builder の仕組みとかわかってないと、見た目が案外変わってるから混乱するかもしれないけど。

319:名称未設定
08/07/04 17:15:58 kZM2vvAg0
CoreAnimationについて質問です。
CoreAnimationを使うと位置や不透明度を指定するだけで中間フレームが補完されますが
アニメーションさせずに位置などを変更する方法は無いのでしょうか?

320:名称未設定
08/07/04 17:26:12 BBNuNSR70
>>319

コードを共通にしたいなら、Durationを0にするのが簡単。

321:名称未設定
08/07/04 19:15:07 KXtWY3ng0
CoreAnimation使わなきゃいいだろw
なんのためのAnimation機能だよ

322:319
08/07/04 20:12:49 hXaLDE1k0
自己解決。トランザクション設定でいけました。

>CoreAnimation使わなきゃいいだろw
>なんのためのAnimation機能だよ
一瞬だけ無効にしたい事は結構あると思うけど。

323:名称未設定
08/07/05 23:17:33 bbZv5NPd0
age

324:名称未設定
08/07/07 17:54:09 kroflgcW0
思いっ切り余談なんだけど、新し物好きとか見てると、
なんか3日に1回は0.1バージョンアップしてトップページに
載せて貰って、DLを稼ごうとしてるアプリがない?

いやまあ、別にいいんだけどさ。
新し物好きの人とか大変そうだなあと。


325:名称未設定
08/07/07 18:45:38 pUa99p1P0
新し物好きの人はどうでもいいんだが、
あまり改良点が少ないと、わざわざダウンロードしてくれた人に申し訳ない。

自分なら改良点が5個くらい溜まるまで+0.1は控えるな。
そうすると新バージョンの公開は大体1年に2回くらいになる。
バグフィックスは1個だけでも+0.0.1するけどな。

326:名称未設定
08/07/07 22:35:04 +XUVksz/0
>>324
新し物好きの人はそれで稼いでるんだからいいんじゃない?
ユーザーとしてはバージョンアップ歓迎だし。

327:名称未設定
08/07/08 08:23:22 AK0ZWKsw0
ソフトのとこクリックすると
新しもの好きにお金がはいるシステムだったんだ?


328:名称未設定
08/07/08 11:44:46 hfpgV8/00
直リンだし別に金は入らないかと。

329:名称未設定
08/07/09 00:43:24 zn8zpXSM0
バナー掲載料

330:名称未設定
08/07/09 22:25:40 cjjoVqS60
現在のマウスポインタがビュー内の特定の領域内にあるかどうかを判定したいんですが
QuickDrawでいうところのRegionはCocoaではなんと呼ぶんでしょうか?

331:名称未設定
08/07/09 22:29:36 sdo/FFS+0
知らん
NSMouseInRectでググれ


332:名称未設定
08/07/09 22:32:23 6VjgO1TE0
>>330
俺も昔は気になってたが、不定形はNSBezierPath使って判定してる

CGRegionだっけ?そんなのもあったような

333:名称未設定
08/07/09 22:40:03 cjjoVqS60
>>332
なるほど、NSBezierPathで領域を作って、containsPointで判断すればいいんですね
ありがとうございました

334:名称未設定
08/07/12 23:55:07 stdBe7cl0
sage禁止

335:名称未設定
08/07/13 11:37:30 HJA7K/r+0
NSString で、例えば "2ch" みたいに、ダブルクォーテーション付きで
文字を表示させたいときは、

NSString * string = @"( ? )";

で、 ( ? ) のところにどう記述すればいいでしょうか。


336:名称未設定
08/07/13 11:39:09 h5XyjEmR0
@" ¥" ¥" "
というふうにバックスラッシュ ¥ をつけます。
2ch に書き込むとバックスラッシュと円記号がごっちゃになる気がするけど ...


337:名称未設定
08/07/13 11:39:52 h5XyjEmR0
やっぱり円記号になった ...
XCode で日本語キーボードなら、Opt-円記号でやるとでる、/ と傾きが反対向きのスラッシュをつかってください。

338:335
08/07/13 11:45:34 HJA7K/r+0
>>336=337
できました!
ありがとう

339:名称未設定
08/07/13 11:53:54 9BVhVzTm0
まめ知識
NSString *AAA = @"aa";
NSString *BBB = AA @"bb";

とかくと、コンパイラで自動で結合されて
NSString *BBB = @"aabb";
と同義になる

340:名称未設定
08/07/13 13:14:40 u+yV8IfN0
>>339
> NSString *BBB = AA @"bb";

AAA@"bb";
かな?

341:名称未設定
08/07/13 13:26:45 NHNxxr7S0
間にスペースとか改行とかを入れると、ばしっとつながる。
(コンパイラでの接続なので定数オブジェクトに限られるけど)

NSString *strings = @"aaaa¥n"
@"bbbb¥n" @"cccc¥n";

#define SomeString @"index.htm"

NSString *TheURL = @"http:/aaa.com/" SomeString @"#anchor";

みたいな感じで、定義分と組み合わせると、条件によって文字を交換とかできる。


342:名称未設定
08/07/13 13:43:48 u+yV8IfN0
へえ、知らなかった。
面白いね、ありがとう。

343:名称未設定
08/07/13 14:11:00 iD5vJJHB0
age

344:名称未設定
08/07/13 14:18:31 Y1Ak5AxY0
Cの文字列リテラル連結と同じ要領だな

345:名称未設定
08/07/13 22:30:18 rN/PKW4q0
iCalみたいに、起動してないアプリのアイコンを書き換えるにはどうすればいいんですか?

346:名称未設定
08/07/13 22:39:15 ZrJCFMn30
[[NSWorkSpace sharedWorkspace] setIcon: SomeIcon forFile: fullPath options: nil];
とかでファイルのアイコンを書き換える。みたいなのかな

347:名称未設定
08/07/13 22:41:23 u+yV8IfN0
>>345
>>90

348:名称未設定
08/07/14 10:09:46 nTc4Tt9A0
HMDT 3rd 本を読んでいるところです。
core data のサンプルで、3ペインのMailアプリケーションのようなサンプルがあります。
左のテーブルにMailbox、右上のテーブルにMailboxに含まれるMailのリスト、その下にメールの内容が表示されるものです。
このサンプルを使って、Mailboxを作成、Mailを複数追加。
その後、Mailをリストから削除すると、
~/LIbrary/Application Support/Mail/Mail.xml
の中に削除したMailの部分だけ残るようになってしまいます。
Mailboxごと削除してもその部分だけ残ります。
自分でデータ削除用のコードを書かなければならないのでしょうか?
それとも設定をミスってる?

環境は、Tiger + Xcode2.5 です。
ヒントだけでもお願いします。


349:名称未設定
08/07/14 11:30:23 uGWsnIyx0
>自分でデータ削除用のコードを書かなければならないのでしょうか?
うん。というかハードディスク余ってるんだから、別に消さなくても ...

350:名称未設定
08/07/14 12:20:57 kfMtczJR0
>の中に削除したMailの部分だけ残るようになってしまいます。
削除していないMailは消えてるの??

コアデータは(デフオだと)アプリを終了しないとXMLに書き込まれないよ。
あと、削除といってもフラグを立ててるだけかもしれないし。


351:名称未設定
08/07/14 13:02:28 nTc4Tt9A0
ありがとうございます。
>>349 さん
追加と削除を繰り返すだけでデータが増えていないのに、ファイルサイズが大きくなっていくのが気持ち悪かったので...

>>350 さん
>削除していないMailは消えてるの??
書き方が分かりにくかったでしょうか。
削除したMailがxmlファイルにはずっと残ってしまうという状態です。
例えば
アプリを起動 > Mailboxを1つ作成 > Mailを2件登録 > Mailを1件削除 > Mailboxを削除 > アプリ終了
で、確認すると削除したMailだけ残っています。
上の例で、Mailboxを削除しなければ、MailboxとMail2件が残っています。
削除ボタンはMail用のArrayControllerのremoveアクションに繋がっています。
Mailboxを削除するボタンもMailbox用ArrayControllerのremoveアクションに繋がってますが、Mailboxは追加や削除を繰り返してもきちんと削除されます。

352:名称未設定
08/07/14 13:49:19 iCe9YYmu0
>>351
見当違いかもしれないけれど、MailboxのrelationshipからだけMailを削除しているだけではないですか?

Deletes Objects on Remove オプションはどうなっていますか?



353:名称未設定
08/07/14 13:59:47 nTc4Tt9A0
>>351 さん
ありがとうございます。
Deletes Objects on Remove オプションがOFFになってました。
ONにすれば削除されますね。
お恥ずかしい限りです...

と言う事で解決致しました。
レス頂いた皆様、ありがとうございました。

354:名称未設定
08/07/14 14:01:06 nTc4Tt9A0
アンカー間違えました。
351でなく >>352 です。

355:名称未設定
08/07/18 12:43:58 EhXln+vS0
そういや、気がついたらxibになってたけど、awakeFromXibにはならないのか。

356:名称未設定
08/07/18 19:06:01 Lq/H4W2N0
xibはビルドするとnibになるよ。

357:名称未設定
08/07/19 00:17:13 OkWOTiQ/0
awakeFromDeb

358:名称未設定
08/07/19 11:34:30 yEZ0hIqg0
何でもかんでも初期処理をawakeFromNibに書いて特に不具合もないのですが、
initWithなんたらに書いた方がいいんですかね?

昔はawakeFromNibがなかったからinitWithなんたらで書いてた、
なんて記事を見た記憶もあるのですが。

359:名称未設定
08/07/19 12:53:13 N9OU6Tmk0
>>358
initWith... は nib から目覚めたときには呼ばれないよ。
initWith... は IB でオブジェクトをつくったときに呼ばれていることになってる。

nib につくっておいてない、自分でプログラム内でつくるオブジェクトは initWith を alloc] initWIth... ] でつくりますが。


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