Cocoaはさっぱり!!! version.5

このエントリーをはてなブックマークに追加
1名称未設定
初心者は教えてくれる方への感謝を忘れずに。
上級者も初心者だった頃の気持ちを忘れずに。

前スレ
Cocoaはさっぱり!!! version.4
http://pc7.2ch.net/test/read.cgi/mac/1091927026/
2名称未設定:2005/08/26(金) 01:31:27 ID:O8ONgqRB
2
3名称未設定:2005/08/26(金) 01:44:39 ID:7eX9WAfR
NS乙
4名称未設定:2005/08/26(金) 03:46:18 ID:dv/jtBq4
DLKey それは不思議な呪文
DLkey それは幸せの鍵

すべては小さな言葉、余計な飾りも取り払って!
真実はそこにある

さあ、行こう、次の世界に
みんなが待っている
Next!
5名称未設定:2005/08/26(金) 04:01:49 ID:aJN7y39g
>>4
我が家の家宝にしました。

前スレの大昔のNeXTの記事も補完希望です。
h)ttp://k-kura.net/upload/src/k-kura.net0294.zip
6名称未設定:2005/08/26(金) 04:18:13 ID:dNVtzHI4
dlkeyはメール欄に入れとけよハゲ
7名称未設定:2005/08/26(金) 05:23:41 ID:jcgdwxIZ
Objective-Cの記事あげてくれた人ありがとう。
007.jpgぐらいからワケわかんなくなってきた。
8名称未設定:2005/08/26(金) 05:30:10 ID:jfIcbbox
NeXTCubeでもNeXTでもだめじゃん
おっさんども教えろボケが
糞ジジイなんか台風でずぶぬれのままLaox Mac館開店セールの行列並んでるうちに老衰で死ぬがいい
9名称未設定:2005/08/26(金) 05:33:07 ID:1oEMrOMl
>>8
アヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャッ!
10名称未設定:2005/08/26(金) 05:57:55 ID:mvuPjHE7
何も考えずに全部小文字で入れたら行けました。
ヒントたくさんあったのに、みんな考えすぎなのさ。
11名称未設定:2005/08/26(金) 10:11:41 ID:jfIcbbox
>>10
イケメンありがとうイケメン

>>9
台風一過の炎天下で干からびて氏ね
今のお前はまるでイケショップのようだ
12名称未設定:2005/08/26(金) 22:40:58 ID:TkabOsNW
本家AppleのDownloads->Development Tools->Final Engine
Cocoaフレームワーク丸ごと入ってるよ。。。
あそこって、本当になーんもチェックしとらんのねぇ。。。
13名称未設定:2005/08/26(金) 23:50:20 ID:uUX4FE7s
>>12
ひどいなこりゃw
framework2個ずつ入ってるし、中間ファイルも掃除してないし

・frameworkをプロジェクトに加えるときにコピーする設定で追加してしまった
・ソース公開したいがよく分かっていないのですごいことになってしまった

といったところか
14名称未設定:2005/08/27(土) 05:19:05 ID:mUMYRq0K
macでゲームみたいのを作るにしても
一度win環境のCを通過した方がいいかなあ
グラフィック処理的な事やらの資料が少ないんで
15名称未設定:2005/08/27(土) 09:37:38 ID:eX5kI1fx
まるで別物だし。
16名称未設定:2005/08/27(土) 10:39:49 ID:YQX4gEfO
MacでゲームっていうとOpenGLという選択肢があるんだっけ。それなら
そっち方面で進めていけばいいんじゃないだろうか。やりようによっては
WindowsでもMacでも同じソースでアプリケーションが動くんじゃない?
17名称未設定:2005/08/27(土) 10:46:18 ID:+BQTYCuZ
ゲーム“みたいの”には、
Cg(C for graphics) by NVIDIA の環境を通過した方がいい
18名称未設定:2005/08/28(日) 01:32:53 ID:iNer2KUx
>>16
同じソースかは知らないが、洞窟物語とかwinのゲームが移植されたりはしてる。
19名称未設定:2005/08/28(日) 01:33:31 ID:iNer2KUx
OpenGLっぽいのだとtsumikiとか
20名称未設定:2005/08/28(日) 02:31:00 ID:p5HmDIFB
クロスプラットフォームがいいならSDLなんかもあるわな
21名称未設定:2005/08/30(火) 10:13:31 ID:fUIGdGtO
NSPopupButtonに説明用に選択できない灰色の項目を追加したいのですが、IBでやりかたはありませんか?
いちいちsetEnabled:するしかないでしょうか
選択してすぐなにかをするわけではないのでactionは接続してないです
22名称未設定:2005/08/31(水) 23:10:31 ID:8a4J6d6Q
ヒレガス本で勉強中です。
p.59に、「多くのクラスには自動解放オブジェクトを返す
クラス・メソッドが用意されています。」と書いてあるの
ですが、どのクラス・メソッドが自動解放オブジェクトを
返すのか、どうやって判断すればいいのでしょうか?
23名称未設定:2005/08/31(水) 23:24:01 ID:9VL3Fwjt
自分でallocしてinitあるいはinitWith...で初期化したオブジェクトは解放する必要がある
例:[[NSString alloc] initWithString:@""] ->解放必要

allocしないで「クラス名+なんとか」で確保したオブジェクトは自動解放がかかっている
例:[NSString stringWithString:@""] ->解放不要
24名称未設定:2005/08/31(水) 23:29:04 ID:I+pFKbZm
へー、なるほど。そうだったんだ。
2522:2005/08/31(水) 23:43:14 ID:8a4J6d6Q
>>23 さん、ありがとうございました。
26名称未設定:2005/09/01(木) 00:29:10 ID:hVXpF8x3
第4回
ターゲット/アクションパラダイム(1) - 動的特性を利用したデザインパターン
http://pcweb.mycom.co.jp/column/objc/004/
27名称未設定:2005/09/01(木) 09:02:52 ID:5yyN3fUd
>>25
ヒレガス本にも書いてあったはずだけど?
2822:2005/09/02(金) 07:56:51 ID:6wCubgNX
>>27
すみません、p.59の「releaseに関する規則」に
書いてありました。もっとちゃんと読めばよかった...orz
29magmag:2005/09/02(金) 22:42:37 ID:LSZ7wp0N
現在、ファイルの作成日を変更するアプリを作成しています。
root権限がないと、作成日を変更出来ないファイルもあるので
Authorization APIを使ってroot権限でターミナルコマンドのtouchコマンドを
呼んでいます。
つまり、root権限で 「touch -c -t YYMMDDhhmm.ss filePath」(YYMMDDhhmm.ss
は年月日時分秒の数字の文字列)
を行う作戦です。
プログラムの概要は以下のとおり
const char* arguments[5];

arguments[0] = "-c";
arguments[1] = "-t";
arguments[2] = "YYMMDDhhmm.ss";
arguments[3] = filePath;
arguments[4] = nil;

status = AuthorizationExecuteWithPrivileges (
authorization, "usr/bin/touch", kAuthorizationFlagDefaults,
(const * char *)arguments, nil
);

この処理を行うと、ファイルの最終更新日は変更されても
ファイルの作成日は変更されません。
この方法では作成日の変更は出来ないのでしょうか?
またもっと便利な方法があるのでしょうか?
ご存知の方がいらっしゃれば、教えていただけると幸いです。
宜しくお願いいたします。
30名称未設定:2005/09/02(金) 22:46:57 ID:TVk3PKzE
マルチ乙です。
それと、なんで作成日変更する必要あんの?
31名称未設定:2005/09/02(金) 22:58:31 ID:6KQJHY0p
アリバイ工作とみた
32名称未設定:2005/09/02(金) 23:30:15 ID:XK+0qGLz
たぶん既に作成日変更アプリはある。
あとコマンド使うならSetFile。
んで骨格はむしろAppleScriptでいいだろ。
33名称未設定:2005/09/03(土) 00:11:22 ID:iDUsNNgW
>>29
POSIXにはファイル作成日という概念は無いよ。存在しない物は変えられない。
FSSetCatalogInfoを呼び出すコマンドを作ってAuthorizationExecすべし。
VFSのレイヤまで降りてsetattrlistを使っても出来るけどローレベル過ぎて
お勧めできない。
>>32
SetFileが存在するとは限らない。
34名称未設定:2005/09/03(土) 09:09:39 ID:dzOWQT2l
applescript
35名称未設定:2005/09/03(土) 14:06:54 ID:Djpq5Q+/
>>29
いい加減マルチ止めろ。
SetFile使わない方法は
>>33で答え貰ってるだろ。
36magmag:2005/09/03(土) 14:27:16 ID:ztYNEo2J
>>30>>35
アドバイスありがとうございました。
社内ではMac開発は1人で、納期が明後日ということで
ワラをもすがる気持ちでマルチで質問してしまいました。
申し訳ありませんでした。
37名称未設定:2005/09/03(土) 14:59:23 ID:TSrNTm0a
>>36
まあ、ここは2chだからどうでもいいけど、
他のところにはちゃんと、結果を報告すること。
どのように解決したのか、まで書くのがMLに参加するものの礼儀。


と書いたところで、2度とこんなことろ読まないだろうけどね。

# 最近は ML でも過去ログ読まない(読めない)人ばっかりだから
# 情報が累積されてもあんまり意味ないともいえる。<結果の報告
38名称未設定:2005/09/03(土) 16:13:11 ID:ChC5Z2hs
あらまー。どっかのMLにもポストしてたの。

>>37
freeML使ってるとコマンドで過去ログが取り寄せられなくて
しょぼーん。

>>36
どうでもいいけど範囲指定でアンカーつける時は
>>最初の数字-終わりの数字
っていう風に、半角のマイナスで数字をつないでね。
3933:2005/09/03(土) 16:48:48 ID:8EGU2KHW
>>36
今頃言っても遅いかもしれんが、UFS等にはファイル作成日は無いから作成日に
依存するようなソフトを書いちゃうと特定の環境でしか動かんよ。
社内システムとかで環境限定なら良いけどね。
40名称未設定:2005/09/03(土) 19:14:37 ID:lspJeZxD
>>36
今頃言っても遅いかもしれんが、死ね
41名称未設定:2005/09/03(土) 21:19:48 ID:ztYNEo2J
すみません
42名称未設定:2005/09/03(土) 21:35:18 ID:AW8vxnQg
何度も見たことがあるけど、「死ね」はひどいな。
43名称未設定:2005/09/03(土) 21:48:27 ID:Djpq5Q+/
>>41
こんなトコで謝んなくても良いから、解決したんなら
自己解決した旨マルチ先に報告しといたら?
44名称未設定:2005/09/03(土) 23:02:41 ID:mCkDtPZJ
>>29>>36>>41
おいおい、お前がトロいからMLにもレス付いちゃってるじゃねーか。氏ねよ
45名称未設定:2005/09/03(土) 23:24:01 ID:dxF8MGvu
Sさんはとんだ無駄手間だったな
ちゃんと謝っとけよ
46名称未設定:2005/09/04(日) 01:26:13 ID:GpSJxuFA
 仕事でくむなら、ADCのセレクト以上の会員になって、
ちゃんとしたサポートを受けた方がよいと思う。
47名称未設定:2005/09/04(日) 10:54:04 ID:6ntPK1+f
色々検索しても分からなかったので教えて下さい。
下のサイトなどで HTMLをNSTextViewに貼り付けるという方法が出てますが、
どうしても画像を貼り付けることができません。画像部分が黒いブランクか、紫のアイコン
に化けてしまいます。(絶対アドレスでも相対アドレスでも。)

フォームの要素はコピーされます(RTFDで保存すると画像としてきちんと残る)。
また、NSTextViewに直接画像(または画像付HTML)をコピペすることもできます。

初心者なので肝心なことが抜けてるのでしょうか。。。

ttp://homepage2.nifty.com/hoshi-takanori/cocoa-browser/prog-tips-j.html#textview-html
ttp://cocoa.mamasam.com/COCOADEV/2002/09/2/45884.php
4841:2005/09/04(日) 12:42:59 ID:bFlGYwv8
多くのアドバイスを頂きましてありがとうございました。
MLの方にも書き込みをしたのですが、
以下の方法で、なんとか解決できそうです。

やはり、FSSetCatalogInfoでcreateDateを変更するアプリを
作成し、AuthorizationのAPIを呼び出すことで
ファイルの作成日を変更することができました。

また、AppleScriptの方は作成日を取得出来るけれども
変更は出来ない?と思いましたので、その手法はとりませんでした。

多くの助言をいただきまして、本当にありがとうございました。
49名称未設定:2005/09/04(日) 12:44:25 ID:g4bT+jQQ
>>47
"Graphics Allowed"にチェック入ってます?
5047:2005/09/04(日) 15:40:54 ID:6ntPK1+f
"Graphics Allowed"にチェック、入ってます。

コードは全く同じなので、問題があるとしたらそういうインターフェース関係かな
とは思うのですが……。
51名称未設定:2005/09/04(日) 16:32:55 ID:g4bT+jQQ
問題の解決にはなってないんだけど、10.3以上なら

NSAttributedString *attrStr;
NSDictionary *opt;
NSURL *pageURL;

pageURL = [NSURL URLWithString:@"http://www.apple.com/"];
opt = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:1]
forKey:@"UseWebKit"];

attrStr = [[[NSAttributedString alloc] initWithHTML:[pageURL resourceDataUsingCache:NO]
options:opt
documentAttributes:nil] autorelease];
[[textView textStorage] setAttributedString:attrStr];

こんな感じで逝けますたよ。
5247:2005/09/04(日) 21:02:54 ID:6ntPK1+f
>>51 で出来ました! ありがとうございます!
53名称未設定:2005/09/05(月) 04:16:25 ID:sItclVKD
NSImageViewのインスタンスでinitをオーバーライドしたんですが
どうやらinitが呼ばれていないようなんです。
初期化はどこに書けばいいんでしょうか?
54名称未設定:2005/09/05(月) 07:44:18 ID:wn6eWf9h
>>53
Nibファイルの中でインスタンス化してない?
Nibでインスタンス化するとinitは呼ばれないよ
HMDTに説明があったような気がするから探してみ
55名称未設定:2005/09/05(月) 08:03:01 ID:dhJUTs/m
>>53 >>54
いやinitはもともと呼ばれない。NSViewのサブクラスで呼ばれるのは
- (id)initWithFrame:(NSRect)frameRect
で、Nibで作っても自前のviewでは呼ばれる、ということだったと思う。
56名称未設定:2005/09/05(月) 17:04:28 ID:oB6low5K
>>55
NSImageViewはinitWithFrame呼ばれてなくない?
57名称未設定:2005/09/05(月) 17:33:45 ID:y7tkVTmB
カスタマイズスレでこちらに誘導してくださったので、質問させてください。

XRGのグラフの位置を固定したいのです。ソースコードの書き換えによって
可能だと教わったのですが、こういう難しそうなことには無縁な私には
どうすればいいのかさっぱりです。どなたか教えていただけませんでしょうか。
58名称未設定:2005/09/05(月) 17:42:28 ID:qotM5v+X
まずXcodeをインストールしなさい
Xcodeでぐぐったらどうゲットするのかすぐわかります
無料です
59名称未設定:2005/09/05(月) 17:43:01 ID:wHiGiKVL
>>53-56
file:///Developer/ADC%20Reference%20Library/documentation/Cocoa/Conceptual/LoadingResources/Concepts/NibFileLoaded.html
60名称未設定:2005/09/05(月) 17:45:24 ID:qotM5v+X
やっぱプログラマの人は参考サイト丸ごと落としてるのか
61名称未設定:2005/09/05(月) 18:44:55 ID:VEEI54N4
>>59のことか?

Xcodeをインストールすればあると思うが
62名称未設定:2005/09/05(月) 18:46:58 ID:g0Fwt82K
はあ?なにいってんの
63名称未設定:2005/09/05(月) 18:50:10 ID:sanGz0a4
>>60 の言っていることが分からんのだが。
どういう脈絡で出てきたレスなんだ?
64名称未設定:2005/09/05(月) 18:54:23 ID:1NbhQFXS
>>59をftpのURLと勘違いしたんだろ
65名称未設定:2005/09/05(月) 19:12:18 ID:QXT5uEf5
いや、>>60
「"ADC Reference Library"をADCのサイトからDLしてDeveloperフォルダに入れてるのか」
って言いたいんじゃないのか?
俺、Xcodeインストール済みだけどADC Reference Libraryなんてないし。
66名称未設定:2005/09/05(月) 19:55:20 ID:cgNJOiTi
>>47自己レス。webViewに既に表示されているHTMLを貼り付けるのであれば、下により可能。

[[textView textStorage] setAttributedString:
  [ [[[webView mainFrame] frameView] documentView] attributedString]];

昔より簡単になったけど、初心者向けの資料が少なくて、依然めんどいですね。
67名称未設定:2005/09/05(月) 20:01:52 ID:y7tkVTmB
>>58
入ってます
68名称未設定:2005/09/05(月) 20:14:11 ID:lnd9+U6C
>>65
一緒にインストールされましたが
69名称未設定:2005/09/05(月) 20:24:18 ID:1NbhQFXS
>>65
インストールの際にドキュメント(600MBくらいあるやつ)のチェックを外したんじゃないの?
70名称未設定:2005/09/05(月) 20:29:12 ID:QXT5uEf5
>>68-69
「Documentation」ってフォルダはあるんだけど・・・
インストーラのチェックを外した覚えはないしフォルダ名を変更した覚えもないんだけどな…
71名称未設定:2005/09/05(月) 20:50:16 ID:lnd9+U6C
Xcode Toolsのバージョンによってもフォルダ変わってた鴨
72名称未設定:2005/09/05(月) 20:51:32 ID:1NbhQFXS
うちはDocumentationじゃなくてADC Reference Libraryのフォルダに入ってる
73kantaro:2005/09/09(金) 12:01:32 ID:aLhnSbxa
NSNetService&NSNetServiceBrowserを使ってネットワーク間通信をするのと
NSConnectionを使用してネットワーク間通信する違いってなんでしょう…?

Bonjour(Rendezvous)共有のネットワーク通信については
NSConnectionだけ使用して通信ってのはダメなんでしょうか。

たとえば、以下のようなコードを書いてもBonjour共有では
クライアント・サーバプログラムとして機能しないんでしょうか?

【サーバ】
NSConnection *theConnection = [NSConnection defaultConnection];
[theConnection setRootObject:self];
[theConnection registerName:@"MyServer"];

【クライアント】
id proxy = [
[NSConnection rootProxyForConnectionWithRegisteredName:@"MyServer"
host:@""]
retain];
[proxy setProtocolForProxy:@protocol(MyProtocol)];
[proxy hogeMethod];

初歩的な質問で申し訳ありませんが
ご存知の方、教えて頂けると幸いです。
74kantaro:2005/09/10(土) 11:45:13 ID:x+PdQaP2
昨日の書き込みからずっと調べているのですが、全くわかりません…
レスが無いようですので、すみませんがメーリングリストの方に質問してみます。
75名無しさん@そうだ選挙に行こう:2005/09/10(土) 18:10:28 ID:bG9h+oiH
>>74
レスがないのはあんんたが何をしたいのか意味不明なため
76名無しさん@そうだ選挙に行こう:2005/09/10(土) 18:30:13 ID:pr23wsOa
久しぶりに Macosx-dev-MLで笑わせて貰ったよ。

# シロタン ナイス!
77名無しさん@そうだ選挙に行こう:2005/09/10(土) 20:00:31 ID:AlXPt/Gv
素敵だな
78名無しさん@そうだ選挙に行こう:2005/09/10(土) 20:11:23 ID:CAmFZ1JE
あの人はいつも俺たちの期待を裏切らないよ
79kantaro:2005/09/10(土) 23:28:43 ID:x+PdQaP2
>>76
何がおかしいんですか?
ちゃんと説明してください。
悪意のある書き込みは気分が悪いです。
80名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:31:33 ID:iHwzh/Dy
>>79仕方ないよ、2ちゃんなんだから(´・ω・`)
81名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:34:40 ID:s7dDjXKE
>79
というか、76はメーリングリストの話をしているのだが。
漏れはそのML入ってないから分からんけどおまいさんはそのMLでも同じ質問をして
「シロタン」なる人に何らかの返答をもらったのか?
そうでなければおまいさんの質問と76の発言は何の関係もないぞ。

……で肝心の質問の答えだが漏れには分からぬスマソorz
82名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:34:45 ID:3tUjfFPY
面白いけど、うんざりもする。
83kantaro:2005/09/10(土) 23:44:44 ID:x+PdQaP2
>>81
そうです、返答をもらいました。
彼の返答は、私の勉強不足を暗に嘲笑する箇所もありますが
丁寧なアドバイスに感謝しています。
でもMLのやりとりを見て第三者があざ笑うようなことに
私は気分を害しているのです。
84名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:51:34 ID:s7dDjXKE
>83
ああ、74にMLのこと書いてたな。

じゃ言えることは一つだ。マルチすんなクソが回線切って首(ry
85kantaro:2005/09/11(日) 00:31:49 ID:jSVLcKTb
>>84
別に幼稚で乱暴な発言はいいんですけど、
私はちゃんとMLで質問すると断りを入れていますよね。

断りなくして、MLで質問するならばマルチと言われても
仕方がないと思いますが、ちゃんと断りをいれているのに
何でも一辺倒にマルチというのは、考え方がおかしいんじゃないですか?
86名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:43:28 ID:5/+b/ywe
気持ちはわかるし、あなたは正しいがここは2ちゃんだ。
>>76みたいな発言はスルーしとく、これもまた正しい道。
87名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:45:10 ID:k953pIV3
華麗にスルー
88名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:59:09 ID:aGVeJUQX
質問をスルーしといて良かったと思った
89名無しさん@そうだ選挙に行こう:2005/09/11(日) 04:55:38 ID:T4JSJdNV
自分の行動が見えていない精神病患者が沸いているようだな。
90名無しさん@そうだ選挙に行こう:2005/09/11(日) 16:53:59 ID:1rB+fLmy
主張していることは正しいが、質問はトンチンカン
91名無しさん@そうだ選挙に行こう:2005/09/11(日) 20:11:22 ID:ogbCi3mn
>>83
そうね。
常識人にみえるけど、現時点のプログラムの能力ゼロ。
あのレベルでMLに投稿されるのは、普通は迷惑かな。
気分を害する前に己の無力を恥じて、力がついてから帰ってきて。
92名無しさん@そうだ選挙に行こう:2005/09/11(日) 22:50:47 ID:k953pIV3
MLの趣旨から外れてる訳でもないから
別に迷惑でも無いと思うけどな。
93名無しさん@そうだ選挙に行こう:2005/09/11(日) 22:55:14 ID:NKNWRjr6
>>91
そういう事言ってるからMLが寂れちゃうんだと思う
あそこすごく質問しにくくなったよ
94名称未設定:2005/09/12(月) 10:39:02 ID:fNwRJtU/
>>92
彼の投稿がスルーされてれば迷惑は感じなかったかも。
シロタンの返しが強烈すぎて、うんざりした。

>>93
それもそうだね。
初心者用のMLが別にあるわけでも無いし。
95名称未設定:2005/09/13(火) 11:03:30 ID:wI3Lb/+E
よく見るとこの質問って答えられたんだなあ。

今回の件に関しては、やっぱり最初の質問の段階でたたかれるオーラを出してた
と思うな。何したいのか、というのを言わずにいきなり一部の人にしかわからな
そうな用語を連発してた割に、最後は「初歩的な質問で云々」だし。けっこう
礼儀に気を使ってたと思うけど、逆にそれがいやみったらしさを出してたんじゃ
ないかな。だいたい、Rendezvousなんて使ってない人が大半なのはちょっと
考えればわかるだろうしね。本当に自分で自分のことを「初心者」だと思って
いたのか、ちょっと疑問だ。

質問するなら、まず初心者云々のくだりはいらないし、質問もNSNetService
とかいきなり言わない方がいいと思う。まず何をしたいのかを簡単に説明して
(詳細に説明しなくてもいいけど、読者のほとんどが読めるくらいがいいかな)、
そのあと「Cocoaの分散オブジェクトを使うと、[NSConnection registerName:]
で宣言したサービスを[NSConnection rootProxyForConnectionWithRegisteredName:]
で検索できるようですが、これはBonjourの代わりにならないのでしょうか」
くらいにしとけばよかったかもしれないね。まあなかなか難しくて普段自分も
出来ているとは言えないんだけど。

…もう遅いかな。
96名称未設定:2005/09/13(火) 22:33:11 ID:yAG4+zKG
なげー
97名称未設定:2005/09/13(火) 23:49:16 ID:l/CWVDcc
MLみてない人もいるかもしらんから、答えのほうを勝手にまとめとくな。
・Bonjour(Rendezvous)はそのサービスを提供する/参加する相手を探すための仕組み
・Bonjourの機能をNSNetServiceで利用できる
・個々のアプリケーションレベルの通信は、NSNetServiceは提供しない。相手を見つけるだけ。
 なので、NSConnection(とか)を利用して実装する。

質問に対する回答だけつければ、
「73の目的の実装をするには、NSNetServiceとNSConnectionの両方を利用する必要がある」

まちがいとかあれば指摘よろ。
98名称未設定:2005/09/17(土) 07:59:40 ID:uDPMaqXg
DockExtraとMenuExtraの違いを教えてください
99名称未設定:2005/09/17(土) 13:00:23 ID:w1tGhuwX
つーかMenu Extraの作り方を教えてください。
ステータスバー嫌い。
100名称未設定:2005/09/17(土) 16:01:10 ID:uDPMaqXg
101名称未設定:2005/09/17(土) 16:16:00 ID:w1tGhuwX
>>100
ありがとうございます。
英語苦手だけど頑張って読んでみるよ
102名称未設定:2005/09/17(土) 21:19:50 ID:YK6S1Zbk
ところで、DockExtraって何?
103名称未設定:2005/09/17(土) 21:50:14 ID:iTLvGkoq
>>102
10.3 になって無かったことにされますた。
104名称未設定:2005/09/17(土) 22:06:07 ID:YK6S1Zbk
Thx.
お下がりiBookで10.3から使い始めたもんで・・・。
105名称未設定:2005/09/18(日) 00:47:47 ID:dyLn1tbv
Dockのアプリアイコンを長押し(右クリック)した時に出るメニューの事かと思った。
106名称未設定:2005/09/18(日) 04:24:42 ID:SZiBV1Hi
SystemUIにまだ残ってる>DockExtra
107名称未設定:2005/09/19(月) 11:09:08 ID:53wP7Hnw
 
108monn:2005/09/19(月) 12:17:57 ID:iuxfRZmU
「SafariStand」というSafariのプラグイン
http://hetima.com/safari/stand.html
の説明に、
「Safariの機能を強化するInputManager形式のBundleです」と
書かれているのですが、このInputManager形式のBundleって
ご存知の方いらっしゃいますか?

これってSafari以外にも使えるプラグインの技術なんでしょうか?
109名称未設定:2005/09/19(月) 13:06:45 ID:J0dKOT4z
作者に聞く
110名称未設定:2005/09/19(月) 13:11:02 ID:uvM6vtco
>>108
すべてのCocoaアプリケーションで使える。
ttp://developer.apple.com/documentation/Cocoa/Conceptual/InputManager/
ttp://www.cocoadev.com/index.pl?InputManager
(両方とも英語)

もともとは、かな漢字変換とかのテキスト入力用のモジュールを利用するための仕組み
だったんだけど、この仕組みを応用して、すきなCocoaアプリケーションにローダブル
モジュールをロードさせることができる。
するとどうなるかっていうと、自分の書いたモジュールのコードが対象のアプリに
含まれているかのような動作になる。対象のアプリのソースを自分がもっていなくても、
動作を変えたり、機能を追加したりすることができるわけ。

ただし、対象のアプリを解析しないといけない場合も多いから、たぶんそっちの方が
プラグインをつくることそのものより大変だと思う。

mkino氏のMYCOM PC WEBの連載で扱うみたいなので、そのうち日本語でも読めるはず。
ttp://homepage.mac.com/mkino2/backnumber/2005_08.html#August%2011_1
111110:2005/09/19(月) 13:37:08 ID:uvM6vtco
つづき。InputManagerでメンドイこと。

InputManagerは す べ て のCocoaアプリでロードされてしまう。
捨てるときは、こんな手順でやらないとダメ。
(1)プラグインファイルをInputManagersの外に移動
(2)すべてのCocoaアプリを終了-ログオフするのが手っ取り早い
(3)ゴミ箱に捨てる
プラグインをバージョンアップするときも、ロードされたファイルの上書きはできないので注意。

SafariStandでは、ローダとプラグイン本体に分けることでこれを解決してる。
だからSafariを終了するだけでプラグインの入れ替えができるはず。

同じようなアプローチとしてSIMBLてのがある。
ttp://culater.net/software/SIMBL/SIMBL.php

ソース見られるのでくわしくはコード読んでくれ。
112monn:2005/09/19(月) 15:43:08 ID:iuxfRZmU
>>111
詳しい情報、どうもありがとうございます。
ことえりのようなインプットメソッドを
実現する技術なわけですね。
すべてのCocoaアプリにロードされちゃうのは
痛いですね。
アプリの開発もさることながら、アップデータ等の
パッチを当てるのも工夫が必要みたいですね…。
でも面白そうなので、テストアプリを作成してみようと思います。

情報、どうもありがとうございました。
113名称未設定:2005/09/19(月) 18:34:48 ID:OFjwC4sj
そんなすごいものだったのか。
今一ソフトが揃わないから実感無かった。
114名称未設定:2005/09/19(月) 19:16:40 ID:HF7LqKL5
わざわざ対象を解析した上で本来の仕組みとは全然違う使い方をしてまで
動作に食い込ませる訳だから、そりゃよっぽどの動機が無いと無理だからな。

すごいってか、ある意味セコいやり方だし。
115名称未設定:2005/09/24(土) 10:02:20 ID:lH/FTAvo
最近のiTunes等で採用されているウインドウのスタイルについて
教えてください。

手動でNSWindowを生成する時は、initWithContentRect のstyleMaskに
NSUnifiedTitleAndToolbarWindowMask を設定すればOKそうだんだけど
InterfaceBuilderではどうやって設定すればいいんですか?

InterfaceBuilderとXcodeで開発すると、色々な制限がありそうだけど、
慣れればなんでもできるものなのかなぁ。
InterfaceBuilderからソースコードを生成するツールがあれば最高なのに。
116名称未設定:2005/09/24(土) 11:37:05 ID:xDMCnDHZ
インスペクタ -> Unified title/toolbar look
117名称未設定:2005/09/24(土) 12:45:20 ID:lH/FTAvo
>>116
あちゃー、見逃していました。ありがとうございます。
ちょっと話は変わりますが、
InterfaceBuilderからソースコードを生成するツールを
作ったら使う人いると思う?
118名称未設定:2005/09/24(土) 12:58:58 ID:FK4W1BOd
>>117
絶対いない。
119名称未設定:2005/09/24(土) 14:14:53 ID:lH/FTAvo
>>118
そうなんだー。
Cocoaを理解し易くなると思うけどなぁ。
120名称未設定:2005/09/24(土) 14:41:31 ID:+AM7+tQl
GNUStepでも使えるコードを吐いてくれるなら需要はありそうだけど。
121名称未設定:2005/09/24(土) 14:47:09 ID:FK4W1BOd
>>119
動的結合を重視。

っていうか、例えばボタンの大きさ変えるために毎回ソースを吐かせるの?
それとも、数字がいっぱいのソースとにらめっこするの?
122名称未設定:2005/09/24(土) 15:33:48 ID:lH/FTAvo
>>121
ビュー用のCocoaオブジェクトクラスを自動生成し、
ユーザはそのクラスを継承して実装するって感じ。
InterfaceBuilderでサイズの変更やオブジェクトの追加した時も、
ビュー用のクラスが更新されることになる。
そのビューの値を変更したい時は、サブクラス上で行うから
ビューのクラスが自動更新されても問題は少ない。
例)setAction でクリックイベントの設定もサブクラス上で行う。

自動生成のコードは、
NSWindowの生成から始まって、NSButton等をコードで作成し、
プロパティもコード上で設定するってのはどう?
123名称未設定:2005/09/24(土) 16:15:13 ID:IvQdY87d
カスタムクラスを使うのとどう違うんだろう……
124名称未設定:2005/09/24(土) 16:16:34 ID:8bu7gBQe
>>122
NSTableViewなど個々のviewへの対応、Bindingの対応、
Core Dataの対応、ローカライズの対応。などなど。
恐ろしく労力がいると思います。
125名称未設定:2005/09/24(土) 16:21:12 ID:feF4zG9i
メリットは?
126名称未設定:2005/09/24(土) 16:36:03 ID:EwLqrN1y
>>122
前からIBでサブクラスの読み込み/書き出しは出来るんでは。
これ(Custom Class)とは違うの?

それより、IB上で貼ったNSButtonの内部cellのサブクラス化って簡単にできないの?
127名称未設定:2005/09/24(土) 16:36:04 ID:lH/FTAvo
NSTableView もコードで生成すると、NSScrollViewとの関係が良くわかる
ので様々な応用が可能だと思うよ。InterfaceBuilderだけだと、内部構造
がどのようになっているか理解するのに時間がかかるし。(最初だけかもしれないけど)
Binding部分もコードで書いた方が汎用性を持たせる事も出来るからいいんでは?(規模によるけど)
確かにCoreDataはコードで表現できるのかわからないですね。。。
ローカライズは今のような管理はできないな。。。
でもねー、人のソースを見て動作を追うときにはコードの方がいいなぁ。
128名称未設定:2005/09/24(土) 16:53:15 ID:lH/FTAvo
>>125
メリットはInerfaceBuilderを使わなくても開発できる。(デメリットでもある笑)
(いまでもできるが、InerfaceBuilderから吐かれたソースを流用して画面設計できる)

>>126
同じようなものですけど、InerfaceBuilderで作成したオブジェクトのコードが見える為、
プロパティの設定値などをソースコードで追える。

ん、もしかしておいらはInterfaceBuilderのすばらしさを理解できていないのかな?...



129名称未設定:2005/09/24(土) 16:59:56 ID:0LqM2+fg
もうそんなに頑張らなくても良いよ

思いつくメリットとしてはnibファイルを抜きにすることで
ユーザーにやたらにいじられることが無くなるってことくらいかなあ
別に俺はいじられても全然構わないんだけどね
130名称未設定:2005/09/24(土) 17:02:39 ID:Gfb0gZ2H
学習目的みたいな事ではないのか。
131名称未設定:2005/09/24(土) 17:04:36 ID:IvQdY87d
IBがNSWindowをサブクラス化してその中で
オブジェクトを配置していると勘違いしている悪寒。
132名称未設定:2005/09/24(土) 17:09:44 ID:EwLqrN1y
>>128
>プロパティの設定値などをソースコードで追える

うん、それは思ったことがある。
細かく制御したいときは、IBを使わないでウィンドウ作成からビュー内部まですべてコード
で書くしかないね。
規模にもよるけど、IBは簡単なダイアログくらいにしてさ。
133名称未設定:2005/09/24(土) 18:01:41 ID:lH/FTAvo
>>129
そうかー、今は勝手にいじられるんだよね。
その点、勝手にローカライズしてもられるメリットもあるかも。

>>130
学習にもなると思うよ。
InterfaceBuilderでプロパティを設定しても、そのプロパティを動的に
変更したい時にはメソッドを調べなきゃならないけど、コードが生成
されていればそれを参考にできるしね。

>>131
ちょっと違うけど、そんな感じのものを実現したいんだ。

>>132
だよねー。
UIが複雑なものは、VIEWとCONTROLは自力で書かないと、
バインディングでの制御とコードでの制御がごっちゃになってしまうよね。
134名称未設定:2005/09/25(日) 17:50:18 ID:RHEqGUhb
InerfaceBuilderにソースを吐かせたいとは思わないけど、nibファイルが編集の容易なテキスト形式だったらとは思う。
xmlのように可読性や差分取得に問題のあるフォーマットでは無く、YAMLやDelphiのテキスト形式フォームのような単純な形式で。
135shoei:2005/09/25(日) 17:54:47 ID:zTS4S9nl
PackegeMakerでインストーラーを作成しているんですが、
インストーラー起動直後に、シリアルナンバーを入力する
ダイアログを表示したいのですが、参考となるドキュメントページが
見つかりません。

たぶんスクリプトを書くことになると思うのですが
どうやって自前のシリアルチェックダイアログを
実装すればよいのでしょうか?

ご存知の方いらっしゃいましたら、よろしくお願いします。
136名称未設定:2005/09/25(日) 18:58:25 ID:aDCwdJpc
NSOutlineViewでドラッグ&ドロップやりたいんだけど、
-outlineView:validateDrop:proposedItem:proposedChildIndex
には、NSTableViewの
tableView:validateDrop:proposedRow:proposedDropOperation:
のNSTableViewDropOperationみたいな、列の上にドロップされたか
列の間にドロップされたか判断する情報がないみたい。
これって、他に判断する方法あんの?
137名称未設定:2005/09/25(日) 19:01:43 ID:FuuHMAX1
>>136
列の上だとindexが-1になるけど
それが正しい判断方法なのかは自信が無い
138名称未設定:2005/09/25(日) 19:06:45 ID:cM6LQKOd
>>137
それで合ってるが定数を使うべき
NSOutlineView.h
enum { NSOutlineViewDropOnItemIndex = -1 };
// May be used as a valid childIndex of a drop target item.
//In this case, the drop will happen directly on the target item.
139136:2005/09/25(日) 19:33:55 ID:aDCwdJpc
あ、なるほど。簡単な解決法なんだね。ありがとう>>137>>138
140名称未設定:2005/09/25(日) 19:51:16 ID:FuuHMAX1
>>138
俺も勉強になった
サンクス
141名称未設定:2005/09/25(日) 20:00:20 ID:kX71q7rY
>>135
Tiger以降ならInstaller plugin作る。
142名称未設定:2005/09/25(日) 20:09:40 ID:mdOzyuDS
>>119

いっとくけど遅くなるよ。

Nib ファイルには既にIBでの設定値で生成されたボタンやウィンドウといったオブジェクトが
アーカイブされているので、アプリの起動時(Nibのロード時)はそれを単にメモリに展開して
いるだけ。ソースコードにしたらアプリの起動時に毎回毎回初期化処理から全部やらないけ
なくなる。独自の View (==UI)を作りたい場合も、そのためにカスタムビューがあるのは
>>123 の指摘通り。

Cocoa ってもともと 68040 の NeXT で動いてたフレームワークだから、実はそういった
効率に関してはかなり気をつかってるのよね。

>> 128

Nib ディレクトリの下に3つファイルがあるけど、そのうち info.nibを消すと IB で編集が
できなくなるけど、アプリの実行には問題ない状態になる。詳しくは Omniの奴らが作って
るどれかアプリの中を見てみれ。奴らはそうやって IB でいじられないように細工している
はずだから。
143名称未設定:2005/09/25(日) 20:52:40 ID:kX71q7rY
>>142
Omni製品、確かにinfo.nib無かった。
でも、編集出来るよ?
OmniGraffle 2.2。(古
144135:2005/09/25(日) 21:31:59 ID:zTS4S9nl
>>141
Tiger以降というのは、インストーラを開発する環境がTiger以降ですか?
それとも、Installer PlugInを使用して出来上がるインストーラが
Tiger以降でしか使えないってことですか?
すいませんがよろしくお願いします。
145名称未設定:2005/09/25(日) 21:53:28 ID:zCBej00i
す、すいません。
ここの板の高度な会話の感じを汚してしまうようで誠に申し訳ないのですが、
Tiger付属の、Automator.appの、
「Web ページからテキストを取得」
ってあるではないですか、あれってどんな処理を行っているのですか?
昔、WebKitを使って取得したWEBページから、テキストを抽出しようとして、
見渡してみたところ、一発でできるものがなくて(不勉強だったら申し訳ありません)、
仕方がないので、NSTask・NSPipeでPHP使って、タグを除去する、という処理を書いたのですが、
ひょっとしたら、一発で「Web ページからテキストを取得」ってできてしまうのですか?
これってTiger以降? それとも昔から?
不勉強だったら申し訳ありませんが、どうかご教授願えないでしょうか?
どうか宜しくお願い致します。
146名称未設定:2005/09/25(日) 22:00:31 ID:FuuHMAX1
Automatorがどうだかは知らないけど
[[[NSAttributedString alloc] initWithHTML:htmlData documentAttributes:nil] string]
とか
147名称未設定:2005/09/25(日) 22:58:23 ID:kX71q7rY
>>144
多分だけど、Installer Plugin使ったら
開発、使用共にTiger以降。

10.2、10.3サポートしたいなら
PackageMakerヤメてVISE使うとか
自作した方が早いと思うよ。
148147:2005/09/25(日) 23:00:05 ID:kX71q7rY
149144:2005/09/26(月) 00:08:07 ID:H5twD5V9
>>147-148
う〜ん、そうですかぁ…
10.3以前はサポート外ですか。
残念!
情報ありがとうございました。
150名称未設定:2005/09/26(月) 19:11:25 ID:CajwKyrB
Xcode2.1をDLしたのですが、
インスト画面で英語しか選択出来ませんがこれインストしたら
アプリが英語表記しか出来なくなるんでしょか?
151名称未設定:2005/09/26(月) 19:47:58 ID:zK0a6h3m
Xcode自体は英語のみっぽい
でもアプリの日本語へのローカライズは可能
152名称未設定:2005/09/26(月) 22:31:13 ID:/wJSmjQv
nibファイルって言語毎に作り直さないといけないんだよね。
レイアウトの関係で文字だけを切り替えるわけにはいかない
かもしれないけど、もう少しどうにかならないかな。
一つのオブジェクトに、複数の言語を設定できるようにするとかさ。
レイアウトを変更したい時には、言語毎にオフセット値を持つとかさ。
153名称未設定:2005/09/27(火) 08:47:15 ID:iMIhMFsZ
>>152
そういうソフトがあるよ。
AppleGlot とか iLocalize とか。
まあ、レイアウトは手で直さないといけないけど。
154名称未設定:2005/09/27(火) 10:39:44 ID:RNZlfd2q
レイアウトし直さなくてもいい部分もあるんだから、stringsとそのキーを指定できるようにしといて欲しい
155名称未設定:2005/09/27(火) 11:46:46 ID:Dv58d4VH
【Universal Binaryの導入】にある

「たとえば、インテルベースのMacintoshでは、nilへ送られるObjective-Cのメッセージは、floatまたはdoubleとして型指定された戻り値として無意味な値を返します。PowerPCベースのMacintoshでは、これらのメッセージは0.0を返します。」

つうのは、nilにメッセージ送ってもnilにならないと言う事?
[[[ClassName alloc] init] autorelease]はこれからはするなってことかなあ
156名称未設定:2005/09/27(火) 13:25:54 ID:bHu7sgFp
id object = nil;

if ([object hoge] == 0.0) {
...
}

こんなコードを書いてる奴は気をつけろってことじゃないのか。
157名称未設定:2005/09/27(火) 13:30:36 ID:tw+ncVcQ
これヤバイかも
if([aString isEqualToString:bString])
だとaStringがnilでもtrueになっちゃうわけだよな
158名称未設定:2005/09/27(火) 13:48:33 ID:RNZlfd2q
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_3.html

> メッセージがオブジェクトを返すかぎり、nil に対するメッセージも有効です。その場合、nil に送信された
> メッセージには nil が返されます。nil に送信されたメッセージがオブジェクト以外のものを返す場合、
> 戻り値は未定義です。

ってあるから、>>157は今まででも真になる可能性はあったんでしょ?

で、インテルベースだと、オブジェクトを返す場合でもnilじゃなくなるってこと?
159名称未設定:2005/09/27(火) 14:06:52 ID:iMIhMFsZ
まず1点
http://developer.apple.com/macosx/adoptinguniversalbinaries.html
原文にはnilがどうこうと言う一文がない。

2点目
Objective-C の言語規約として
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_3.html#//apple_ref/doc/uid/20001424/TPXREF104
「メッセージがオブジェクトを返すかぎり、nil に対するメッセージも有効です。
その場合、nil に送信されたメッセージには nil が返されます。
nil に送信されたメッセージがオブジェクト以外のものを返す場合、戻り値は未定義です。」
(改行位置変更)

となってるから、
「""戻り値の型が float や double である場合は、"" floatまたはdoubleとして型指定された戻り値として無意味な値を返します」
で有れば言語規約上は問題なし。

本当にどうなるかは、Apple に直接聞くしかない。
無意味な値として、いつも0以外を返すのであれば Intel マシン借りてる人に聞けば分かるかも。
でも、無意味な値っていつ、なにが返されるかは、作った本人すら分からない可能性も高い。
160155:2005/09/27(火) 14:21:30 ID:Dv58d4VH
原文のUniversal Binary Programming Guidelinesのほうには

On a Macintosh that uses an Intel microprocessor, Objective-C messages sent to nil return garbage for return values that are typed as float or double. On a PowerPC Macintosh, these messages often return 0.0.

On a Macintosh that uses an Intel microprocessor, Objective-C messages sent to nil also return garbage for return values that are types as a small struct. On a PowerPC Macintosh, these messages often fill in the fields of the struct with zeros.

ってあるからこりゃ私の早とちりですね。
floatとかdoubleの戻り値を持つメッセージの場合、PPCだと0だけどIntelだと無意味な何かだよ、ってだけかな。
戻り値がidなら今までどおりnilでしょう。
161名称未設定:2005/09/27(火) 15:07:53 ID:iMIhMFsZ
そっちに有ったのか。
わざわざ、そのものの原文探しちゃったよ。

まあ、どっちにしても問題をはらんでることは確かだよね。

-[NSNumber floatValue] も 「nil だったら 0 が返るから...」 は通用しないって事だよね。
162名称未設定:2005/09/27(火) 15:12:29 ID:0RVTVED7
NSTextFieldでインプットメソッドの使用を不可、もしくは
ScriptをRomanにしたいのですがどのようにしたらよいのでしょうか?

例:システム環境設定→ネットワーク→TCP/IPの各テキストフィールド

ここまで調べた:
・NSInputManager cycleToNextInputLanguage: はもう使うなと書かれている。
・Carbon使っちゃう?→KeyScript(smKeyRoman);
163名称未設定:2005/09/27(火) 17:56:50 ID:QYZLbtCb
今でもi86とPPCではprintf("%f\n", (void *)0)とかの結果は違うので、
0.0だと仮定したコード書いちゃだめですよということだと思うにょ。
164名称未設定:2005/09/27(火) 18:20:42 ID:lNnOW8Is
よし、これからの合い言葉。
「ニルポ」に注意。
リトルエンディアンだと、32/64ビットポインタの場合、ワードが確定出来ず
不正値になるってこと?
いや、俺が言って事も意味不明だ。
165名称未設定:2005/09/27(火) 19:20:11 ID:L541UBUq
ニルされたらガッするんですか
166名称未設定:2005/09/27(火) 20:08:14 ID:Dv58d4VH
nilにメッセージを送ったときの挙動についてこんなページを見つけたけど
よく分からない・・・
ttp://ridiculousfish.com/blog/?p=14
167名称未設定:2005/09/27(火) 20:26:49 ID:tw+ncVcQ0
結論は最後のTypes, types, typesの部分だね

ints, shorts, charsは常に0が返る
long longだと上位32bitは0で下位32bitは送ったセレクタと等しい値が返る
floatだと送った時点でfloating pointレジスタに入っていた値がそのまま返ってくる
構造体の時は何も返ってこない(0ではなく、代入しても元々の値が維持される)

って感じでしょうか?
間違ってたら訂正よろしく
168名称未設定:2005/09/27(火) 20:36:10 ID:elW4Iw3C0
フォルダをドロップで扱えるソフトを10.3で作ったのですが
10.4にしたら受け付けなくなりました。
フォルダの拡張子とかが変わったのでしょうか?
169名称未設定:2005/09/27(火) 20:50:51 ID:bDxVuoC40
>>166のページの最後のコメントはマジ?
なわけないか・・・。
170名称未設定:2005/09/27(火) 20:54:08 ID:bDxVuoC40
忘れ物















ニルポ
171名称未設定:2005/09/27(火) 20:55:28 ID:FjSsvUuE0
>>167
そんな感じ。
PPC の場合はね。

PPC の場合は、r3 にC関数の第一引数が入れられ、
また long long を除く整数戻り値も r3 に入れられる。
id 型はこれにあたる。

で、C関数 objc_msgSend の第一引数はメソッド呼び出しの隠し引数 self のことだ。
で、objc_msgSend はr3 が0なら"何もせずに"呼び出し元に戻る。
つまり、[nil message] なら r3 は 0 のまま。
戻り値は r3 に入ってるのだから 0。
つまり、「id 型なら偶然だがnilが返る」ってことらしい。

が、これだと戻り値の型が long long でも float,doubleでも
とにかく0を返すって言う Apple のドキュメントと食い違いがあるから、
Apple は公開してるアセンブラとは違うコードを使ってるのかもね。

ってかんじかな。
単に r4 と FPR1 に0をロードしてるだけかもしれないが。

>169
マジだとすると、言語規約から外れちゃうよ。
でも、予期しないバグが発生する可能性はあるよね。戻り値の型によるけど。
172名称未設定:2005/09/27(火) 21:02:07 ID:RNZlfd2q0
そもそも、ゼロ以外のポインタがオブジェクトの参照として有効かどうかって調べる方法あるの?
173名称未設定:2005/09/27(火) 21:29:16 ID:FjSsvUuE0
>>172
ないんじゃないかな?

Apple の関連ドキュメントのどこにもlong long に言及した部分がないのが気になるが、
これからは、整数値(ポインタやBOOLを含む)以外を返すメッセージを送る場合は、
センダが nil かどうかをチェックするようにしないとだめだね。

if([aString isEqualToString:bString])
は OK だね。

if ([object hoge] == 0.0) {

if ( !object || [object hoge] == 0.0) {
かな?
174名称未設定:2005/09/27(火) 21:30:30 ID:bDxVuoC40
>>171
そうだよね。規約モロはずれ。
nil targeted actionも出来なくなるし。

>>172
所詮ポインタだから無いんでないの?
アラインメントとか見てもアテに出来ないし。
175名称未設定:2005/09/27(火) 22:07:36 ID:C1OoRUCH0
>>162
テキストフォーマッタではダメか
176名称未設定:2005/09/28(水) 03:01:50 ID:SdMG7swK
>>174
>nil targeted actionも出来なくなるし。

いや、それは勘違いしてる。
terget が nil の時は NSApplication が最初のターゲットを KeyWidnow の FirstResponder にするだけだから。
つまり、NSApplication が nil チェックをしてるってことね。
177名称未設定:2005/09/28(水) 11:30:14 ID:1+l/Zl1R
>>170
ヴァッ
178名称未設定:2005/09/28(水) 19:46:38 ID:7kcYby7p
>>176
指摘サンクス。
179名称未設定:2005/09/28(水) 23:57:16 ID:jOLcS53p
ObjectiveCって無名クラスって使えないんだよね。
うーむ、Cocoa-Javaがいいかもなぁ。
例えば、テキストフィールドで編集を開始したイベント取得したい時なんて
NSTextField xxx = new NSTextField(ちょめちょめ){
public void textDidBeginEditing(NSNotification n) {
ちょめちょめって、インスタンス時にオーアライドできるから楽だよね。
}
};
って出来るんだよね。ちょっとしたプログラムを組む時にはCocoa-Javaかな。
180名称未設定:2005/09/29(木) 02:53:03 ID:BdrLCl4Z
その用途ではふつー subclass なんか作らない
181名称未設定:2005/09/29(木) 12:46:08 ID:rLqChy/U
え?
182名称未設定:2005/09/29(木) 12:54:03 ID:0CMkl4qE
少なくとも「テキストフィールドで編集を開始したイベント取得したい時」
はNSTextFieldのdelegateで受け取ればいいじゃん、と180は言いたいのだと思われ
まあ一般的にCocoaフレームワークではそういう場合delegationだと思う。
183名称未設定:2005/09/29(木) 14:27:10 ID:NlsilCig
オーアライドに突っ込んであげない優しさ。
184名称未設定:2005/09/29(木) 18:03:55 ID:LkVwOlHE
>>180,182
例題が悪かったけど、こんな場合は便利かな。
NSView xxx = new NSView (ちょめちょめ){
public boolean isFlipped(){
return true;
}
};
なんてのはちょとした時、便利でしょう。
185名称未設定:2005/09/29(木) 21:28:33 ID:YVtu8j8H
ちょっとしたことでサブクラスを作るものなのか?
186名称未設定:2005/09/29(木) 21:31:03 ID:nPfLkse6
>>184
本当にそれだけなら便利かもしれないけど、
flipするなら描画ルーチンも必要なわけで結局サブクラス化するんじゃないのかな?
187名称未設定:2005/09/29(木) 22:43:10 ID:LkVwOlHE
>>186
そんな時は、
NSView xxx = new NSView (ちょめちょめ){
public boolean isFlipped(){
return true;
}
public void drawRect(ちょめ){
 フリップした描画
 インスタンス生成元のインスタンス変数にアクセスできるので
 サブクラスにするより便利 
}
};
まあ、ちゃんとしたプログラムを組む時にはお奨めしないけど、
ちょっとしたプログラムはCocoa-Javaが楽だと思いますし、
Cocoaの勉強に最適でしょう。
188名称未設定:2005/09/29(木) 22:47:41 ID:NlsilCig
下手にJavaを使ってるとdelegationやinfomal protocolの概念で躓く。
カテゴリによるadditionになるともう何がなんやら。
189名称未設定:2005/09/29(木) 22:56:00 ID:LkVwOlHE
こんな感じのコードに慣れてしまうのは良くないかな・・・。
class Chome {
 private boolean hoge = true;
 void test(){
  NSView xxx = new NSView (ちょめちょめ){
   public boolean isFlipped(){
    return hoge;
   }
   public void drawRect(ちょめ){
    fliptest();
   }
  };
  xxx.setHidden(true);
 }
 void fliptest(){
  ちょめ描画
 }
}
190名称未設定:2005/09/29(木) 23:02:00 ID:hyijlZFo
ちょめちょめひつこい
191名称未設定:2005/09/29(木) 23:02:46 ID:LkVwOlHE
>>188
Javaなんだから、アスペクト指向に向かうのも良いかもよ。
Cocoa+Aspectjは面白いかもしれないなぁ。
192名称未設定:2005/09/29(木) 23:27:01 ID:rLqChy/U
インフォーマルプロトコルとは何ぞや
193名称未設定:2005/09/30(金) 01:02:14 ID:0dAjBon9
UniversalBinaryに移行汁で
Apple必死だな。
194名称未設定:2005/09/30(金) 01:42:00 ID:tjHlMRyc
UniversalBinaryは、PPCとIntelの両環境でテストしなきゃならない
のは辛いよね。
銀行なんかの大規模業務アプリ屋は心配で堪らないだろうなぁ。
195名無しさん@Vim%Chalice:2005/09/30(金) 01:58:29 ID:pCvhfApU
Mac採用してないのでは?
Winでテストも大変だろうが...
........見て見ぬふり & 落ちたら or 漏れたら謝って再起動
196名称未設定:2005/09/30(金) 03:40:35 ID:kgyh+0XM
あおぞら銀行ではTigerを導入したって記事をなんかで読んだよ
197名称未設定:2005/09/30(金) 10:57:18 ID:6fFCLSmy
198名称未設定:2005/09/30(金) 11:37:11 ID:jogJWkK0
>>192
NSObjectのカテゴリ。ただし宣言のみ。

普通のプロトコルと違うのは、メソッドの実装が任意であること、
特にプロトコル準拠を宣言する必要が無いこと。
要はインフォーマルプロトコルと書いてあったら、そのうち必要なメソッドだけ実装すればいい。
199名称未設定:2005/09/30(金) 11:49:46 ID:NlEp7Tfh
>>198
NSObjectに限らないのでは?
NSTableViewのdatasourceなんかもインフォーマルプロトコルでしょ
200名称未設定:2005/09/30(金) 11:52:27 ID:9YKzaj4Q
>>199
宣言をよく見ようね。
201名称未設定:2005/09/30(金) 13:01:26 ID:NlEp7Tfh
>>200
私が間違っておりましたorz
202名称未設定:2005/09/30(金) 21:23:57 ID:+aKlEtNd
そのいさぎよさ天晴なり。
203名称未設定:2005/10/03(月) 19:50:00 ID:rMxDipeG
OOMORI.COMのCocoaリファレンスは、しばらく休むそうだ
英語の理解出来ないオレは、これからどうやってCocoaのAPI調べりゃいいんだい。
204名称未設定:2005/10/03(月) 19:53:14 ID:fR8uYQKA
205名称未設定:2005/10/03(月) 20:08:57 ID:JW3SIHdf
早くxcode2に対応した本、どんどんでないかな?
206名称未設定:2005/10/04(火) 00:41:06 ID:rapMPQmE
"clearColor"色で1ドットだけ打ちたいんですけど、どうすればいいんでしょうか?
207酔っ払い:2005/10/04(火) 01:40:39 ID:u7hI42Gw
NSAutoreleasePoolってreleaseした時点でメモリ開放処理が流れるんですか?
それとも、JavaのGC見たいに処理の合間に開放されるのかな。
思うんですけど、ObjectiveCって何故DefaultでNSAutoreleasePool状態
じゃないんでしょうかねぇ。
あ、ObjectiveCとCocoaが別の仕様だからか。
他の用途でObjcなんて使わないのだから、MS見たいに、
独自にObjectiveCを拡張すれば良いのにねぇ。
208名称未設定:2005/10/04(火) 07:03:16 ID:rcIoXzVW
>>206
RGBAカラースペースで0,0,0,1かなんか指定すればいいんでない?
209名称未設定:2005/10/04(火) 09:02:40 ID:mZXJuoSh
>>207
Objective-C はすべて Apple のものだから、
独自拡張にはならないと思うな。
210名称未設定:2005/10/04(火) 14:50:23 ID:rapMPQmE
>>208
色というか、NSFrameRectとかNSBezierPathとかで1ドットだけ打てないんです。
アンチエイリアスを解除するとNSBezierPathでは他色なら1ドット打てるように
なったのですが、clearColorは打てません。どうしたらいいんでしょうか…
211名称未設定:2005/10/04(火) 15:42:37 ID:Mp+qaf1F
>>209
BitmapImageRepを取得してsetPixel:atX:y:かな?
やったことないから知らんが
212madom:2005/10/04(火) 17:07:20 ID:bpNFwQZO
リンクエラーについての質問です。
あるライブラリ(libHoge.a)をリンクしてビルドすると
以下のようなリンクエラーが表示されました。

libHoge.a (__.SYMDEF) bad magic number (not a Mach-O file)

このエラーはどういったときに表示されるのでしょうか?
libHoge.aが壊れているのでしょうか?
213名称未設定:2005/10/04(火) 17:13:54 ID:rapMPQmE
>>211
試してみたところ、やはり他色と違ってclearColorでは打てませんでした。
当分2ドット四方のRectでごまかしますorz
214名称未設定:2005/10/04(火) 17:33:02 ID:gHo/gRSx
>>212
そのlibHoge.aの出所はどこだね
まさかlinuxとか言わないよな
215madom:2005/10/05(水) 11:40:45 ID:LKgzzNnT
>>214
linuxではないんですよねぇ…。
MacOS10.4のgcc4.0でメイクしてつくったものなんですよね。

ADCに聞いてみようかなぁ。

そういえばADCに質問するのって、セレクト会員になんなきゃ
だめなんでしたっけ?
質問回数って制限あるのかなぁ。
216名称未設定:2005/10/06(木) 00:20:07 ID:3Bf5jS8G
ADCってセレクト会員だと年2回質問できるんだっけなぁ?
217ビギナー:2005/10/06(木) 21:01:40 ID:Qego5aYD
オープンパネルを使ってデータの取得はでき、NSTextFieldに
そのパスを表示する事はできました。次はNSTextFieldに書き
込まれているファイルパスからデータを読み込みたいのですが
どのようにすれば良いのでしょう?
218名称未設定:2005/10/06(木) 21:54:27 ID:XSfIHXVw
NSData
219ビギナー:2005/10/06(木) 22:45:34 ID:sTaXhRfJ
NSTextFieldに書き込まれている文字列はNSDataから取得できるんですか?
220名称未設定:2005/10/06(木) 22:57:48 ID:XSfIHXVw
テキストフィールドからNSStringを取り出す所から教えろと言ってるのか?

[NSData dataWithContentsOfFile:[textField stringValue]]
221名称未設定:2005/10/06(木) 22:57:58 ID:f2AFE2CU
釣りのような気がするが一応

IBOutlet NSTextField *textField;

NSData *data=[NSData dataWithContentsOfFile:[textField stringValue]];
222ビギナー:2005/10/06(木) 23:12:33 ID:sTaXhRfJ
できました!
本当にありがとうございます!!
223名称未設定:2005/10/09(日) 01:15:46 ID:VifMOHpY
>>215

質問券は1件いくらで売っていますからオンラインでも買えば質問できますよ
224名称未設定:2005/10/09(日) 15:38:15 ID:Sl+OcasQ
アプリケーションがユニバーサルバイナリかどうかを調べる方法ってありますか?
Finder上からだと判別できないような気がするんだけど
225名称未設定:2005/10/09(日) 16:14:19 ID:c2hXHgcu
パッケージを開く
226215:2005/10/09(日) 16:21:46 ID:2mOBjG+m
>>223
すいません。
その質問券が売られているアップルのサイトはどこにあるのでしょうか?
教えていただけませんでしょうか。
227名称未設定:2005/10/09(日) 16:56:10 ID:sbsTi7+P
ADCのメンバーサイト内でお買い物汁
228名称未設定:2005/10/09(日) 17:00:00 ID:og4eKd17
>>224
Terminalで、fileこまんど。
229名称未設定:2005/10/09(日) 17:30:08 ID:Sl+OcasQ
>>225
パッケージを開いただけではわからないす
「Unix実行ファイル」のバイナリが一個あるだけなんで

>>228
おおー、サンクスです
ちゃんと調べられました
230fogee:2005/10/10(月) 18:46:39 ID:ofCvrgK0
Xcode2.0で作成したプロジェクトを
Xcode2.1で開き直しました。

そうすると、Xcode2.1からプロジェクトを実行すると
dylibが見つからず、実行出来なくなりました。

ためしに、アプリと同じ階層にdylibを移動させると
起動出来るようになったのですが、
Xcode2.1はこういうものなのでしょうか?

以前は、以下の場所
/Users/MyName(ユーザ名)/.MacOSX/environment.plist
のplistファイルに
環境変数DYLD_LIBRARY_PATHの値(パス)を
dylibが存在するパスに指定することで
うまく起動できていました。

こういった症状についてご存知の方がいらっしゃいましたら
ご教授いただけると幸いです。
宜しくお願いいたします。
231名称未設定:2005/10/10(月) 19:01:30 ID:a5u4cm/P
Xcode スレを紹介しようと思ったら、マルチだもんなぁ…
232名称未設定:2005/10/10(月) 22:52:49 ID:QWOf/2b4
わざわざageているところからしても、真面目に返答する必要ないだろ
233名称未設定:2005/10/10(月) 22:54:36 ID:iFiaPdcB
いや質問や意見の提起はageが普通だろう
234名称未設定:2005/10/10(月) 23:01:21 ID:ESTxXp2I
いずれにしろマルチは(ry
235名称未設定:2005/10/10(月) 23:08:10 ID:iFiaPdcB
まあそうね
236名称未設定:2005/10/10(月) 23:11:36 ID:eU8hRm+U
とても詳しく書いていながら、最も重要である
見つからない dylib の詳細が
何ら書かれていないのはかなり秀逸。
237名称未設定:2005/10/11(火) 00:43:25 ID:nLemRq/h
あーもうドキュメントベースアプリよくわかんねー^^
Javaと違ってウインドウをほいほい出すわけにはいかんのね。
どうもnibとウインドウコントローラの扱いかたで混乱しているようだ。

HMDTとヒレガスたん読んでればそのうち自由自在になりますか?
238名称未設定:2005/10/11(火) 00:46:25 ID:exDs3sux
>>237
http://developer.apple.com/ja/documentation/japanese.html

ここの「ドキュメントベースアプリケーション入門 」もどうぞ。
239fooges:2005/10/11(火) 01:00:24 ID:ETf75PLc
マルチ本当にすいません。
本当にせっぱ詰まって
社内で質問する人もいなくて、
藁にもすがる思いで掲示板に書き込んでしまいました。
もう後がないんです。
助けてください。
240名称未設定:2005/10/11(火) 01:13:42 ID:yxYn0s/u
コードからNSTokenFieldからstringを取り出すのはどうすればいいでしょうか。
普通にクリップボードにコピーすると、テキストフィールドのように文字列としてコピーされますが、
コードからもそうしたいのです。
241名称未設定:2005/10/11(火) 02:43:47 ID:sOJyvYWh
俺もTokenFieldの編集中の挙動をいじりたいんだけど、
どのレベルでいじればいいのかわかりません。
242名称未設定:2005/10/11(火) 02:47:48 ID:QN0vvWNd
>>239
とりあえずスレ違いっぽいからXcodeスレに戻って聞こうや
http://pc7.2ch.net/test/read.cgi/mac/1124761121/
243名称未設定:2005/10/11(火) 03:45:45 ID:nLemRq/h
>>238
?ォクス

数時間勉強と試行錯誤を繰り返して
ようやっと普通のアプリではウインドウほいほい出せるようになった。
これなら明日にはドキュメントベースも制覇かな・・・?
244名称未設定:2005/10/12(水) 05:46:50 ID:bt5FiXM4
ttp://pc7.2ch.net/mac/subject.txt(SJIS、容量:40KB)
これをローカルに落として、読み込んでもコンソールにnullが返ってくるんですが。。

>NSData *data = [NSData dataWithContentsOfFile:@"~/subject.txt"];
>NSString *str = [[[NSString alloc] initWithData:data encoding:NSShiftJISStringEncoding] autorelease];
>NSLog(@"%@", str);


ttp://pc7.2ch.net/mac/dat/1124986925.dat(SJIS?、容量:68KB)
ttp://pc7.2ch.net/mac/dat/1088457299.dat(SJIS?、容量:156KB)

スレのdatの場合、同じテキストファイル(.datだけどDLすると.txtが自動的に付く;文字コードも多分同じSJIS)なのに何故かちゃんと内容が返ってくる。
以前どこかのスレで見た、「stringWithContentsOfFile: は100KB超えるとエンコーディングに失敗する(nilが返る)」というのには当てはまらない。
何か原因があるのでしょうか。
245名称未設定:2005/10/12(水) 09:30:18 ID:tw/06kDg
>>244
私が小耳に挟んだ情報によると、S-JISでも機種依存文字を含んでいると失敗するのだそうです。datでもtxtでも同様です。
確かに既存のMac用2chブラウザのソースコードを見てみると、NSDataの段階で問題のある部分をちょこちょこと変換してからNSStringに直しているようです。
246名称未設定:2005/10/12(水) 10:08:01 ID:1KU3eCK4
S-JISと言っても「日本語(Mac OS)」と、そうじゃないのがあるという事かな。
247名称未設定:2005/10/12(水) 10:32:57 ID:n8/uknru
画像をEPSで保存するにはどうしたらいいでしょうか。
248名称未設定:2005/10/12(水) 11:08:43 ID:+q7HVZVR
>>245
CoreFoundationのCFStringだと同じSJISでも
ShiftJISとMacJapaneseとDosJapaneseにエンコーディングが分かれてるんだよね
このあたりを使い分ければできるのかも
249名称未設定:2005/10/12(水) 13:45:44 ID:bt5FiXM4
1071970479.dat<>?ヤ?ヤ?ヤ Back to 9  ?ヤ?ヤ?ヤ (572)

どうやらこの矢印が原因っぽいです。ここを境に読めなくなります。
NSDataの段階で対処するというのをやってみようと思います。
ありがとうございました。
250名称未設定:2005/10/13(木) 00:48:15 ID:LpsyTZEj
>>247
俺には分からん
251名称未設定:2005/10/13(木) 22:00:54 ID:a+Zhfv1e
Photoshopを買えばいいと思うよ
252名称未設定:2005/10/13(木) 23:25:30 ID:OuY9JXfH
>>247
ToyViewerのImageSave.mあたり
253名称未設定:2005/10/14(金) 23:21:36 ID:ZrQR8FKq
セーブパネルで複数のフォーマットがあるときの拡張子の設定てどうすれば?
[savePanel setRequiredFileType:@" "];
を各フォーマットに書いても無視されます。
254名称未設定:2005/10/14(金) 23:42:57 ID:DabR9XmW
setAllowedFileTypes: を使えば?
10.3 以降だが。
255名称未設定:2005/10/15(土) 01:14:25 ID:mzSItqMQ
GeekToolとかStattooとか、Exposeに反応しないウインドウってどうやって作ればいいのだろうか。
GeekToolのソース見ても全然わけわかめ
256名称未設定:2005/10/19(水) 20:55:48 ID:XwSbdGKn
Cocoa初心者です。
当たり前な事なのかもしれないけどメモリ管理について質問です。
Aオブジェクト→Bオブジェクト→Cオブジェクト
という感じに参照が行われている時、突然Aオブジェクトがreleaseされて
参照カウンタが0になった場合、BCオブジェクトはリークしますよね?
もしリークするのなら、メモリ管理は通常のCやC++と殆ど変わらない
(プログラマが意識する度合いが)ような気がします。

凝ったアプリケーションの場合、メインイベントループ内の
NSAutoReleasePoolは別スレッドの事を考えると結果的に使えない
(使わない状態を維持したほうが良い)ような気がしますし、
全体を通してメモリ管理を統一しないと物凄く危険な香りがするの
ですが実際にはどうなのでしょう?
ご教示お願いします。
257名称未設定:2005/10/19(水) 21:00:41 ID:LY9vDVeL BE:131142454-#
>>256
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/index.html

これをよく読むこと。
レポートの再提出は一週間以内とする。
258名称未設定:2005/10/19(水) 21:05:02 ID:7FvKmTvP
全体として、initなりretainなりしたら自分でreleaseしろと言うポリシーになってますが。
259名称未設定:2005/10/19(水) 21:06:10 ID:XwSbdGKn
日本語ドキュメントあったんだ。ありがとう。
読んでから答えを出します。
字がちっちゃくてめんどいなぁ(笑)
260名称未設定:2005/10/19(水) 21:45:57 ID:gzbjjMy4
自分(この場合オブジェクト)が参照している(retain = 保持している)オブジェクトに関しては
自分がdeallocされるときにreleaseすべし。ということなんです。
だから質問の例で行くと、Aオブジェクトは自分のretainしているBに関して責任を持つ。
BはCに関して責任を持つ。それだけです。

NSAutoReleasePoolは、別スレッドをdetatchしたときはそのスレッド内で新たに作り、スレッド終了時に開放します。
ループ内での使い方と同様。
261名称未設定:2005/10/19(水) 21:49:47 ID:gzbjjMy4
具体例を挙げると、インスタンス変数で
NSString *hoge; を持ってるなら、

-(void)dealloc {
  [hoge release];
  [super dealloc];
}
としておくのが定石かと。
262名称未設定:2005/10/19(水) 22:06:12 ID:XwSbdGKn
>>258-261
ありがとうございます。
C++と同じ考え方ですよね。
しかし、NSArray等にNSStringを保持する時、autoreleaseしたオブジェクト
やretainしたオブジェクトがあると思うのですが、
通常はretainしたオブジェクトを保持するということでしょうか?
この場合、もしNSArrayがautorelaseだと問題ですよね。
NSArray等の保持するクラスを使用する場合は、開放する時に全ての要素に
対して自力でreleaseを送るようなスタイルが良いって事ですね。

うーむ、参照カウンタ方式の良さが理解できないなぁ。
263名称未設定:2005/10/19(水) 22:15:31 ID:gzbjjMy4
>>262
オブジェクトが他でretainされていようとautoreleaseされていようと、
例えばNSArrayは自身が保持するオブジェクトはretainし、
NSArrayがdeallocされるときは全てreleaseします。
そのNSArrayを保持する側としては、中身に気を使う必要はありません。

autoreleaseは単に「後でreleaseしてね♪」ということに過ぎません。
264名称未設定:2005/10/19(水) 22:26:21 ID:gzbjjMy4
私が勉強したのはここですが、
ttp://wwwa.dcns.ne.jp/~nito/CocoaClub/article01.html
(3)の一部だけ引用しておきますと

【鉄則1】自分で生成したオブジェクトは、自分で解放する
【鉄則2】他人が生成したオブジェクトは、気に留めない
【鉄則3】他人が生成したオブジェクトが必要なら、必ず保持(retain)して、必要にならなくなった時点で、必ず解除(release or autorelease)する

原則は単純です。まあ実際書いてるとrelease忘れたりしてリーク起こしてたりしますが、ObjectAlloc見てれば大抵分かります。
265名称未設定:2005/10/19(水) 22:29:03 ID:XwSbdGKn
>>263
(1)
NSString を initWithString で生成すると +1
それをNSArrayに保持すると +1 で参照カウンタが2になる。

(2)
NSString を stringWithString で生成すると +1 (autorelease)
それをNSArrayに保持すると +1 で参照カウンタが2になり
イベントループを抜けると autoreleaseがreleaseされ1になる。

(1)はNSArrayをreleaseすると保持しているオブジェクトに-1が送られ
それぞれのオブジェクトは1になりこのままではリークしてしまうので
NSArrayをreleaseする前に個別にreleaseする必要がある。

(2)はrelease時に保持している参照カウンタが1なので開放される

こんな感じだと思っていたのですが違うのでしょうか?
266名称未設定:2005/10/19(水) 22:44:05 ID:uMEYiXYQ
ところで、ObjectAllocの使い方がイマイチ解らんのは俺だけですか?
267名称未設定:2005/10/19(水) 22:51:47 ID:G3IzVtbY
>>265
とりあえずallocする時は
[[[hoge alloc] init] autorelease]
のセットで使う、と覚えなされ
でとっておきたいものに関してはretainする
retainしたものに関しては自分が解放されるまでに責任を持ってreleaseする

NSArrayやNSDictionaryに突っ込んだものはそいつらがなんとかするから自分は気にしない
そのかわりArrayをretainしたら後で忘れずにreleaseする

これでとりあえずはOK
268名称未設定:2005/10/19(水) 23:20:20 ID:XwSbdGKn
>>267
汎用的に使用するクラスの場合、メインスレッドから呼ばれるとは
限らないので、独自クラス内でNSAutoReleasePoolを生成し
なるべくautoreleaseを使用したほうが良いということですね。
initの中でNSAutoReleasePoolを生成し、deallocでreleaseしてもOKですか?
(deallocするまでにメモリ消費量が少ない場合と仮定して)

>NSArrayやNSDictionaryに突っ込んだものはそいつらがなんとかするから自分は気にしない
何度も質問していますが、突っ込んだオブジェクトがretainしていたら
リークしますよね?
269名称未設定:2005/10/19(水) 23:28:32 ID:LY9vDVeL BE:236056649-#
>>268
もういいから、テキスト読んで一週間以内にレポートを再提出すること。
はっきり言って、あなたは全く何にも理解できてないから。
270名称未設定:2005/10/19(水) 23:32:52 ID:0ta7Vh98
>>268
そのobjectが自分の手を離れるんなら、arrayやdictに
突っ込む前にautoreleaseしとくんだよ。
ドキュメント嫁って、解ってないのに拘るなって。
271名称未設定:2005/10/19(水) 23:50:23 ID:XwSbdGKn
>>269-270
ごめんなさい。

>そのobjectが自分の手を離れるんなら、arrayやdictに
>突っ込む前にautoreleaseしとくんだよ。
これですっきりしました。ありがとうございます。
もっとドキュメント読んで精進します。

しかし、、、もう少しディスカッションしたかった・・・。
272名称未設定:2005/10/20(木) 00:25:41 ID:JFYZcKL7
議論したいなら最低限の前提知識は自分で調べとこうね
273名称未設定:2005/10/20(木) 01:51:04 ID:jqvn33Gi
前提知識は間違ってないけど妙なこだわりが有る希ガス
274名称未設定:2005/10/20(木) 15:37:48 ID:Cckwstec
Objective-Cってなんでこんなに遅いのよ
275名称未設定:2005/10/20(木) 17:03:12 ID:ZY4ohsYZ
おまえのコードが糞なだけ
276名称未設定:2005/10/21(金) 20:09:44 ID:v8mv1WM/
>>265
は間違いじゃないような気がするけど間違いなの?
277名称未設定:2005/10/21(金) 20:23:22 ID:yQOO01eT
数字は正しいけど考え方が間違ってる
278名称未設定:2005/10/21(金) 20:31:13 ID:mJY+cUWf
>>275
いやぁ、俺のコードが糞な分をさっ引いても
オブジェクト生成とか遅すぎじゃん。
新PowerMacのスペック見てたらどうでも良くなってきたけど。
279名称未設定:2005/10/21(金) 22:35:24 ID:NVjzGGVf
Objective-CのNSObjectとC++の空っぽのクラスで
それぞれ100万回オブジェクト生成と破棄を繰り返してみた
Objective-C
1.260u 0.040s 0:01.86 69.8% 0+0k 0+0io 0pf+0w
C++
0.660u 0.030s 0:01.07 64.4% 0+0k 0+1io 0pf+0w
倍くらい違うかな?
280名称未設定:2005/10/22(土) 00:22:06 ID:RUcw35Ax
>>279
NSObjectにどれだけのメソッドが実装されてると思ってんだよw
281名称未設定:2005/10/22(土) 00:27:52 ID:GTajEwLp
282名称未設定:2005/10/22(土) 00:31:37 ID:Zp21tWPb
オブジェクトのアロケートにはメソッドの量は全く関係ない気がするのは僕だけですか?
283名称未設定:2005/10/22(土) 00:36:53 ID:I87zMuxG
まぁ、遅いだろ。
284名称未設定:2005/10/22(土) 01:10:11 ID:GqTTp4B7
とにかく速さがほしいのなら C か C++ のような不自由言語でも使っとけばいい。
285名称未設定:2005/10/22(土) 05:33:30 ID:TSufKjat
倍ぐらいってのは妥当だと思う
286名称未設定:2005/10/22(土) 07:32:59 ID:YcplL8xW
>>279
これは概ねアロケータの速度比較になっちゃうからあまり意味ないでしょ。
それにC++で速度が必要な時はアロケータ特殊化したり、スタック上に作るからもっと速いよ。
287名称未設定:2005/10/22(土) 14:46:49 ID:jjzEtqHB
NSObjectやNSStringみたいなコアな部分が高速化されれば、
今のCocoaアプリ全体的に速くなるかもな。
そういえば、どこかのサイトに高速化ネタが書いてあったなぁ。
288名称未設定:2005/10/22(土) 19:45:17 ID:75iioOMM
289名称未設定:2005/10/22(土) 20:13:26 ID:6/1bocAj
ttp://homepage.mac.com/mkino2/spec/optimize/index.html
せっかくあるんだからこっちを…
290名称未設定:2005/10/22(土) 21:29:30 ID:zf9ESjuj
動的結合の仕様とか考えてもC++などに比較して遅くなるのは仕方ないでしょう
スピードだけ考えればマシン語最強!とかいう話になっちゃうし
スピードと生産性のトレードオフをどこまで許容するかということになるよね
負荷が高い処理はCやC++で書いてObj-Cでラップするとかってのもありだし
291名称未設定:2005/10/22(土) 21:32:47 ID:3zF1notk
>>290
>負荷が高い処理はCやC++で書いてObj-Cでラップ
Core Foundationはそんな感じでは。
292名称未設定:2005/10/23(日) 11:10:51 ID:+w6lryAF
もしかしてObjcのメソッドは全て動的結合してるの?
普通コンパイラの最適化で静的結合できるのものは、
静的結合するんじゃない?。
やってなければコンパイラの最適化が足り無杉
293名称未設定:2005/10/23(日) 11:32:33 ID:tlNVgjL0
外部のローダブルバンドルが無理矢理上書きすることも出来るし、
既存のクラス階層の間に別のクラスを挿むなんてことも出来ちゃうからね。
294名称未設定:2005/10/23(日) 11:47:46 ID:+w6lryAF
それなら、javaのfinal見たいな静的結合用の宣言指定詞を
作ればいいのに。
通常のメソッドは動的結合する必要も無いでしょ。
これだけで、パフォーマンスチューニングの幅が広がると思うけどな。
295名称未設定:2005/10/23(日) 12:08:34 ID:yGgmt8nm
>>294
methodForSelector
instanceMethodForSelector
296名称未設定:2005/10/23(日) 12:22:02 ID:+w6lryAF
>>295
でもそれって実行時にセレクタのポインタを取得するんですよね。
コンパイル時に解決した方がシンプルでパフォーマンスも稼げると
思うけどな。
297名称未設定:2005/10/23(日) 13:17:10 ID:yGgmt8nm
>>296
セレクタじゃなくてメソッドの実体(関数)のポインタ。
シンプルかどうかはともかく、パフォーマンスはこれで十分だと思うが。
298名称未設定:2005/10/23(日) 15:06:27 ID:edsU35HP
せめてスタックにオブジェクトを・・・
でも、相当注意しないと使えネェか。
299名称未設定:2005/10/23(日) 16:46:11 ID:/rUMWozu
メリットがほとんどないな。
300名称未設定:2005/10/23(日) 17:30:58 ID:LcDG4tWK
なんですかこのスレは. パフォーマンスかつかつの貧乏人だらけですか
富豪はリソース, バツーンと使って, それで遅くても余裕でどっしり待つ訳ですよ
顧客には「待っとけ」と優しく教えてやればいいじゃないですか
301名称未設定:2005/10/23(日) 17:35:52 ID:oFWuCmLQ
そうだぜ。
オブジェクトのアロケートなんてプログラムのほんの一部だろうに。
302名称未設定:2005/10/23(日) 18:25:59 ID:ZHHdeGdi
そうはいっても、小さいオブジェクトを大量に作れば、気になるわけで。
303名称未設定:2005/10/23(日) 18:44:56 ID:I7F161BN
 アップルは、
UI周り->Obj-C、
Core Graphics, Core Sound->C
とパフォーマンスを考慮して実装しているはずだが。
304名称未設定:2005/10/24(月) 05:00:49 ID:aNWPPW7m
なにかここ何日か、復刊.comのObjective‐C?MacOS Xプログラミング入門の復刊リクエストに
やたら票が入るんだが
どっかのサイトで紹介されたとかしたんかな
305名称未設定:2005/10/24(月) 06:50:29 ID:32oyYbEL
>> 304
mkinoさんのHMDT
306名称未設定:2005/10/24(月) 09:24:37 ID:xxV7X3KR
復刊もいいけどぜひ新しいObjective - Cのプログラミングの本を…。
307名称未設定:2005/10/24(月) 10:27:28 ID:xFnydei1
>>306

水面下では期待できそうなことが色々あるらしい。
荻原先生が転勤&引越が一段落ついた頃が鍵か?
308名称未設定:2005/10/24(月) 13:31:23 ID:xxV7X3KR
本格的なプログラミング言語とスクリプトの学習難易度の開きの一つが
学習のための本なんかの(供給量/必要量)が圧倒的に違うというのがあると思う。

例えばPerlなんかだとモジュールを使ったり作ったりとなると
英語も読んで自分で調べてどうのこうのが必要だろうけど
入門書に書いてある内容だけでも充分具体的に役に立つものが作れる。
マルチプラットフォームの言語だから本の供給量もネット上の資料も多い。

対してC言語だと独習Cとかその手の基本概念や構文を学ぶ本はあるが
それで役に立つものを作ろうというのは無理だ。
OSに具体的に何かさせるための命令についてのリファレンスだの具体例だのの本というのはほとんどない。
あるいはインサイドマッキントッシュ?みたいな糞高い本しかない。
そしてMacで日本語でとなるとなおさら資料がない。

と、長々愚痴ったが半分以上言い訳ですね。
309名称未設定:2005/10/24(月) 13:38:10 ID:ZnTZO37l
Brad Coxの本も読んでみたいので投票ヨロ。
書名:オブジェクト指向のプログラミング
310名称未設定:2005/10/24(月) 14:02:14 ID:1j7c0wGW
>>308
そうかねぇ? 俺にはプログラミング言語の方がとっつき易いけど。
スクリプト言語ってUNIX風の意味のわからないおまじないがあるのが
イヤだ(Perlとか)。

インサイドマックのようなくそ高い本って何を指してるのか知らないけど
リファレンスならWebサイトで参照出来るし、Xcodeからも参照出来る。
サンプルってフレームワークのサンプルでしょ。元々規模が全然違うん
だから一冊の本で全部やるなんて不可能だよ。

プログラミング言語やスクリプト言語って得意・不得意があるから
いいとこ取りでうまく使えばいいだけの話。
311名称未設定:2005/10/24(月) 14:18:24 ID:ZnTZO37l
>>308
>対してC言語だと独習Cとかその手の基本概念や構文を学ぶ本はあるが
>それで役に立つものを作ろうというのは無理だ。

んなこたぁない。C言語と標準ライブラリだけで
十分役立つモノが作れる。作れないって言うのは
まぁ自ら仰ってるように言い訳ですな。
312名称未設定:2005/10/24(月) 14:31:09 ID:xxV7X3KR
意味のわからないおまじないって、
シェルスクリプトの1行目の
#!/usr/bin/sh とか #!/usr/bin/perl の事かいな。
ありゃ単に#で始まる行はコメントって決まってて、
#!/usr/bin/perlっていうのは
ファイルに実行パーミッション付けてターミナルから
(そのファイルのパス)で実行した時に
このファイルを解釈して実行するのは/usr/bin/perlですって書いてるだけ。
実行パーミッションを付けてないファイルのPerlを実行する時にターミナルで
/usr/bin/perl (そのファイルのパス)
て書く、その/usr/bin/perlがファイルの中に入っただけ。

C言語でもコンパイラに読ませるためのマクロ?とかいうのがあるでしょ?
コメント行として書くやつ。

いくらシェルスクリプトやPerlの資料がたくさんあって読みやすくても
読んでなきゃわからんわな。

得意・不得意がある事と学習のしやすさは関係ない話というか、
本格的なプログラム言語じゃないとできない事があるから勉強したいけど、
難しいよ〜ヽ(`Д´)ノウワーンって言ってるだけです。
313名称未設定:2005/10/24(月) 14:38:22 ID:xxV7X3KR
>>311
数学的な知識とかアルゴリズムの理解があって、必要があれば
何らかの計算をさせるようなプログラムとか作れるんでしょうけどね…。

しかしGUIを作るとなると無理だし、GUIなしで役に立つものはと考えて
データの変換みたいな事でもさせようかと思っても
テキストデータ(正規表現)とか画像データとか扱おうと思ったら
入門書の範囲を越えるでしょ?
HTTPのダウンローダとかも無理っぽいし。

標準ライブラリだってその全てが入門書で解説されてるわけでもないし、
自分で使い方を調べる方法(ファイルの読み方?)も載ってないような。
314名称未設定:2005/10/24(月) 14:43:22 ID:xxV7X3KR
長々とスレ違いな事を書いてしまいましたが、
こんなヘタレの僕はObjective - CとCocoaを使った開発の
分かりやすくて応用の効く本がたくさん出る事を
切に願います。って事です。
315名称未設定:2005/10/24(月) 14:50:46 ID:u58jRxHq
>>304
ム板のMacスレかどっかで復刊話が出てたからそこじゃね
316名称未設定:2005/10/24(月) 15:28:47 ID:Qh0eGn3U
>>314
そこは禿同。
サイトやサンプルも、もっと日本語で出て欲しいね。
317名称未設定:2005/10/24(月) 16:45:22 ID:4B2bqv4u
応用云々は自力でAPIリファレンスを読む気があるか次第だと思うけどね
何にしろ簡単な英語は読めないと
318名称未設定:2005/10/24(月) 16:49:29 ID:4B2bqv4u
要は やりたい事が実現するのに必要なもの を見つける力をつける事
そこから先は極端に言えば作業。
319名称未設定:2005/10/24(月) 16:53:16 ID:aNWPPW7m
どこがわからないかわからない、な状態から自分の力だけで何かできるようになるって難しいよな
いいお手本ほしす
320名称未設定:2005/10/24(月) 17:45:36 ID:qFXv7zDK
流れぶったぎって湖面。

拡張子を指定して、その拡張子のついた書類を開けるアプリケーションを
すべて教えてくれるみたいなAPIってある?
LaunchServicesあたりを色々調べてみたんだけど、その拡張子の書類を
ダブルクリックしたときに使われるアプリケーションを教えてくれる
メソッド(LSGetApplicationForInfo)しか見つからなかった・・。
321名称未設定:2005/10/24(月) 18:02:37 ID:r9gvZ4Nz
>>320
あるなら俺も知りたい
とりあえずこんなんは見つかったけど
http://developer.apple.com/ja/technotes/tn1002.html
322名称未設定:2005/10/24(月) 18:05:09 ID:9etpEvdp
目的の拡張子を持つファイルを LSCopyApplicationURLsForURL に指定するしかないのかな?
323名称未設定:2005/10/24(月) 18:05:56 ID:CmEyu7hT
ヒレガスの新しい本, 翻訳されないのかな. されないんだろうな.
ヒレガス本の 第2版だってまだだし.
原著はそこらの本屋で立ち読みして決められる訳じゃないから,
買うの躊躇しちゃうよ.
324320:2005/10/24(月) 18:24:27 ID:qFXv7zDK
>>321,322
レスありがとう。やっぱりすぐに見あたるところにはないんだね。
とりあえずLSCopyApplicationURLsForURLでしのぎます。
325321:2005/10/24(月) 19:05:43 ID:r9gvZ4Nz
ん、ていうかLSCopyApplicationURLsForURLで何か問題有るの?
うわ普通にあるんじゃんとか思って顔真っ赤にしてたんだけど
326名称未設定:2005/10/24(月) 19:58:49 ID:qXZGAKSn
>>309
和訳本なら在庫あるみたいよ
http://www.boople.com/servlet/AFsearch?iis=4775303716
327名称未設定:2005/10/24(月) 20:03:34 ID:lpf+0sp1
Amazon じゃ散々な評価が付いてるな。
328名称未設定:2005/10/24(月) 21:15:22 ID:ZnTZO37l
>>326
あら、本当だわ。
amazon.jpでも買えちゃう・・・。
指摘アリガト。
329名称未設定:2005/10/25(火) 20:27:41 ID:IdC6H3v+
HMDTのサイト等を見ると、イベントが発生した時にそのイベントをウィンドウのFirstResponderに送るとありますが
ウィンドウが一つもないときはイベントはどこに送られるのでしょうか、またそのイベントを自分が作成したインスタンスに取得させる方法はありますか?

OpenGLを使っていて起動直後にフルスクリーンになるようにしているのですが
そこでキーボードを押すとキーイベントを受け取るResponderがいないのか、ビープ音が鳴ってしまうので、それを改善したいのですが。
330名称未設定:2005/10/25(火) 20:47:15 ID:iyhMVhK3
>>329
>ウィンドウが一つもないときはイベントはどこに送られるのでしょうか
NSApplication。「Responder chain」で調べるといい。
フルスクリーンはやった事無いのでdelegateでイベントをキャッチできるかどうかは知らないけど。
331名称未設定:2005/10/25(火) 22:05:10 ID:+zgFP1ia
Cocoa フレームワークに関する機能追加要望なんかは何処で受け付けてるんだろうか。
332名称未設定:2005/10/25(火) 23:27:26 ID:CawEN9N8
333名称未設定:2005/10/26(水) 01:08:23 ID:ix6eBeId
>>330
キーイベントを受け取りたいインスタンス(NSResponderを継承)をNSAppのdelegateやnextResponderにしてみましたが、どうも上手く受け取れないです。
ADCのAbout the Responder Chainを読みましたが、ウィンドウの選択されているビューがイベントのFirstResponderになり、NSWindowControllerがFinal Responderになるとしか書かれてなく
ウィンドウが無い場合に対する記述は見つかりませんでした。
(アクションについてはNSAppのdelegateがFinal Responderになるとありました。)

フルスクリーンにウィンドウを広げてその上にNSOpenGLView置くほうがよいのかな。
334名称未設定:2005/10/29(土) 23:02:40 ID:CklOE9LP
プログラム終了時に自動的にデータをセーブしようと、
Nibファイル中のカスタムオブジェクト(コントローラ)
のdeallocをオーバライドしたのですが、これが呼ばれません。

プログラム終了時の処理はどこに記述したらいいのでしょうか。
ちなみに、Cocoa 非ドキュメントベースドアプリです。
335名称未設定:2005/10/29(土) 23:09:44 ID:9YTmK1+X
applicationWillTerminate:は?
336名称未設定:2005/10/30(日) 00:58:48 ID:qRWEau8o
>>335
試してみましたが、ダメでした。マニュアルを読むと
これで良さげなんですが。なんか抜けているのかもれない。
もう少し試してみます。ありがとう。
337名称未設定:2005/10/30(日) 01:01:01 ID:/qtsNfvk
どう試したのかくらい書けよ。
できるはずなんだから。
338名称未設定:2005/10/30(日) 07:23:03 ID:87fAFyxT
delegateにし忘れたんじゃないの。
339名称未設定:2005/10/30(日) 12:29:21 ID:AoqmV0SO
>>336
まっとうな質問もできないようなやつは来るんじゃない。
340名称未設定:2005/10/30(日) 13:20:55 ID:YyfZY8MM
- (void)applicationQuit:(NSNotification *)aNotification

じゃ駄目なのかい?
341340:2005/10/30(日) 13:29:14 ID:YyfZY8MM
/* ノーティフィケーションセンターを取得 */
NSNotificationCenter *NCenter = [NSNotificationCenter defaultCenter];
/* ノーティフィケーションセンターにオブザーバーを加える */
/* アプリケーションが終わる直前の通知 */
[NCenter addObserver: self
selector: @selector(applicationQuit:)
name: @"NSApplicationWillTerminateNotification"
object: nil];

まあ、こういう準備しとかなきゃ駄目だけど。

/* ノーフィティケーションを削除 */
NSNotificationCenter *NCenter = [NSNotificationCenter defaultCenter];
[NCenter removeObserver:self
name:@"NSApplicationWillTerminateNotification"
object:nil];

こういうのを、deallocにでも書いておくのをお忘れなく。
342名称未設定:2005/10/30(日) 16:48:27 ID:QGttoYKk
カタカナで「ノーティフィケーションセンター」ってなんか格好悪いね。
343336:2005/10/30(日) 23:08:24 ID:qRWEau8o
341 のとおりにしたらできますた。

でも、338のいうとおり、どこかにデリゲートとして
登録して、ApplicationWillTerminate:を使うというのも
ありかもしれません。今日は一日マックとは離れた生活
をしていていたので、 Notificationに登録する方法と(いまのところ
これで実現できている)、
前述の、デリゲートを登録する方法を(明日以降)
もう少し調べてから、また不明な箇所があればカキコします。
レスして下さったみなさん、ありがとうございます。
344名称未設定:2005/10/30(日) 23:25:22 ID:XL5VMtBJ
>>343
>>336
>マニュアルを読むとこれで良さげなんですが。

あー、どこのマニュアルを読んだって?
345336:2005/10/31(月) 01:08:38 ID:BrG1wu2T
XCodeについてくるデベロッパマニュアルの
APIレファレンスです。
346名称未設定:2005/10/31(月) 21:27:34 ID:2Sl8fml1
Commandキーが押されているかどうかを調べたいのですが、どうやったら良いでしょうか?
[NSEvent currentEvent]で調べられるかと思ったのですが、
モディファイヤキーだけが押された場合はイベントが発生しないみたいです。
なおCommandキーが押されたイベントを受け取りたいのではなくて、
任意のタイミングでCommandキーが押されているかどうかをチェックするのが目的です
知っている方いましたら、教えてください。
347名称未設定:2005/10/31(月) 21:37:45 ID:Hnyky44G
>>346
GetKeys()
GetCurrentKeyModifiers()
Carbonですけど。
348346:2005/10/31(月) 22:00:43 ID:2Sl8fml1
>>347
おお!
BOOL commandKey=( GetCurrentKeyModifiers() & cmdKey );
という感じでいけました
ありがとうございます。
349名称未設定:2005/11/01(火) 02:06:08 ID:RuWh6cpX
http://pcweb.mycom.co.jp/special/2005/cocoamvc/menu.html
TigerのCocoaにみるMVCの完成
- スマートなデータモデルを実現するCore Data

かなり長い記事です
350名称未設定:2005/11/01(火) 02:45:05 ID:S6dYVyP9
おおmkino氏のcore dataの解説!待ってたよ!
351336:2005/11/01(火) 03:59:16 ID:paKUV9sU
ApplicationWillTerminate のデリゲートの登録は
NSApplication のインスタンス(グローバル変数NSApp)
に対して行う。これでできた。
ということは、>341のやり方でもデリゲートの利用
でもどちらでもできるということだ。
一応報告まで。
352名称未設定:2005/11/01(火) 09:32:32 ID:ZySqmLvg
>>351
俺はMainMenu.nibにdelegateにしたいクラスのインスタンスを置いて、
File's owner (これNSApplicationね)からdelegateアウトレット繋いでる。
コーディングしなくていいし。
353名称未設定:2005/11/01(火) 23:27:27 ID:paKUV9sU
なるほど、そんなやり方もあるんだね。
試してみたらすぐできた。 [NSApp setDelegate:self]
を削れる。
354名称未設定:2005/11/02(水) 06:59:00 ID:xdub5Z8b
>コーディングしなくていいし。
この部分が、Cocoa初心者の理解を困難にしていると思う。
GUIで設定するので、画面キャプチャーと操作説明が無いと理解できない
人も多いと思うし、googleでも探しにくいから情報が少ないんだよね。

と独り言を言うテスト。
355名称未設定:2005/11/02(水) 16:47:52 ID:ZcdCGszN
>googleでも探しにくい
見つけたらこのスレに報告
356名称未設定:2005/11/02(水) 23:11:03 ID:i9ibAjPr
>>354
激しく同意。
CoreDataのサンプルなんて開いても設定がどこでどうなってるのか全然わからなかった。
357名称未設定:2005/11/03(木) 03:41:56 ID:a/gaTx/Q
Cocoa Dev Centralなんかはキャプチャー多くて便利だよね。
http://www.cocoadevcentral.com/

ただ英語なのがとっつきにくいかも。
358名称未設定:2005/11/03(木) 09:32:05 ID:g2/YuRZ/
>354
こういう仕組みに慣れた世代が主流になると、
「昔はGUIも全部文字で書いてたんだってさ。」
「・・・想像すらできないよ。」
という感想を持つような人も出てくるようになるんだろうな。

と、ハンド・アセンブル世代のジジィが独り言。
359名称未設定:2005/11/03(木) 12:57:00 ID:JbvOMCnT
インターフェイスのコーディングが一番ダルい
360名称未設定:2005/11/03(木) 15:55:34 ID:WLQ3MyTk
そう。インターフエイスのコーディングはなるべく少ない方がいい。
中身が一番重要だからな。
361名称未設定:2005/11/03(木) 16:07:00 ID:doy5N7Do
@interface のコーディングですか
362名称未設定:2005/11/03(木) 23:03:27 ID:JeJNg+Bs
CoreDataすげー!!
10.3ユーザーな漏れはその存在すら今日まで知らなかった。
すげーよ! まじすげーよ!
363名称未設定:2005/11/03(木) 23:07:42 ID:WLQ3MyTk
>>362
どうすごいのかObjective-Cで表現しなさい。
364名称未設定:2005/11/04(金) 01:27:08 ID:HTzBqiMn
どうせmkinoさんの記事に感化されたんだろ
365名称未設定:2005/11/04(金) 01:27:09 ID:QsU8Htgq
@implement Hoge : NSObject

- (void) applicationDidFinishLaunch:(NSNotification)notification
{
  // ちまちまプログラム書かなきゃいけなかったところが
  // IBからの簡単な設定だけで済ませられるのがすごいです!
}

@end

こうですか?
わかりません!!
366名称未設定:2005/11/04(金) 01:28:34 ID:QsU8Htgq
ああ、@interfaceと@implementがごっちゃな上に
アスタリスク忘れてる・・・さよなら
367名称未設定:2005/11/04(金) 18:31:21 ID:1qH7fM1Z
Launchingじゃないっけ?
368名称未設定:2005/11/04(金) 20:48:05 ID:JoQ/VnlS
>>365、366
ついでに、(NSNotification *)の希ガス。。。
369名称未設定:2005/11/04(金) 22:06:39 ID:38qSSgFG
つか、みんな容赦ねえなぁ……オレも→ @implementation
370名称未設定:2005/11/04(金) 22:14:50 ID:QsU8Htgq
普段からテンプレートとコード補完に頼りっきりなせいで
超々基本文法すら頭に入っていない・・・

それだけ Mac OS X の開発環境が
ユーザフレンドリで素晴らしいってことだね!('A`)
371名称未設定:2005/11/04(金) 23:55:23 ID:78xSPLYY
皮肉
372名称未設定:2005/11/06(日) 12:27:42 ID:bkv6j1tg
質問です
いま、NSArrayControllerを使ってCocoaBindingしてるんですけど、
そのArrayに入ってるNSDictionaryの"title"プロパティをユーザーが書き換えたときに
通知をもらいたいと思っています。(NSArrayCotrollerをTableViewにバインドしてる)

で、アップルの説明
http://developer.apple.com/ja/documentation/cocoa/Conceptual/KeyValueObserving/Concepts/KVOBasics.html
を読んで、
[myArrayController addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionOld context:NULL];
とやってみたのですが、タイトルを書き換えても通知してくれません。
なので、適当に
[myArrayController addObserver:self forKeyPath:@"selection.title" options:NSKeyValueObservingOptionOld context:NULL];
とやってみたら、書き換えたときに通知してくれるのですが、それ以外にもTableViewの選択を
変更するたびに通知されるようになってしまいました。(まあ当然でしょうけど・・)

これって、何とかタイトルを書き換えたときだけ通知してもらえるようにできないですか?
皆様のお知恵を拝借できると幸いです。
373372:2005/11/06(日) 12:58:30 ID:bkv6j1tg
ごめん、自己解決 orz
今回やりたいことをする場合は、myArrayControllerにaddObserverを送るんではなくて
myArrayControllerが持ってる各NSDictionaryにaddObserverを送ればよかったらしい。
半月悩んでたのが、カンタンに解決してしまった・・・。

とりあえず、myArrayControllerの中のすべての要素に addObserver:self forKeyPath:@"title"....
とすることで解決しました。
ただ、myArrayControllerの中身が入れ替わるたびにaddObserverしなおすのも面倒だなぁ。
お騒がせしました。
374名称未設定:2005/11/10(木) 17:45:12 ID:+CL8p1Cq
全てのファイルをドロップできるソフトを作りたいんですが
PropertiesでExtensionsをどのように指定すれば良いんでしょうか?
OS9の時は「****」で行けたはずなんですが…。
375名称未設定:2005/11/10(木) 18:16:04 ID:soXipJkU
*
376374:2005/11/10(木) 19:01:54 ID:+CL8p1Cq
>>375
ありがとー!
377教えてクンですまん:2005/11/12(土) 15:16:31 ID:AKEbkMAf
例えば、カスタムビューにNSTableViewを指定して、
そのビューの詳細なテーブルの設定をIBで行いたい
ときなど、一体どうやれば良いのでしょう?
インスペクタでAttributeを見ても「hidden」
しかないし。。。orz
378名称未設定:2005/11/12(土) 15:23:02 ID:IOeLxHrq
>>377
なにをしたいのか分からないけど、
NSTableViewのサブクラス(例えばMyTableView)を配置したいんだったら、
IBではカスタムビューじゃなくてNSTableViewを配置してからサブクラスを指定すればいいんじゃないの。
379346:2005/11/12(土) 16:34:45 ID:BNYX302f
>>377
なにをしたいのか分からないけど、
Instancesタブを階層表示にして階層の中からNSTableViewを選択すれば?
380379:2005/11/12(土) 16:35:39 ID:BNYX302f
346は関係ありませんです...
381377:2005/11/13(日) 00:14:20 ID:a6xRES50
>>378,379
レス、ありがとう。
説明が出来てなかったようで申し訳ありません。
レス頂いたやり方だと、どうも違うようです。

1)やりたい事
 雛形となるNSTableViewのサブクラスをIBで作っておき、
 必要の都度、その雛形を元にNSTableViewのサブクラスの
 インスタンスを生成する。(雛形の属性はコピー)
 つまり雛形のスーパークラスとなるNSTableViewの基本的な属性を
 IBで設定しておきたいのです。(colomn数とかテーブルヘッダなど)
 
 
2)試した事
 ・レス頂いたやり方だと、インスペクタでは、Attributeは「hidden」
  となってしまい、NSTableViewの属性の設定は出来ませんでした。
  (前に試してみました)
 ・ソースから一からインスタンスを生成することも試しましたが、
  (自分には)無理でした。

説明が下手ですみませんが、もし解決する方法があればお願いしまつ。



382名称未設定:2005/11/13(日) 00:21:53 ID:j9FIwA/u
そりゃ、設計から見直した方がいいんじゃないか?
どう考えても尋常な方法じゃない。
383名称未設定:2005/11/13(日) 01:05:57 ID:gpwHJub7
>381
>>378 さんのアドバイスをちゃんと理解できてないんじゃないの?

カスタムクラスのヘッダを IB にドラッグして覚えさせておいて、

Interface Builder で NSTableView をドラッグして適当に配置する。
NSTableView を選択すると、インスペクタの Attributes は
NSTableView のそれを表示するでしょ。

「Attributes」ポップアップメニューから「Custom Class」を選んで、
そこでカスタムクラスを選択する。

最初からカスタムビューを配置するんじゃない。
NSTableView を配置してから、Custom Class で設定する。
384名称未設定:2005/11/13(日) 01:08:55 ID:m3kL4D00
>>378-379の方法でNSTableViewのサブクラスを設定して
エンコード・デコードすれば良いだけじゃないの?
385名称未設定:2005/11/13(日) 01:22:47 ID:m3kL4D00
あと、ここら辺が参考になるだろ
ttp://homepage.mac.com/mkino2/backnumber/2005_08.html#August%2026_2
386377:2005/11/13(日) 08:24:51 ID:oL8SD611
>>378、379、383
 でけた。。。ありがとうございます。とはいえ、どうもそもそもカスタムクラス
 ってものが良く分かってないようだ、自分。UIに関して詳しい書籍ってないものか。
(噂に聞くヒレガス本はどうなのだろう。)
  

>>384、385
 おおスゴヒ!助かります。

>>382
 そうか、やっぱり変ですかね?

 いずれにせよ、もっと勉強します。ありがとうございました。
387ぴーたん:2005/11/14(月) 13:29:50 ID:o1qOtC+B
先月からCocoaを勉強しはじめたものです。
文字列の装飾でNSAttributedStringをつかっているのですが、
アトリビュートが掛かっているレンジを取得するメソッドで
次の2つの違いがよくわかりません。

attribute:atIndex:effectiveRange:
attribute:atIndex:longestEffectiveRange:inRange:

Xcodeのドキュメントを読んだのですが、
longestというのは、何が最長なのかが
よくわかりません。

この2つの使い分け方をおしえていただけたら
うれしいです。

宜しくお願いします。
388名称未設定:2005/11/14(月) 15:04:25 ID:myViIGVa
>>387

NSRange r;
NSMutableAttributedString * s = [[[ NSMutableAttributedString alloc ] initWithString: @"0123456789" ] autorelease ];
[ s addAttribute: @"attr" value: @"value" range: NSMakeRange(0, 3) ];
[ s addAttribute: @"attr" value: @"value" range: NSMakeRange(3, 3) ];
[ s attribute: @"attr" atIndex: 0 effectiveRange: & ];
NSLog(@"%@", NSStringFromRange(r)); // => {0, 3}
[ s attribute: @"attr" atIndex: 0 longestEffectiveRange: & inRange: NSMakeRange(0, [ s length ]) ];
NSLog(@"%@", NSStringFromRange(r)); // => {0, 6}


attribute:atIndex:effectiveRange: のほうの結果は実装依存だから
{0, 3} 以外の値になるかもしれない。
389名称未設定:2005/11/14(月) 15:07:41 ID:myViIGVa
× &
○ &r
390ぴーたん:2005/11/14(月) 16:16:19 ID:o1qOtC+B
>>388-389
ありがとうございます。
文字列に設定しているアトリビュートが
となり同士が同じであれば、マージしてレンジを返すのが
longestEffectiveRangeで、
マージしない個別のレンジを求める場合が、単なるeffectiveRangeを
使うということなんですね。

納得しました。

どうも有り難うございました。<(_ _)>
391名称未設定:2005/11/21(月) 00:50:47 ID:lf3bDDx0
id aDate = [NSCalendarDate
dateWithString:@"Monday, 17.00"
calendarFormat:@"%A, %H.%M"];

NSLog(@"aDate %@", [aDate description]);


と、月曜日でインスタンス化した筈なのにログには
 aDate Saturday, 17.00 と出てしまいます。
何故でしょう。なんかすごい勘違いやらかしているか、
NSDateの働きを理解しきれてないだけかも
しれませんが、ご助言願います。
392名称未設定:2005/11/21(月) 02:19:23 ID:lf3bDDx0
自己レスです。日付を指定しないとだめらしい
というのがわかってきました。すると、曜日と時間
だけを表現したいときはどうすればいいのだろう。
曜日は文字で表現できるとしても、時刻は計算が
あるから、たとえば、17.40と18.00の計算が必要になるときは
自分で実装しないといけなくなってしまう。
393名称未設定:2005/11/21(月) 03:31:10 ID:lf3bDDx0
時間だけしてして日付を指定しないと、2005.1.1になる。
曜日と時間だけが必要なら、それに応じたオブジェクト
(クラス)を作れということか。インターフェースだけ
決めて、時間の計算はNSDateやNSCalendarDate
のインスタンス(同一日付)を一時的に作成し、そいつらに
まかせてしまう。独言失礼いたしました。
394名称未設定:2005/11/22(火) 22:16:54 ID:MV8UMRfG
C++のソースをTerminalからcc main.cp...ってやってもシンボルが
未定義と言われダメだったが、g++ main.cpとするとすんなり
コンパイルされちゃいました。

我ながらahoな質問で申し訳ないのですが、C++のソースってgccじゃ無くて
g++ってコンパイラでコンパイルするのでしょうか?
(g++ってgccの別名だと思っていたが、manを読むと、アップルのgccとg++は
別々のようで、C++はg++でコンパイルするみたいなのですが)
でも、例えばObjective-CとC++のソースを一緒にコンパイルするときは
どちらを使えば良いのでしょう?
まあこれらは試せば良いのであろうが、この辺りの事を記述したドキュメント
ってないものでせうか?
(objective-C++とかobjective-CとC++とを混在させたコーディング
方法については幾つか参照したのですが、コンパイラなどの環境周りに
ついて、余りにも理解不足なので、もう少し勉強したいと思っております)

395名称未設定:2005/11/23(水) 00:48:30 ID:LqBcwlYo
全部同じもの指してるけど
/usr/bin/gcc-4.0
396394:2005/11/23(水) 11:58:48 ID:MxfVogHL
>>395
レスありがとう。うちはOSはPantherの10.3.9で、gccは3.3です。
因に、/usr/bin/を見てみると、g++もバージョンは3.3ですが、
別物の様なのです。ただ、gccとg++とでファイルのバイトサイズが
同じなので、設定だけが異なるのだろうか?
397名称未設定:2005/11/23(水) 13:38:17 ID:5+1N2Ir8
>>396
gccでやるときは-lstdc++つけないとC++ライブラリ見に行かないよ。
398名称未設定:2005/11/23(水) 13:50:52 ID:rAXNEW16
>>394
-x オプション。例えば Objective-C++ なら
gcc -x objective-c++ hoge.mm
g++ は gcc -x c++ の別名。-lstdc++ もつけてくれたかも。
ていうかXcodeつかってりゃよきにはからってくれるが。
399394:2005/11/23(水) 16:46:02 ID:xHiCdr3F
>>397,398
なるほど分かりました。助かりました。
ありがとうございます。
400400:2005/11/23(水) 21:44:14 ID:FVfTL1hx
400
401名称未設定:2005/11/26(土) 22:25:11 ID:1EFlhkAF
「ページ設定」で設定した内容が
NSPrintInfoのsharedPrintInfoのマージンに反映されません。
ttp://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/4500/4597.html
を参考にして、プリント前にimageablePageBoundsを使って
自分でNSPrintInfoにマージンをセットしてやっているのですが、
なんか本末転倒のような気が??
ページ設定のマージンを普通にプリントに反映するにはどうすれば良いんでしょうか?
402sonson:2005/11/29(火) 19:08:47 ID:Z665TCcb
NSPanelクラスを使って、ユーティリティウィンドウを作っています。

そのウィンドウのタイトルバーに「クローズ」「最小化」「リサイズ」の
ボタンがありますが、「クローズ」ボタンのみを表示させようと
しています。

そして、タイトル文字列をクローズボタンの方に詰めて
表示させたいのですが、うまくいきません。

HMDTのBBS(http://www.hmdt-web.net/bbs/bbs.cgi?bbsname=mkino&mode=thread&line=50
には

NSWindowのサブクラス作成
→standardWindowButton:forStyleMask:を上書き
→poseAsClass:でポージング

とあったのですが、NSPanelのサブクラスなので
この方法がつかえません。

どなたか良い方法ご存知でしょうか?
よろしくお願いいたします。
403名称未設定:2005/11/29(火) 19:33:05 ID:vvRs+z7X
NSPanel は NSWindow のサブクラスだから
同様の手法が使えないか?
全然試してないんだが。
404sonson:2005/11/29(火) 20:31:39 ID:Z665TCcb
poseAsClassでポージングする
standardWindowButton:forStyleMask:
がNSWindowのファクトリメソッドなので
NSPanelがNSWindowのサブクラスということが
生かせないんですよね…orz
405名称未設定:2005/11/29(火) 22:06:00 ID:vvRs+z7X
ちょっと興味があったので試してみた。

@interface MyWindow : NSWindow {
}
@end

@implementation MyWindow

-(id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag{
self = [super initWithContentRect:contentRect styleMask:(NSClosableWindowMask | NSTitledWindowMask) backing:bufferingType defer:flag];
[self _setUtilityWindow:YES];
return self;
}

+(void)load{
[[self class] poseAsClass:[NSWindow class]];
}

+(NSButton *)standardWindowButton:(NSWindowButton)b forStyleMask:(unsigned int)styleMask{
return (b == NSWindowCloseButton) ? [super standardWindowButton:b forStyleMask:styleMask] : nil;
}

@end

こんな感じでどうだろうか?
poseAsClass: の手法は NSWindow の直接のサブクラスでしか使えないということなので、
NSPanel のサブクラスではなく NSWindow のサブクラスにして、
_setUtilityWindow: という隠しメソッドを使う。
406401:2005/11/29(火) 22:19:18 ID:7CXKRXu8
誰か私のことも思い出してください...
407名称未設定:2005/11/30(水) 00:25:51 ID:4XJrAd7j
>>402
別の角度からアプローチしてみた。poseAsClass: は必要なく、普通の手順でプログラムできる
(object_setInstanceVariableなんてdirtyなものを使ってるけど)。
外したボタンのretainCountがあやふやだけどrelease増やすと止まるんでたぶん合ってると思う。

#import <objc/objc-runtime.h>
@implementation MyPanel //NSPanelのサブクラスNSWindowでもたぶんOK
- (void)awakeFromNib
{
//NSFrameView(NSThemeFrame) から minimizeButton と zoomButton を取り外す
id frameView=[[self contentView]superview];
[[frameView minimizeButton]retain];
[[frameView zoomButton]retain];
[[frameView minimizeButton]removeFromSuperview];
[[frameView zoomButton]removeFromSuperview];
[[frameView minimizeButton]autorelease];
[[frameView zoomButton]autorelease];

object_setInstanceVariable(frameView, "minimizeButton", nil);
object_setInstanceVariable(frameView, "zoomButton", nil);

//resetCursorRects ぽいことを行う。もっと良い方法がありそうだが
NSRect fFrame=[frameView frame];
fFrame.size.width++;
[frameView setFrame:fFrame];
fFrame.size.width--;
[frameView setFrame:fFrame];
}
@end

これを実際に使うかと聞かれると、ちょっと恐いけれど(笑)
408sonson:2005/11/30(水) 22:16:48 ID:PMgeOEKS
>>405
なるほど、_setUtilityWindowを使うってことですか。
確かにできそうですね。できれば正攻法で解決したいところですが
ありがとうございました。

>>407
removeFromSuperviewを使えば確かに
「最小化」「リサイズ」ボタンは外せそうですね。
しかしウィンドウタイトルが左詰めにならないような気がします…。
409名称未設定:2005/11/30(水) 22:36:55 ID:MY2YtraU
>>408
omniのライブラリで似たような事やってたから、参考にしてはどうでしょう?
410名称未設定:2005/12/01(木) 02:45:05 ID:Hs/k3Pry
NSRaiseErrorってなんでしょう つД`)・゚・。・゚゚・*:.。
起動してもデバッガに落ちます。。。
411名称未設定:2005/12/01(木) 03:24:40 ID:N9CNN6aH
さっぱり分からんな。それだけじゃ。
412名称未設定:2005/12/01(木) 04:15:20 ID:UuQYiRYx
>>402
NSPanel (およびそのサブクラス)の場合も NSWindow の standardWindowButton:forStyleMask:
を呼んでいるので、NSWindow を poseAsClass すれば良い。

@interface MyPoseWindow : NSWindow
{}
@end

@implementation MyPoseWindow
+(void)load{
    [[self class] poseAsClass:[NSWindow class]];
}

+(NSButton *)standardWindowButton:(NSWindowButton)b forStyleMask:(unsigned int)styleMask{
    //フローティングウィンドウだったら
    if(styleMask & NSUtilityWindowMask && b != NSWindowCloseButton){
        return nil;
    }else{
         return [super standardWindowButton:b forStyleMask:styleMask];
    }
}
@end
413名称未設定:2005/12/01(木) 04:40:18 ID:UuQYiRYx
poseAsClass にちょっと誤解がある気がしたのでちょっと補足。
基本的に poseAsClass 用に作ったクラスを生成することはない。
元のクラスが作られるときに成り代わって作られるものだから。

>>405 のやり方だと initWithContentRect... を使うすべてのウィンドウ(例えばアバウトウィンドウなど)
が UtilityWindow になってしまうし、すべてのウィンドウの最小化・リサイズボタンが消えてしまう。
414sonson:2005/12/01(木) 15:41:14 ID:y5YBklF2
>>412-413
なるほど!
確かにNSWindowをポージングすると
そのサブクラスNSPanelは自動的にポージングされますね。
正攻法な解決策ですっきりしました。
ありがとうございます。
415名称未設定:2005/12/02(金) 22:49:49 ID:GaLEZp7k
NSTextFieldの回転方法ってありますか?
グラフの縦軸のキャプションに使用したいのですが…。
416名称未設定:2005/12/02(金) 22:58:41 ID:MkP9QN7k
>>415
色々考えてるよりは画像を使った方が早いよ。
417名称未設定:2005/12/02(金) 23:18:04 ID:R5otrz+d
以前AppleScript (Studio)でやった気がする。
他は知らん
418名称未設定:2005/12/03(土) 07:46:33 ID:VbOTfn+U
>>416
>>417
ありがとうございます。手間が掛かるようですね。
416のいうとおり色々考えるより画像使います。
419名称未設定:2005/12/03(土) 09:06:39 ID:IwFhZyK1
NSTreeControllerって、なんか中途半端な気が。

setSelectedObjects:(NSArray*)ManagedObjects
とか
ArrangedObjectIndexPathForItem:(ManagedObject*)item
とか
ItemForArrangedObjectIndexPath:(IndexPath*)path
とか

なんで無いんだろう?
420名称未設定:2005/12/05(月) 23:16:56 ID:mQ1smUGv0
421Yrg:2005/12/07(水) 21:42:27 ID:Z/Eo9QSQ0
バックグラウンドアプリケーション(NSBGOnly=1 がinfo.plistにセットしてある)で
アラートを表示すると、ほかのアプリケーションのウィンドウの下に
アラートが隠れてしまいます。
アラートの表示は現在NSRunAlertPanelで表示しているのですが、
アラートをほかのアプリケーションより前面に出す方法って
あるのでしょうか?
アラートパネルを自前で作るしかないんですかね…?
422名称未設定:2005/12/07(水) 22:07:23 ID:UYn20DuW0
アプリケーションを最前面に出してからアラートを表示すれば?
423Yrg:2005/12/07(水) 22:15:34 ID:Z/Eo9QSQ0
アプリケーションを最前面に出すってのは、Cocoaで出来ますか?
背面に持っていくのは
[NSApp activateIgnoringOtherApps]で出来るんですが、前面はどうすればいいんでしょう?
424名称未設定:2005/12/07(水) 22:38:41 ID:pyAz1RVH0
試してないけどNSAppleScriptで自分をアクティベートさせるスクリプトを実行するとか
まあバックグラウンドアプリでアラートパネルを出そうというのが根本的に間違ってるような気もするけど
425名称未設定:2005/12/07(水) 22:45:11 ID:UYn20DuW0
>>423
activateIgnoringOtherApps: で前面に出せるだろ。
426名称未設定:2005/12/07(水) 22:49:06 ID:YwF0aLrQ0
NSBGOnly/LSBackgroundOnlyだと前面に出せなかったような気が。
NSUIElementじゃダメか?
427名称未設定:2005/12/08(木) 06:04:15 ID:3EFCJ29R0
アラートパネルの属性をScreenSaverにでもあげるのが本筋じゃないか?
428名称未設定:2005/12/08(木) 15:43:39 ID:fBYuaRf10
MacOSXにはNotification Managerは無くなったのですか?
429名称未設定:2005/12/09(金) 14:54:08 ID:KCpVXFrU0
認証されてroot権限で動いてるアプリのNSLogはどこに出てるんでしょう?
430名称未設定:2005/12/11(日) 20:07:28 ID:7NrsYZLE0
シングルトンなクラス Hoge を作ろうと
唯一のインスタンスを実装ファイルで宣言した static 変数に入れ、
外からは
 [[Hoge sharedHoge] doSomething];
とアクセスできるようにしているんですが、
このインスタンスを release するためにはどうすればいいんでしょうか?
431名称未設定:2005/12/11(日) 20:15:09 ID:7NrsYZLE0

単にアプリケーションの最後の dealloc で解放すればいいことに気がつきました。
逝ってきます。
432名称未設定:2005/12/11(日) 23:03:41 ID:qGznIh6E0
アプリが終了すると、保有する全てのメモリを自動的に解放するから
別にわざわざ解放しなくても良いよ
433名称未設定:2005/12/12(月) 03:38:13 ID:/WhFVNRF0
インスタンスが唯一のものにはクラスオブジェクト
を充てているんだけど、それと、
>>430 のように実際にインスタンスを
作るようにする設計との長所短所ってどんな
ことになるんだろ。
434名称未設定:2005/12/12(月) 17:45:02 ID:h9W4A57J0
>>433
デストラクタで後始末が出来るってのは長所にならない?
Java等の話だとデストラクタでリソースの解放を行うのは良くないテクニックだと
いわれてるけど、Obj-cだとここら辺はどうなんでしょう。
435名称未設定:2005/12/13(火) 01:20:43 ID:t4NFzByM0
Javaで良くないって言われている要因が、解放のタイミングがVMおまかせに
なってしまうてことなら、リファレンスカウントのObjective-Cには当たらないと思う。
436名称未設定:2005/12/13(火) 02:08:51 ID:v4BoN3060
デストラクタで後始末出来るのはスタックにオブジェクトを置ける
C++だろうな。後始末をデストラクタに依存する書き方はC++以外は
やらない方がええんでないか。
437名称未設定:2005/12/14(水) 06:59:25 ID:ywiJV0bu0
ヒレガス本のカスタムビューの例題で、
文字をボールド体やイタリックで表示させる
チャレンジがありますよね。(p246)

これ、イタリックで表示させると右上が欠けて
しまう。PDFに落としてみるとちゃんと表示
できてるのに、なんでだろ?
438名称未設定:2005/12/14(水) 09:20:05 ID:FUPgN70F0
>>437
多分、描画する領域の矩形クリップがノーマルのままなんじゃないかな。
439おーなり:2005/12/14(水) 17:48:43 ID:DV3Z2AXy0
NSTableViewをクリックしたときに、テーブルの外枠にフォーカスの
フレームが付きますが、それを消したい場合はどうすればよいのか
わかりません。
[NSView drawRect]で描画を自前でやってやるしかないんでしょうか…。
440名称未設定:2005/12/14(水) 18:30:33 ID:9nvA0ySo0
setFocusRingType: じゃないのかね。
441名称未設定:2005/12/14(水) 18:37:15 ID:hLDEolUc0
>>439
IBで出来るだろ。インスペクタのFocus Ring:をNoneにしろ。
442名称未設定:2005/12/14(水) 23:49:19 ID:ywiJV0bu0
>>438
drawAtPoint:withAttributes: を
使っているんだけど、なんか設定必要なんですか?
443?Doob:2005/12/19(月) 17:05:29 ID:YzdLXcF00
バックグラウンドアプリケーションも含めて、現在起動しているアプリケーションの名前を取得する方法がわかりません。
[NSWorkspace launchedApplications]で取得した
NSArrayの中身は、バックグラウンドアプリケーションは
含まれていないんです。
444名称未設定:2005/12/19(月) 18:56:52 ID:WjY7cbnr0
ファイルのカタログノードIDを取得する方法と、
そのIDを指定してファイルを開く方法ないですか?
445名称未設定:2005/12/19(月) 20:01:40 ID:81ZtWwKT0
>>443
ProcessManagerを使う
GetNextProcessでぐぐれ
446名称未設定:2005/12/19(月) 23:24:11 ID:gQBYwNCN0
それCarbonじゃん。
447名称未設定:2005/12/20(火) 03:27:43 ID:HrZLfxZR0
スレ違いだなw
448?Doob:2005/12/20(火) 10:55:50 ID:CNfYLR6L0
>>455
やっぱりCarbonにお世話になるしかないっすね。
どうもありがとうございます。
449名称未設定:2005/12/21(水) 00:48:33 ID:sch8WmAM0
画像を使用するフレームワークのプロジェクトを作り、
リソースとして画像ファイルを追加したのですが、
この画像ファイルへのパスはどうやって取得するのですか?

つまり、アプリケーションをビルドしたときに
  Hoge.app/Contents/Frameworks/Foo.framework/Versions/A/Resources/bar.jpg
という位置に置かれるファイルを、
フレームワーク内で参照するためにはどうすればいいのですか?

[NSBundle resourcePath] 等と書いても、当然のことながら
実行時には Hoge.app/Contents/Resources/ が返ってくるので困っています。
450名称未設定:2005/12/21(水) 00:55:43 ID:sch8WmAM0
↑すいません、補足。
Hoge.app が自分のリソースを参照するときに Hoge.app という名前を知らなくてもいいのと同様に、
Foo.framework も自分の名前を使うことなく自分のリソースを参照したい、ということです。
451名称未設定:2005/12/21(水) 01:04:15 ID:pmyoV+4l0 BE:137700037-
framework は作ったこと無いけど
ローダブルバンドルなら
[NSBundle bundleForClass:[self class]]
とかでバンドルを取得してそのバンドルに対して
-[NSBundle pathForResource:]
とかで取れる。
構造的には同じだからこれでいけるのでは?
452名称未設定:2005/12/21(水) 01:06:31 ID:pmyoV+4l0 BE:59014433-
あ。
同じじゃないや。
/Contents/
が無いのか。

じゃあ、わかんね。
453Takuo:2005/12/21(水) 02:14:55 ID:A+qpyW3c0
NSTextViewのmouseDownメソッドで、クリックされた回数を見ています。

ダブルクリックしたときに、
-mouseDown:(NSEvent*)event
で、[event clickCount]は1を返し
その後すぐに再びmouseDownが呼ばれ
そのときは[event clickCount]は2を返します。

今わたしが知りたいことは、[event clickCount]が1を返した時点で
[event clickCount]が2を返すイベントが、イベントキューに
存在するかどうか?を知りたいのです。

[NSApp nextEventMatchingMask:untilDate:inMode:dequeue:]
では、[event clickCount]が2を返すイベントが来るまで
待たなくてはなりません。

そういった方法ではなく、これから来るイベントがキュー(リスト)として
直接取得できるなら、そこから[event clickCount] == 2 である
イベントをチェックしたいんです。

454名称未設定:2005/12/21(水) 09:09:15 ID:Vn5eaJcA0
>>449
何でリソースをHoge.app/Contents/Resources/に置かないのかがわからん。
どうしてもそこを使いたいならmainBundleを取得して、そこから直接パスを
つなげればいいだろ。
455名称未設定:2005/12/21(水) 12:20:45 ID:cYMmAdnq0
FAQだと思うのですが、
NSString escape pathでググってソレッぽいのが見つからず、質問します。

Unixコマンドに渡せる、安全なパスを作るのにはどうすればいいでしょうか。

例えば、スペース、クオート文字、日本語などをきちんとエスケープして
渡したいのです。NSURLで出来たものを直接渡して大丈夫なのでしょうか?
456名称未設定:2005/12/21(水) 20:03:51 ID:v+d8ZuUN0
>>454
つ「フレームワーク」
457もげん:2005/12/23(金) 14:06:10 ID:ZTgVrXQi0
>>455
NSStringのgetFileSystemRepresentation:maxLength:
じゃ、ダメかい?
458名称未設定:2005/12/23(金) 15:34:15 ID:1Gu4jMVy0
Jedit X やGyazMailのアップデート確認機能って同じframework使ってるの?
Cocoaアプリでよくみるなと思うのだけど
459名称未設定:2005/12/23(金) 18:18:14 ID:lmhvHXLC0
ILCrashReporter
CrashCatcherなんかがあるよ。

Jedit Xのは知らんけど。
460名称未設定:2005/12/24(土) 01:13:16 ID:RPbvV6w/0
>>459
>ILCrashReporter
>CrashCatcherなんかがあるよ

これ、クラッシュレポート用じゃないんですか?
461名称未設定:2005/12/24(土) 22:58:08 ID:HJngw5JX0
>>457
さんくすです
さっそく試してみます
462Doob:2005/12/26(月) 12:31:07 ID:0xG11kLV0
SafariでRSSのページを表示したときの、ページのソースを取得したいと思っています。
たとえば、feed://rss.cnn.com/rss/cnn_topstories.rss
などのページのソースを取得したいのですが、NSURLDownloadやNSXMLParserでは
feed:を受け付けてくれません。
何かいい方法がないでしょうか?
463名称未設定:2005/12/26(月) 13:01:48 ID:pvUwEH9y0
>>462
httpにしちゃえばどうだろう
464名称未設定:2005/12/26(月) 16:22:23 ID:qZ898K2p0
そうだよしちゃいなよ
465名称未設定:2005/12/26(月) 19:09:29 ID:gAefJIdJ0
そうだ、そうだ、それがいい
466Doob:2005/12/27(火) 13:21:53 ID:H69trzh70
>>463-465

httpにしたら、ソースが取得できたっぽいです。
シンプルな解決法すぎて怖いですね(笑)
なんでfeed:って面倒くさいものをSafariは用意してるんだろ…?
すべてhttpでいいのに。
467名称未設定:2005/12/31(土) 01:01:49 ID:jgcrfNsR0
NSButtonCellのサイズを数値かNSSizeで変更するにはどうすればいいのでしょうか。

NSMatrixとNSButtonCellのサブクラスを作って独自ビュー(NSMatrix)に描画しているのですが、
セルのサイズが小さくなってしまいます。
サイズ変更のメソッドを探しても regular, small のようなものしか扱えないです。

IBから適当なNSButtonをopt+ドラッグしてマトリックスを作ると楽に好きなサイズのセル+マトリックスが作れますが、コードから指定したいのです。
468名称未設定:2005/12/31(土) 01:45:25 ID:jgcrfNsR0
見落としていました。
NSMatrixに setCellSize:<#(NSSize)aSize#> なるものが普通にありました。
失礼致しました。
469名称未設定:2005/12/31(土) 01:48:17 ID:O0vdZQu90 BE:39343032-
>>467
-[NSMatrix setCellSize:]

NSControl と NSCell の関係を調べた方がいいと思う。
470名称未設定:2006/01/01(日) 01:14:24 ID:N9Z0q0pi0
Cocoaプログラミングの勉強をはじめました。

InterfaceBuilderで各コントロールをcontrolを押しながら、アウトレットに接続したり(水色線で)する
手順がありますが、このつながりをあとから(他人のnibなどを)客観的に
参照する方法があれば教えてください。
よろしくおねがいします。
471名称未設定:2006/01/01(日) 12:06:36 ID:ZDtHqnEI0 BE:26228922-
472名称未設定:2006/01/01(日) 18:58:55 ID:ON8+qzcN0
>>470
インスペクタで普通に調べられるし
473名称未設定:2006/01/01(日) 19:57:28 ID:+FRYxrvU0
>>471
ネ申発見
474名称未設定:2006/01/01(日) 21:22:28 ID:p/MOlpdy0
基本操作でつ
475470:2006/01/02(月) 02:28:49 ID:rCO9b8Ju0
ありがとうございました

CocoaプロジェクトのなかでCarbonプロジェクトで使っていた
C++クラスを使いたいのですが、h/cppを含めると

error:parse error before "Classname"

のように、クラスすら認識してくれません
Cocoaプロジェクトでは、C++のクラスは使うことができないのでしょうか?
使う方法があったら教えてください
476名称未設定:2006/01/02(月) 03:01:18 ID:5MU/m5BG0
拡張子を.mから.mmにする
477名称未設定:2006/01/02(月) 12:35:35 ID:3JhlhMds0
478470:2006/01/02(月) 13:02:31 ID:rCO9b8Ju0
ありがとうございました!
日々、精進します
479名称未設定:2006/01/02(月) 23:48:49 ID:MUhG2rW40
取り敢えず、拡張子を.mmに変更。
480名称未設定:2006/01/02(月) 23:49:34 ID:MUhG2rW40
あら、リロードすんの忘れてた。
ゴミレス失礼。
481名称未設定:2006/01/03(火) 12:35:52 ID:G7QbjOOf0
RSSを簡単に生成できるクラスとかありませんか?
482m(_ _)m:2006/01/05(木) 23:43:49 ID:gV7OcBwd0
ObjectiveCのカッコについて効果的な入力方法ってありますでしょうか?
例えば(例は悪いですが)
NSString *str = [[NSString stringWithCString:"c"] retain];
の場合、
[NSString stringWithCString:"c"]を入力している時に不意にretainしたくなって、
先頭に[を忘れた時などに、良い入力方法がありますでしょうか?
今はカーソルキーで戻っているのでかなり面倒なんです。
483名称未設定:2006/01/05(木) 23:47:21 ID:NtVmwKWf0
あるある
484名称未設定:2006/01/05(木) 23:48:50 ID:b27MxjDi0
マウスで(ry
485m(_ _)m:2006/01/05(木) 23:49:22 ID:gV7OcBwd0
もしよろしければ、その方法をお教えいただけると凄くうれしいです。
486名称未設定:2006/01/06(金) 00:15:06 ID:37xg5qea0
ESC C-p (M-x backward-word)
487名称未設定:2006/01/06(金) 00:15:54 ID:HWWJttSf0
>>485
]をマウスでダブルクリック、左キー1回でどうよ。
488名称未設定:2006/01/06(金) 00:26:11 ID:HWWJttSf0
>>486
emacsなら、C-M-p(backward-list), C-M-n(forward-list)だろ
489485:2006/01/06(金) 00:32:49 ID:txIhT2du0
ご返事ありがとうございます。
>>486
そ、それはうちへの答えなんでしょうか?
ちなみにXcodeを使っています。

>>487
なるほど、そういう手もありますね。
[の部分にクリックしない所がミソですか。

メソッドの引数内でない閉じ括弧 ] の後に文が続く時には、
強制的に先頭に[をつける機能が欲しいですね。
例えば(例は悪いですが)
[NSString stringWithCString:"c"] retain]のように開始括弧忘れの場合、
先頭に補完してくれるとうれしいですよね。だめかな?
490名称未設定:2006/01/06(金) 16:56:32 ID:ymneBu2T0
cocoaでcarbonのGetQDGlobalsScreenBitsと同等の機能ってあるかな?
screenshot取りたいんだけど。
491名称未設定:2006/01/06(金) 21:47:24 ID:m+AJtiy/0
>>490
スクリーンショットのサンプルがHMDTにあった。
492490:2006/01/06(金) 23:35:07 ID:ii7M2j9/0
>>491
ありがとう
確認してみたけど、これGetQDGlobalsScreenBits使って実現してるね。
だけど、Carbonは使えないんだよね。
493名称未設定:2006/01/07(土) 00:21:17 ID:tKXifdgT0
CoreGraphicsもだめかね
http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/4600/4695.htmlみたいな方法

ちなみにこれもARGBで得られるから
NSBitmapImageRepに流し込む時はRGBAにする必要あり
494490:2006/01/07(土) 09:22:54 ID:IryO1H0f0
>>493
こちらも、THX
試してみる。処理速度的にも良さそうだね。
495名称未設定:2006/01/07(土) 18:29:30 ID:We3WNjdT0
ねえねえ、ObjectiveCってヘッダファイルにメソッド定義した場合は
Javaで言うprotectedになって、しなかった場合はprivateメソッドという
考え方で問題ない?
496名称未設定:2006/01/07(土) 19:42:29 ID:gVcw4vRN0
メソッドの可視性は定義出来ないので、俺様ルール適用。
publicなメソッドはクラスと一緒に、privateなメソッドは
カテゴリ使って別ファイルに定義してる。
protectedなんてシラネ。
497495:2006/01/07(土) 19:52:40 ID:6sdB24jD0
ありがとう
そっか〜、ヘッダファイルにメソッドを定義しなくても、IDEのインテリセンスは
効かないけど他のクラスから呼べるんだね。
これが、ObjectiveCの動的型付けのメリット?なんだろうな
カテゴリを勉強して、もう一度来ます
498495:2006/01/07(土) 20:17:17 ID:6sdB24jD0
ねえねえねえねえ!すごいの見つけたよ
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_7.html
に@privateという記述があるよ。
もしかして、privateなメソッドや変数を定義できるんじゃないの?
やってみるね!
499495:2006/01/07(土) 20:23:26 ID:6sdB24jD0
おおあった
http://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/5objc_language_summary/chapter_10_section_5.html
@privateインスタンス変数の有効範囲を、それを宣言しているクラスに限定します。
@protectedインスタンス変数の有効範囲を、宣言しているクラスと派生クラスに限定します。
@publicインスタンス変数の有効範囲についての制約を除去します。
って、ドキュメントに書いてあった。
でも使っているひと居なそうだよね?
500495:2006/01/07(土) 20:32:03 ID:6sdB24jD0
やってみた
orz変数のスコープだけしか関係ないっぽい.......
501名称未設定:2006/01/07(土) 22:20:16 ID:tYr2/92j0
( -ω-)
502名称未設定:2006/01/07(土) 22:40:27 ID:H25oRfs00
(-人-)・・・一人ではしゃいでごめんなさい
503名称未設定:2006/01/08(日) 04:23:43 ID:dh+L6DNz0
....いえいえ
504名称未設定:2006/01/08(日) 09:52:55 ID:kCkLQZOg0
なんかやってみようと思うんですけど何からやればいいですか?
Xcodeってやつをインストールするまではやりました。
505名称未設定:2006/01/08(日) 11:23:30 ID:0tFupbuf0
質問です。
サンプルコードのMoriarityを参考に、NSTaskでstdinからコマンド
のログを取り込むコードを書いています。
NSFileHandleのreadInBackgroundAndNotifyを実行したところ、
バッファがいっぱいになるまでNotificationがこないような挙動が
時々見られます。

別スレッドでNSFileHandleのavailableDataを読んでいるようなの
ですが、これを一定時間経ったら吐き出させてNotificationを起こす
ようにするにはどうすればよいでしょうか。
506名称未設定:2006/01/08(日) 20:09:30 ID:Nh5JcOPb0
>>504
参考程度に、CとPHPをちょっとだけやったことあった自分の辿った道:
アーロン・ヒレガスの本を買ってきて、そこのサンプルを一通りやってみた。
それで基本的なツールの使い方とObjective-Cのやりかたはわかったから、
今はネット上の文献とにらみ合いながら、作りたいものを作ってる。
507名称未設定:2006/01/09(月) 12:52:34 ID:FwXSf8Ei0
>>506
レスありがとう。
あれからグダグダでイライラしながらやってみました。
ボタン押したら文字が出るっていう何の役にも立たないアプリはできた。
これってるすでに書かれてる機能を使って表現してるんですよね?
そういうクラス?がいっぱいあってそれを使って作る感じですか?
508495:2006/01/09(月) 20:24:56 ID:5vtWPyp60
ねえ、やっぱりObjectiveCは難しいよ
何でも出来てしまうオブジェクト指向なので
プログラミングスタイルが掴みにくくないですか?
プライベートメソッドをカテゴリで書いた場合、
そのクラスを使うプログラマに説明しなくてはならないので
解り難く面倒だし、全てをpublicで書くと直接呼び出して欲しくない
メソッドまで公開してしまうことになるよね。
内部のチェックメソッドなんかで、BOOLを返す処理を書いた場合、
そのメソッドをカテゴリでオーバライドされてしまえば、
チェック処理をスルーさせるようなことも可能になるよねー。

どんな設計にしよ〜 ふにゃふにゃ
509名称未設定:2006/01/09(月) 20:39:23 ID:i/ETzCkT0
まずCocoaフレームワークをじっくり眺めて、お手本に汁。
あとカテゴリによるオーバーライドは、メソッドがキャッシュされてるから効かないかもしれないってどこかで聞いた。
扱いきれないならカテゴリなんて使わなければよしw
510495:2006/01/09(月) 20:46:24 ID:5vtWPyp60
道筋を与えてくれてありがとうー
Cocoaフレームワークってよく整理されてるよね
一個のメソッドにどっかりコーディングしているのかな〜
要するに全てのメソッドを公開する前提で設計しなきゃならないって
ことだよねー 

ちがうのかな〜 ふにゃふにゃ
511名称未設定:2006/01/09(月) 20:54:21 ID:3JQP/RBA0
>>507
あまりまとまってないけど、とりあえずのやり方。
間違ってたらゴメンして('A`)

先に出したヒレガス本だと、MVCって手法に基づいて作成していっている。
MVCについては http://e-words.jp/w/MVC.html とか。

Cocoaの場合、Viewつまり表示に関する部分は、IBを使って配置していく。
必要な場合には適当なNSView以下のクラスから継承して自分で新しく作ったりするけど、
基本はIBのパレットにあるものをそのまま使う。

ボタンを押したときの動作なんかを受け持つControllerの部分は、
その時々によって適当なクラスから継承して作る。
特に継承するクラスが無いならNSObjectから継承する。

データモデルを扱うModelの部分も同じような感じ。

で、IBを使って、Controllerのインスタンス変数(IBOutlet)やメソッド(IBAction)と
Viewのインスタンス(ボタンとか)との間にコネクションを貼る。

ところで、NSStringやNSDictionaryといった基本的なクラスはそのまま使う。
もしこれらの機能に不満があれば、カテゴリーっていう機能を使って、
そのクラスに新しいメソッドを追加したりする。

具体的なプログラミングの方法は、適当な本でも買ってください( ノ゚Д゚)
512名称未設定:2006/01/09(月) 21:04:45 ID:dXV83i8e0
>>508
privateカテゴリの宣言を.mファイルのはじめに記述するというのでは駄目?見かけだけだけど。
513名称未設定:2006/01/09(月) 22:15:34 ID:qzL9eH6x0
>>508
>そのメソッドをカテゴリでオーバライドされてしまえば、
>チェック処理をスルーさせるようなことも可能になるよねー。
そういうことする奴は設計以前の問題だと思うけど

>>511
MVCといえばこれが良くまとまってます
http://pcweb.mycom.co.jp/special/2005/cocoamvc/
514名称未設定:2006/01/10(火) 00:03:55 ID:gGrXBqEs0
>>509
心配になったのでランタイムのソース調べてみた。(darwinsource.opendarwin.org)
カテゴリやclass_addMethods()関数でのメソッドの追加・オーバーライドでは
キャッシュはクリアされる。つーか、カテゴリくらいでそんなじゃ困る。
メソッドキャッシュでハマるのって、poseAsClassでのポージングくらいじゃ?
515名称未設定:2006/01/10(火) 00:05:27 ID:fV0ESmtd0
>>508
お前誰や。馴れ馴れしいな。
先日本語の使い方勉強せい。
516名称未設定:2006/01/10(火) 00:08:20 ID:KqL2PqjU0
>>515
お前も少し変だぞ w
517495:2006/01/10(火) 09:53:50 ID:onb7XcmK0
>>512
頭の中では想像できないので試してみますね!

>>513
だよねー。でも不特定多数が使うクラスを想定して設計して
みようかとおもってるんだ

>>515
((((;゚Д゚)))ガクガクブルブル ごめんなさいっ

518名称未設定:2006/01/10(火) 20:46:15 ID:Q0sb3I3a0
なお現在のApple版の実装では一端呼び出されたメソッドがキャッシュされているため、動的に追加された新規メソッドが呼び出されるという保証はない。

ってWikipediaにあるけど
ウソ書いてんのかな
519名称未設定:2006/01/10(火) 20:54:39 ID:Ug4ig7Zx0
>>511 >>513
レス有り難う、なんとなく解ってきた気がします。
少しですけどここでのお話も解るようになってきました。
色々やって試してみます。

>>510
ふにゃふにゃ
520名称未設定:2006/01/10(火) 21:06:20 ID:H0pfwidS0
ヒレガス本てサンプルのソースは全部紙面に出てますか?
HMDT本買ったんだけど、要点の部分だけしか載せてないみたいで。
自分で打ち込みつつ読み進めたいのです。
521514:2006/01/10(火) 21:40:43 ID:5fFYn8/T0
>>518
うーん、マルかバツかというと微妙なとこすね。

自分の理解では次のよな感じ。「動的に追加」のやりかたによる。
1.クラス構造体のメソッドリスト(objc_class->methodLists)を直接操作してリストを追加したり、
 既にあるメソッド(objc_method)の実体(IMP)や名前(SEL)を置き換えたりしたときはアウト。
2.カテゴリやclass_addMethods()など提供されている機能を利用していればセーフ。
522名称未設定:2006/01/10(火) 22:42:56 ID:lDUh9Y0N0
>>520
基本的にすべて載ってるし、
完成したソースがWEB上にアップされてもいる。
523名称未設定:2006/01/11(水) 11:23:54 ID:kWR9wJPp0
HMDTもサンプルはWebにアップされてるけど、あの本は入門用としては
いくない。入門用ならヒレガス本以外にお薦め出来る本はない。
524名称未設定:2006/01/11(水) 18:09:57 ID:cQLqKR7N0
>>523
同意
525520:2006/01/11(水) 22:37:46 ID:iryeEWLA0
レスサンクス。
Amazonでポチることにしました。

本屋にあったのがHMDT本だけだったんですよね。
526名称未設定:2006/01/13(金) 23:44:58 ID:kzvIHZJM0
privateなメソッドを求めていた者ですが、最終的には原始的は方法に落ち着いちゃった
それは・・・Cの関数を使う事です(^v^)
クラス名_メソッド名();
で関数名の重複を防いで、パブリックメソッドのみ
ObjectiveCを使う事にしました。
Cの関数を使うと完全なグローバル関数になりますが、クラスの利用者からみると
問題ないと思いますのでこの方法で妥協しまーす。
527名称未設定:2006/01/14(土) 00:03:03 ID:aKcMzaH30
工エエェ(´д`)ェエエ工
528名称未設定:2006/01/14(土) 00:37:09 ID:yeZK+iWb0
もうね、阿呆かと
529名称未設定:2006/01/14(土) 01:03:09 ID:xiEE9i740
パブリックメソッド: ドキュメントに書く
privateメソッド: ドキュメントに書かない

で良いのではないか。
530名称未設定:2006/01/14(土) 05:43:04 ID:5N83mBrr0
インスタンス変数はどうするわけ?
>privateな人
531privateな人 :2006/01/14(土) 10:15:17 ID:LINLj2Ib0
やっぱだめかな?(;´Д`)
>>529
それでも良いんだけど、Xcodeのインテリセンスに出てきてしまうので
間違って使っちゃうかもしれないっしょ。ドキュメントもちゃんとしなきゃだしね

>>530
引数で渡します(^v^)
532名称未設定:2006/01/14(土) 10:36:35 ID:aKcMzaH30
( ゚д゚)ポカーン
533名称未設定:2006/01/14(土) 10:51:45 ID:BeBUMicP0
>Cの関数を使うと完全なグローバル関数になりますが、
これが許せて、private宣言できないObj-Cが許せない理由がわからない。

結局何がしたいわけ?
534名称未設定:2006/01/14(土) 11:03:43 ID:/CXrx4KE0
#pragma mark Private Do Not Use
とか書いとけば。
535名称未設定:2006/01/14(土) 11:07:32 ID:x8aPx70E0
Do not press this red button
536名称未設定:2006/01/14(土) 11:11:42 ID:8GwaGKZr0
>>526
カテゴリーを使ったらどうですか?

CocoaDev: KissyFaceView
<http://www.cocoadev.com/index.pl?KissyFaceView>
537privateな人:2006/01/14(土) 11:16:15 ID:ppibI/vE0
(´Д⊂グスン
>>533
クラス(独自のフレームワーク等)をあるグループに公開する場合、ヘッダファイルと
オブジェクトファイルのみを公開したいと考えています。
そこで、Cの関数だとヘッダファイルでプロトタイプ宣言しなければ、
クラス利用者は、どんなプライベート関数があるかわからない為、
(もちろんアーカイバ等で調べれば解りますが)
安心してパブリックメソッドだけを意識して使ってもらえると考えたのです。

でも、みんなの反応をみていると、あまり良い方法じゃないみたいね
パフォーマンスも稼げて良さそうな感じもするけどどうでしょ?
538名称未設定:2006/01/14(土) 11:29:45 ID:BeBUMicP0
>>537
>Cの関数だとヘッダファイルでプロトタイプ宣言しなければ、

「Obj-Cで非公開(private)ヘッダでカテゴリとして宣言すれば、」

もしかして、あなたは、Foundationフレームワーク等には
ヘッダで公開されたメソッド以外存在しないと
思ってらっしゃる?
539名称未設定:2006/01/14(土) 11:32:15 ID:yeZK+iWb0
publicなクラス定義と実装
Foo.h
Foo.m

privateなカテゴリ定義と実装
FooPrivates.h
FooPrivates.m

Foo.hだけ公開すれば済む話でしょ。
これならコード補完もされん。
540privateな人 :2006/01/14(土) 11:46:34 ID:ppibI/vE0
おお、プライベートメソッドはカテゴリで実装するのが一般的なんですね!
>>512さん まだ試していませんでした。
>>536さん 参考にしてみます。
>>538さん どうやって実装しているか解らなかったです。
>>539さん なるほどカテゴリをつかったイディオムがあるんですね。
みなさんありがとう(^v^)
>>496さんの俺様ルールをもう少し深く調べればよかったですね
541名称未設定:2006/01/14(土) 14:01:26 ID:jIUFhOR00
まあインスタンス変数を使わない単純な処理かつ、使用頻度が多くていちいち書くのがめんどくさい処理なんかは関数で書くことあるよ。俺も
542名称未設定:2006/01/14(土) 14:11:59 ID:BeBUMicP0
>>541
俺はそれに 「static でいける関数」ていう条件を付加してる。
ファイルスコープを越えるのであればメソッド化する。
これは自分への縛りだけど。
543名称未設定:2006/01/14(土) 14:27:20 ID:jIUFhOR00
>>542
同様。

昔、まだよく分かってなかったころは、ただの文字列の判定とか変換にもその場のクラスのメソッドを作ってた。
そういうのはNSStringのカテゴリでやればいいことなんだよな。
544名称未設定:2006/01/14(土) 15:18:03 ID:Pk30pLir0
>>540
ttp://www.metabolics.co.jp/OpenStep/OpenStepDevelopersDictionary/Category.html
おしまいの「カテゴリのそのほかの使われ方」見れ。

上記ドキュメントの冒頭に >>543 の説明があります。
Cocoaのクラスを継承した妙なクラスを実装するのはよそうな。
545名称未設定:2006/01/15(日) 02:23:05 ID:RZmlY23l0
ttp://perl.infoware.ne.jp/documents/Dekiru_CamelBones.html
perlでもできるとは知らなかった。
546名称未設定:2006/01/19(木) 20:42:49 ID:aKHVUZws0
10.4からはNSTextViewでEnterを押したときに入力される改行コードはLF?
それともそれ以前からそうなっていた?

ttp://drycarbon.com/marimo/index.rb?room=droom;memo=Objective-C+%3A+NSString
を読んで、実際10.4でEnter押したときに何が入力されるか見てみたらLFだったので、
ちょっと混乱してます。
547名称未設定:2006/01/19(木) 21:21:15 ID:sXNVKwDU0
\nで困ったことない
548名称未設定:2006/01/19(木) 21:43:19 ID:57bt23FH0
lfに統一して欲しい
549名称未設定:2006/01/20(金) 12:15:59 ID:re9zKAZo0
コマンドラインなObjective-Cを書いているんですけども
NSAutoreleasePoolを作ってこまめに破棄を組み込んでる
ところまで来ました。ここで、ふと疑問が。

コマンドでRUNLOOPを実装するのって意味ないですか?
NSTimerとかってRUNLoopがないと動かないと思うのだけど・・・

適当なサンプルってありますか?
550名称未設定:2006/01/21(土) 02:53:55 ID:/Khy0sLs0
アプリケーションウィンドウがアクティブになった時と、アクティブじゃなくなった時に
それぞれ、固有の処理をさせたいのですが、何かヒントをいただけないでしょうか!
551名称未設定:2006/01/21(土) 03:02:36 ID:7MiV3AVV0
- (void)windowDidBecomeKey:(NSNotification *)notification;
- (void)windowDidResignKey:(NSNotification *)notification;
552名称未設定:2006/01/21(土) 06:41:59 ID:ChfOSvwd0
553名称未設定:2006/01/21(土) 14:03:00 ID:TpiHT7K/0
>> 552
こういうのが知りたかったんです。ありがとうございました。
554551:2006/01/21(土) 16:31:56 ID:/Khy0sLs0
ありがとうございます。助かりました。
555名称未設定:2006/01/21(土) 17:40:19 ID:BakmaBmp0
OSXの標準言語ってObjective-Cなんですよね?

だから、「OSXプログラミング入門にはObjective-C!」

と思ったものの
Developer/Examplesにはいってるサンプルプログラム
.cppの多いこと多いこと
cppってC++のファイルですよね?

結局、これから言語は何を習得すればいいのか分からないです。

目的は、基本的には
Audiounitsプラグインの作成であったり
まあAudio関係のアプリケーションの作成なんだけれど

Windows/Mac両方でてる市販のアプリとかはC++が多いんですよね。
Windowsへの移植とかも考えると、C++の方が良いんでしょうけど、それは今のところ考えてないです。
556名称未設定:2006/01/21(土) 17:46:38 ID:bAmZPaR90
OSXの標準言語ってObjective-Cってのは違うような
CocoaがObjective-Cってだけで

CoreAudio関係は基本的にC
557名称未設定:2006/01/21(土) 18:38:19 ID:/+Vu31DB0
まずCを理解しておくと、Obj-Cは簡単だと思う
558名称未設定:2006/01/21(土) 21:32:12 ID:hyl11olQ0
必要に迫られたら覚えれば良い。
559名称未設定:2006/01/22(日) 01:36:37 ID:U09q7kMp0
ObjectiveCってデータベース関連のクラスって揃ってなさそうだね。
CoreDataがそれなのかもしれないが、MySQLやPostgreSQL使う時には
ソースを落としてライブラリを作成しなきゃならんのかな。
その場合、ウニバーサルバイナリはどうやってつくるんだろう。

今から勉強します。
560名称未設定:2006/01/22(日) 02:37:51 ID:ghL8FIl60
調べてないから確かな事は言えんがWebObjectsの歴史があるからあるんじゃない?>>DB用クラス
昔はObjective-Cだったんだろ?
561名称未設定:2006/01/22(日) 03:24:23 ID:NViGVdFX0
CoreDataが完全にEOFの機能を内包してくれればいいんだがね。
オレはそれを期待してるんだが。

さもなきゃObjC版のEOFを標準でOSに添付してくれればなぁ。でも
似たようなもの(CoreDataとEOF)ふたつメンテするよりCoreDataに
統合されちゃって欲しいな。
562名称未設定:2006/01/22(日) 13:51:35 ID:koFsH55P0
>CoreDataが完全にEOFの機能を内包

WebObjects抜きでEOFだけ使いたいってニーズがどんだけあるかじゃね?
CoreDataはスタンドアロンが前提なんだからsqliteを選んだのは正解だと思うけどな。
563559:2006/01/22(日) 14:04:30 ID:PJMQfhpR0
CoreDataがsqliteだけって勿体無いというか、
カプセル化しているのなら、データベースに
依存して欲しくないですよね。

ttp://gborg.postgresql.org/project/pgsqlcocoa/projdisplay.php
PostgreSQLのラップクラスがありました。でもGPLなので面倒ですね。

Javaなら選択肢が多いのでObjectiveCからJDBCのブリッジを作る
ってのは駄目かな?ユニバーサルにも対応できそうな気がするし。
564NMG:2006/01/25(水) 21:11:01 ID:biIFNoEZ0
NSOpenPanelについての質問です。

NSOpenPanelにsetAccessoryViewで
ファイルタイプを指定するポップアップメニュー付きの
ビューをくっつけました。

その後、NSOpenPanelをrunModalで開いて
ポップアップメニューを切り替えたときに
選んだファイルタイプ以外は、ファイルを選択できないように
したいのですが、うまくいきません。

NSOpenPanelのrunModalForTypesで
オープンする前にファイルタイプを指定するしか
方法はないんでしょうか…
565名称未設定:2006/01/25(水) 22:16:32 ID:EmMWrQEM0
>>564
-[NSSavePanel validateVisibleColumns]
をよぶと、でれげーとの
-[NSObject panel:shouldShowFilename:]
がよばれるってかいてあります。

りふぁれんすのvalidateVisibleColumnsのこうの
Discussionにあなたがやりたいことが
れいとしてあげられています。
566NMG:2006/01/26(木) 14:32:08 ID:2q1wUBKU0
>>565
ありがとうございます。
できました!
567もんすけ:2006/01/26(木) 23:12:44 ID:rkaekjJ50
★NSComboBoxの不思議

1)NSDrawer付きのウィンドウを作ります。
2)ウィンドウ内とDrawer内にそれぞれNSComboBoxを貼り付けます。
3)ウィンドウ内のComboBoxをプルダウンすると、escキーでプルダウンが
  閉じますが、Drawer内のComboBoxはescキーでプルダウンが閉じない。

これはまさにバグですな!!!
アップルだめじゃん。
568名称未設定:2006/01/26(木) 23:13:46 ID:y8MQUhAd0
Drawerって実装がいまいちな感じがする。
569名称未設定:2006/01/27(金) 11:12:55 ID:5o3bnm750
ドロワーって不要だと思う
570名称未設定:2006/01/27(金) 11:18:18 ID:qhW1NNT/0
俺も使わないなあ。
わざわざうにゅるりんって動かしても何の意味も無い。
枠の分スペース食われるし、普通にSplitViewでいい。
571名称未設定:2006/01/27(金) 11:30:36 ID:5xTYOlWJ0
俺は使ってるよ。使用頻度が低いけど、たまに使うものはドロワーに
入れてる。ボタンとか。メインウインドウに置くのも邪魔だし、ツール
バーに入れるとはみ出すから(操作性が落ちる)、ドロワーがあると助かる。
572名称未設定:2006/01/27(金) 16:35:21 ID:vQQHdQ0b0
>>304
今日このスレを見たんだが、
その本、最近必要になってしまって、
半年前にしかもBookOffで売ったのを後悔している…orz
573名称未設定:2006/01/29(日) 15:38:56 ID:uWXKKA+40
自分の作ったサブクラスからさらに、サブクラスを作ったんですが、
コンパイル時に以下のようなエラーが出ます。
何が考えられるのでしょうか?
error: cannot find interface declaration for 'Subclass', superclass of 'SubSubclass'
574名称未設定:2006/01/29(日) 15:54:11 ID:KsBkldEJ0
#import "Subclass.h"
575名称未設定:2006/01/29(日) 23:30:41 ID:usD8+uw70
絶版だけど、この値段で買う奴いるのかな?

ttp://page11.auctions.yahoo.co.jp/jp/auction/n32632178
576名称未設定:2006/01/30(月) 00:46:23 ID:qGVXwxjj0
いないだろう。Objective-Cの方ならまだわかるけど。
577名称未設定:2006/01/30(月) 03:21:43 ID:vQNMULLi0
cocoaはさっぱりな漏れが一個聞きたいんですけど、
トラックボールを転がして、画面を上下左右にスクロールさせるソフトって
cocoaで作れるもんですか。
マイティマウスのクリクリがトラックボールになるような感じ。
578名称未設定:2006/01/30(月) 03:36:24 ID:G/xOxTs20
>>577
トラックボール限定にするのは難しいけどマウスやトラックボールが動いたらスクロールさせるってのは出来るよ
579名称未設定:2006/01/30(月) 04:14:26 ID:vQNMULLi0
>>578
そっか、限定は難しいですか。ワコムのコレ↓
ttp://tablet.wacom.co.jp/products/smartscroll/smart_index.html
みたいにトラックボールを使えたらな、と思って。
これ、すごく便利なんだけど、ワコムがもうやる気ないらしく、
intelドライバも作る予定無しと・・・。
トラックボールでスクロールできるソフトがあれば漏れはシェアウェアでも欲しいよ。
580名称未設定:2006/01/30(月) 14:27:13 ID:cY6J8XZG0
>>579
つKensington Mouseworks
581名称未設定:2006/01/30(月) 16:15:16 ID:aYdzOODo0
>>580
見てきたけど、ExpertMouseシリーズにスクロールリングってのがついてますが・・・。
これはこのリングを回すとスクロールするって機能だよね。
なんか裏技があるってこと?
582名称未設定:2006/01/30(月) 17:39:40 ID:rJZ8ey1C0
Human interface Guidelineを再販してくれ・・・
583名称未設定:2006/01/30(月) 17:44:02 ID:UteinNQb0
>>582
頭にAquaがついたやつはADCで読めますが
584名称未設定:2006/01/30(月) 18:44:01 ID:cY6J8XZG0
>>581
そうじゃなくて、Kensington のマウスドライバ(それが Mouseworks)には、
マウス(トラックボール)操作でスクロールさせる機能があるってこと。

だから適当に Kensington のデバイス買って、それを使えば一応やりたいことができますよーって話。
585名称未設定:2006/01/30(月) 22:41:47 ID:b7ILn0Hb0
cocoaからMySQLを呼ぶには一体どないしたらよいのでしょうか。
まだPanther使っています。

SMySQL(http://mysql-cocoa.sourceforge.net/)というフレームワークを入れたんだけど、

"can't open library: /usr/local/lib/mysql/libmysqlclient.12.dylib"

と言われて困っております。
このあとどうすべきでしょうか?
教えて頂けたら有り難いです。
586名称未設定:2006/01/30(月) 23:40:43 ID:axft4HPP0
>>584
アリガトン。ただ、説明しづらいんだけどなんか微妙に違う気がする。
マウス操作でスクロールさせるんじゃなくて、
スクロールさせるためだけの操作って感じ。
プログラムの仕組みを分からんなりに想像すると、
トラックボールデバイスの回転情報を検出して、それに応じた
スクロールをさせるという感じ?マウス座標は全く別で。
マウス座標と、特定のトラックボールの座標を別々に検出できれば
なんとかならないだろうか。
587名称未設定:2006/01/30(月) 23:54:36 ID:UteinNQb0
>>586
分かるよ。スクロールホイールの2次元版ってことでしょ。
昔研究室のMacに、マウスの背中にトラックボールついたやつが繋がってて、
普通に動いてたからドライバいらないのかと思ってたけど。
ちなみにワコムのじゃなかった。

で、どっちにしろCocoaってのは、アプリケーションを作る環境で、ドライバとなると無理なんだわさ。
どっかの神を捜すしかないやね。
588名称未設定:2006/01/31(火) 01:27:58 ID:Y7ZccvTt0
>>587
そっか、ハードウェアの入力がなんとかなりそうだったら、
N88 BASIC経験者の漏れが勉強してみようかと思ったけど難しそうだな。
神の登場を待つよ。でも実現できたら、グラフィックデザイナーや
絵描き系の人にはかなりウケると思うよ。
WACOMのは、バカ高くて、売り方がヘタだったのでコケたらしいので。
ちなみに好奇心で聞くんだけど、ドライバってどういう言語で作られてんの?
589名称未設定:2006/01/31(火) 01:55:07 ID:ZYiZiTgS0
Embeded C++
590名称未設定:2006/01/31(火) 02:08:49 ID:Y7ZccvTt0
>>589
それってかなり敷居高い?
591名称未設定:2006/01/31(火) 03:34:16 ID:mu9P32pn0
592名称未設定:2006/01/31(火) 06:22:29 ID:q0SW3cct0
http://www.steim.org/steim/junxion.html
こんなソフトがあるよ
ちょっと参考資料

本来は、
マウスとかキーボード、ゲームパッド等の操作情報をMIDI信号に変換して、
それらのコントローラーでシンセサイザー等をコントロールするためのソフト
なんだけど、

いろんなデバイスをつないだときに、それぞれのデバイスの入力情報を、OSのカーソルなどとは独立して読み込んでる様が見える
有料ソフトなんでソースは無いけどね
593名称未設定:2006/01/31(火) 11:33:15 ID:Y7ZccvTt0
>>592
サンクス。漏れには手が出せそうにないけど、一応ハードウェアの操作情報を
取り込む事はできるんだなー。
594名称未設定:2006/01/31(火) 16:38:10 ID:RvPyRXpk0
ヒレガス本って、向こうじゃ第二版が出てるのか・・・

日本語版を片手にちまちまコードを入力したりしているんだけど、
間違っててもほとんど警告もエラーも出ずにコンパイラ通るんだな。

さっきから、§5.5までのコードを入力してコンパイル、実行してたんだけど、
セレクタtableView:〜に飛ばないアプリができあがったorz
(↑デバッガで確認。TableViewに何も表示されない・・・)
あがくこと2時間。

どこが悪いかわからず右往左往していたんだが、
該当部分(p.114)を思い切って全部消して入力し直したら正常に動いた!

自由度が高すぎるのも何だかなぁ。
595名称未設定:2006/01/31(火) 18:14:58 ID:mkQUPIam0
第二版は1年くらい前に出てるよ。日本語版は地味に売れてると思うから
第二版出しても損はないと思うのだがなぁ。でも、もう内容が古いかな?
596名称未設定:2006/01/31(火) 23:11:25 ID:iV0kW2iz0
次の事柄についてもし情報をお持ちの方がいらっしゃったらどうか教えてくださいm(_ _)m
PantherからTigerに乗り換えたのですが、NSTaleViewの描画方法が変わってしまったのです。
セルの幅以上の文字を表示した時、10.3ではギリギリまで表示していましたが、10.4では"..."が
表示され途中で切れてしまいます。
回避する方法は無いのでしょうか?
多くの情報を表示しているので、セルの幅を大きく出来ず、殆ど"..."しか表示されない
項目もあって困っています。
一般的には問題にならない部分かもしれませんが、どうかよろしくお願い致します。
597名称未設定:2006/01/31(火) 23:51:25 ID:hCpi7g/v0
>>596
>For applications linked on or after Tiger, NSTableView's (and NSOutlineView)
>default data cell now defaults to using NSLineBreakByTruncatingTail
>for its line break mode. Set -[NSCell setLineBreakMode:] for more information
>on line break modes.

AppKit Release Note より引用
598名称未設定:2006/02/01(水) 00:09:22 ID:2Z+U2p+Z0
>>597
ありがとうございます!!
うれしくて涙がちょちょぎれてきました。
早速試してみます! うれしい!
599名称未設定:2006/02/01(水) 10:57:49 ID:sSQzHRKG0
日本語訳のヒレガス本持っているんだけど、
次買うとしたら、
 ・Advanced MAC OS X Programming
 ・Cocoa Programming for Mac OS X 2nd Ed.
どっちがいいかな?
600名称未設定:2006/02/02(木) 10:59:26 ID:/yXppx0F0
NSStringのinitWithContentsOfFile:usedEncoding:error:が使えないもんだから
代わりのものを自力でとりあえず書いて、
UTF-8とISO-2022-JP、Shift_JIS(半角かな無視)は判別するようになったけどEUC-JPで落ちる(´・ω・)
そもそもCがわからない。
Objective-CはCに比べて大分敷居が低いんだと実感した。
Cの本買ってこなきゃ。
601名称未設定:2006/02/02(木) 18:52:10 ID:lSmv1GSM0
Obj-C書いた後にCやC++のソースを見ると目が疲れる。
602名称未設定:2006/02/02(木) 21:55:22 ID:6r1+jfdQ0
>>600
ちょっと気になったので・・・
文字コード自動判定するメソッド作ってるんですか?
603名称未設定:2006/02/03(金) 01:16:00 ID:SioGht+l0
ヒレガス本、ようやくローカライズの章まで終わった。
途中、よく理解できない部分があったが、もう一度最初から見直してみるかな。
604名称未設定:2006/02/03(金) 09:38:28 ID:neGIHTT90
>>602
作ってたけど、Cに慣れてないのと複雑なのとで即頓挫。
楽に実装したいなら、NSTask経由でPerlのEncode::Guessモジュールを使ったほうがいい事に気づいた。
OSXならPerl5.8も標準でインストールされてるし。
605名称未設定:2006/02/03(金) 19:45:50 ID:YNy/9R4A0
NSStringのinitWithContentsOfFile:usedEncoding:error:の評判悪いですね。
いろんな場所で機能してないと聞きます。

自分で実装するとなるとやっぱりCが書けると楽ですよね。
データをいじったりする内部的な部分はCの力業に任せて、GUIやコントロールなんかの表面的な部分をObjective-c(API)を使って書けるのがCocoaのが強いところですね。

Cはわかるけど文字コード判別アルゴリズムがわからない。
606名称未設定:2006/02/03(金) 22:19:11 ID:LjOtzy1L0
>>605
ttp://www.gprj.net/dev/tips/other/kanji.shtml
旧方法らしいけど。

ところで、AppKitはソースの公開してないんだよね?
607名称未設定:2006/02/03(金) 22:34:05 ID:LjOtzy1L0
追記
UTF-16は先頭がFEFF、FFFEかで判別可。
ttp://www.ffortune.net/comp/develop/data/utf.htm のバリエーションの項参照。
608名称未設定:2006/02/04(土) 11:04:49 ID:ugtJQlTH0
Windowsのメモ帳はUTF-8にもBOM入れやがるな。
609名称未設定:2006/02/04(土) 20:28:50 ID:0eXlnwUn0
Cocoaのナレッジベース目的のWikiがあったら需要あるだろうか?
クラス名などで記事にタグ付けしたいから、WikiではなくWordPressのが個人的にはいいかなーと思うんだけど。
610名称未設定:2006/02/04(土) 20:50:18 ID:mxUh53MO0
需要あるかどうかより、自分のしたい事すれば良いじゃん。
611名称未設定:2006/02/05(日) 06:56:30 ID:gXjO3qXw0
需要あるに一票
612名称未設定:2006/02/05(日) 12:28:07 ID:fuRlMI3Q0
CocoaDev の日本語版みたいなのがあるといいなぁ
613名称未設定:2006/02/05(日) 14:39:25 ID:8mOFZ6/I0
Photoshopのツールバーのようなキーウインドウにならないフローティングパレットを作りたいんですけど
どのように設定すれば良いんでしょう?
614名称未設定:2006/02/06(月) 00:55:47 ID:EF2yTbca0
>>613
NSWindowのサブクラスを作ってisKeyWindowでNOを返す。
>>609
読むだけの需要は沢山あるよ
615名称未設定:2006/02/06(月) 23:49:52 ID:PlJzeVC+0
>>614
ありがと。
isKeyWindow じゃなくて、canBecomeKeyWindow で NO を返せば目的通り動きました。
616名称未設定:2006/02/07(火) 12:43:32 ID:EBWYUtQl0
NSArrayControllerで選択中のオブジェクトに対してアクションを送りたいのですが
IB上で設定する方法ってありますか?
617名称未設定:2006/02/07(火) 16:45:59 ID:ytPJj+W/0
デリゲートのメソッドが動かないのを1日かけて「何故か」と考えていたが、
メソッド名のアルファベット大文字小文字を1字間違えてただけだったorz....

なんとかならんのか…
618名称未設定:2006/02/07(火) 16:48:05 ID:x4t6h+k00
自動補完汁
619名称未設定:2006/02/07(火) 17:09:42 ID:ytPJj+W/0
http://www.bignerdranch.com/products/core.shtml
↑この本持っている人の感想きぼん…
620名称未設定:2006/02/07(火) 17:15:39 ID:ytPJj+W/0
>>618
メソッド定義の部分だから自動補完が効かないのよ
621名称未設定:2006/02/07(火) 17:20:22 ID:hWnJByfV0
クラスブラウザの該当部分からコピペするってのはどうよ。
622名称未設定:2006/02/07(火) 17:22:48 ID:OYHvGV8b0
オレはいつもコピー&ペースト
623LOOH:2006/02/07(火) 17:47:19 ID:xTgiGk/b0
NSToolbarつきのウィンドウに対して、
そのToolbarだけを描画更新したいのですが、
方法が分かりません。
[NSWindow display]を呼ぶと、描画更新されるんですが
ウィンドウの内部まで描画更新処理が入ってしまい、
処理が遅くなってしまいます。
どなたかご存知でしょうか…?
624名称未設定:2006/02/07(火) 20:42:34 ID:SinlPgUy0
とりあえずWikiを建てたので晒しておく。
ttp://aerial.s184.xrea.com/dev/cocoa/wiki/
625名称未設定:2006/02/07(火) 21:14:11 ID:x4t6h+k00
>>624
乙やがな
暇があったらおいしいカレーの作り方でも書いておくがな
626名称未設定:2006/02/07(火) 22:26:42 ID:vJiLYuMc0
>>624

627名称未設定:2006/02/08(水) 12:20:01 ID:+S3lno2o0
>>619
amazon.co.jpかamazon.comで見てみればユーザーレビュー出てるだろ。
628名称未設定:2006/02/08(水) 16:46:27 ID:IE/icW9O0
10.4でインフォシークウェブメールチャッカー作成したいのですが・・
プロトコル(WebDAV?)詳しい方教えてください・
629名称未設定:2006/02/09(木) 07:10:47 ID:k099aYbu0
「チャッカ−」って何?
630名称未設定:2006/02/09(木) 11:15:49 ID:RDqRKgh40
Gmail Notifierのように、メールの到着などを通知するものではなかろうか。
631名称未設定:2006/02/09(木) 17:29:32 ID:sMbvSmOe0
>628
cocoaハヤッパリをみると NSURLDownload で読めそうな感じです〜
NSURLConnection でやってみます〜

"Notifier"、サンクス。

632名称未設定:2006/02/09(木) 23:09:29 ID:4LAYKqHp0
強制的にレインボーカーソルにする事はできますか?
633名称未設定:2006/02/09(木) 23:53:35 ID:X3WZsGnA0
while(1);
634名称未設定:2006/02/10(金) 00:00:29 ID:a/ajo0di0
たしかRunLoopが一定時間超えたら虹色がでるんじゃなかったけ?
ふつうの方法ではコントロールできなかったかと。
635名称未設定:2006/02/10(金) 00:27:53 ID:+qnpG0Dr0
適当な無限ループ入れりゃいいのでは
636名称未設定:2006/02/10(金) 10:38:03 ID:PHB8NrdQ0
Carbonで自分で作るとか。Cocoaは知らん。
637632:2006/02/10(金) 23:29:51 ID:fJmheTE20
サンクス。
出来ないと思っていた方が良いみたいですね。
638名称未設定:2006/02/11(土) 16:01:21 ID:S+4/f1Fg0
>628です、
NSURLConnection で読めました、パチパチ!
NSMutableDataの検索方法さがしてます・ふぅ〜
639名称未設定:2006/02/11(土) 16:32:14 ID:9TTG9Czf0
このスレいつも重い
640名称未設定:2006/02/11(土) 16:43:19 ID:3OcHUZXy0
Wikiに書き込んでくれる人がいてくれて、
ありがたや。
641名称未設定:2006/02/12(日) 15:49:42 ID:tugHXHFLP
>637
Spin Control Documents
642名称未設定:2006/02/13(月) 21:53:32 ID:YGpYGdcR0
CobjectiveCのリテラル文字はretainされるんでしょうか?
NSString *str = @"TEST";
の場合はstrをreleaseする必要があるのかな?
643642:2006/02/13(月) 21:54:35 ID:YGpYGdcR0
すみません、こんな簡単な事でageちゃいました。
よろしくお願いしまする。
644名称未設定:2006/02/13(月) 23:10:10 ID:chl/nXDv0
rその場合@"TEST"のインスタンスは一つだけ作られて、retainCountはMAXになっていて、
retainもreleaseも意味が無かった希ガス。
一つだけってのは同じ実行ファイルでいくら@"TEST"って書いても一つだけってことね
645642:2006/02/14(火) 00:18:12 ID:WPsSWfxi0
そうなんですか、びっくり!
今まで疑問で眠れない日が続いていたんですよね
聞いてよかったです。ありがとうございます!スッキリ
646名称未設定:2006/02/14(火) 00:32:43 ID:A63g2JeW0
>>645
もう少し気楽に生きた方が良いと思うな w
647名称未設定:2006/02/14(火) 00:53:59 ID:yMsCXbC+0
なぜ参照カウントを見てみないのかな?
648名称未設定:2006/02/14(火) 10:45:26 ID:QMn1BWGi0
やっぱり 森永!!
649名称未設定:2006/02/14(火) 12:44:39 ID:1IcIQ8bn0
Coco ストア!!
650名称未設定:2006/02/14(火) 16:46:01 ID:auU7olvN0
>>645
オブジェクト定数については萩原本に出てるんだけど、これ出版社が
つぶれて入手不能だからなぁ。
651名称未設定:2006/02/14(火) 19:10:35 ID:10gJxRha0
652名称未設定:2006/02/14(火) 19:21:33 ID:fJ5iUVcQ0
古本屋とかにあるんじゃ
653名称未設定:2006/02/14(火) 22:00:48 ID:4/+nJI110
×萩原
○荻原
654名称未設定:2006/02/15(水) 01:41:56 ID:KBL6C20F0
もう「おぎわら」でも「はぎわら」でもどっちでもいいよ!
655名称未設定:2006/02/15(水) 06:31:53 ID:Od6BEdZ/0
前スレのログが見つかったんで置いといた。
つ http://aerial.s184.xrea.com/dev/cocoa/2ch/1091927026.html
656名称未設定:2006/02/16(木) 12:49:35 ID:6NlfSWjk0
>目下、同様の内容をカバーする書籍の準備を進めています。詳細は追って報告します
ttp://www.info.kochi-tech.ac.jp/ogihara/software/objc.html
657名称未設定:2006/02/16(木) 12:59:14 ID:OSRo0zF20
>>656
お、期待しとこう
ところで「おぎはら」って読むのが正しいの?
658名称未設定:2006/02/16(木) 13:29:20 ID:9j1kOhKC0
>>657
656の下の方にメールアドレス書いてあるからそれを見ればわかる。
659名称未設定:2006/02/16(木) 13:35:50 ID:OSRo0zF20
>>658
いや、それを見て質問したんだw
そういう読み方あまり聞いた事無かったもんで
660名称未設定:2006/02/16(木) 13:38:56 ID:9j1kOhKC0
それ以前にハギとオギでは漢字自体が違うんだが。
661名称未設定:2006/02/16(木) 13:57:46 ID:GyNvpXE30
え?そっちだったの?
「おぎわら」と「おぎはら」だと思ってた
662名称未設定:2006/02/16(木) 15:50:44 ID:1DwS5Ol90
>>656
おー、こんなページあったんだ。
新本がでるのと、復刊希望100人(現在54人)集まるのとどっちが早いかな?
663名称未設定:2006/02/16(木) 16:05:10 ID:tQp5V6F80
>>659
例の本の著者略歴に
荻原剛志(おぎはらたけし)
とあるんで、メアドのとおりだと思うよ。
664名称未設定:2006/02/16(木) 16:50:29 ID:6NlfSWjk0
>>662
新刊の方が、たとえ遅くても良いかと。
最近追加された、同期や例外構文がフォローされるかもしれないし。
665名称未設定:2006/02/16(木) 17:00:14 ID:9j1kOhKC0
オブジェクト同期や新しいObjective-C例外処理はアップルでドキュメントが
日本語化されてるからあってもなくてもどっちでもいいよ。
666名称未設定:2006/02/16(木) 17:08:44 ID:GyNvpXE30
最近ようやっとObjective-Cに慣れてきた。
667名称未設定:2006/02/17(金) 02:31:09 ID:G0MSYhNU0
C++とPowerPlantを忘れつつある
668名称未設定:2006/02/17(金) 11:30:05 ID:+376IglQ0
NSTabViewで、ラベルの文字列の長さに関わらず、
すべてのタブを同じ大きさにするにはどうすればいいですか?
669名称未設定:2006/02/17(金) 21:57:02 ID:8LG62q/30
NSTabViewItemのdrawLabel:inRect:をオーバーライドして、
矩形のサイズを指定してしまうとかかな。

ttp://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/NSTabViewItem.html#//apple_ref/occ/instm/NSTabViewItem/drawLabel:inRect:
670名称未設定:2006/02/18(土) 10:44:37 ID:MONl3Sni0
FAQだと思うのですが...

時間指定で動作するアプリケーションを作っています。この中で、処理中はScreenSaverを動かさないようにしたいのです。

動作中のScreenSaverを止めたり、処理中だけScreenSaverが起動しないように操作したいのですが、どこか情報のあるリンクをご存知でしたら教えてください。
671名称未設定:2006/02/18(土) 14:00:29 ID:RNOjD86h0
>>669
ありがとうございます。
NSTabViewItemのサブクラスを作り、sizeOfLabel:で任意のNSSizeを返し、
drawLabel:inRect:でNSRectを弄り、文字が真ん中に来るように調節したらできました。
672名称未設定:2006/02/18(土) 18:14:45 ID:3AubL77AP
>>670
http://developer.apple.com/jp/qa/qa2004/qa1160.html
Q: アプリケーションの実行中にシステムがスリープ状態になるのを
回避するにはどうしたらよいのでしょうか。

試してないけどスクリーンセーバーも止まるかも?
673nori:2006/02/18(土) 19:36:23 ID:9pBjwXhv0
Microsoft製品、たとえばOffice macの
プラグインモジュールとか作ってみたいんですが
どこかそういう情報が載っているページを
ご存知の方いらっしゃいますか?
674名称未設定:2006/02/22(水) 01:00:48 ID:j9ltAiFB0
sage
675名称未設定:2006/02/22(水) 20:09:43 ID:7MuqpRr/0
自作のGUI部品を作って、それをInterfaceBuilderで使うにはどうしたらいいですか。
具体的には簡単なエディタを作ろうとしているのですが、NSTextViewのサブクラスを作って、そこでいきづまりました。
サブクラスをインスタンス化するとProxyオブジェクト?になりますが、それを部品として画面に貼付ける方法がわかりません。

676名称未設定:2006/02/22(水) 20:16:26 ID:Rs2M8aSh0
>>675
まずNSTextViewを画面に配置してから、インスペクタを出してCustom Classで選択。
677名称未設定:2006/02/22(水) 21:09:59 ID:R3iSyqGo0
>>676に補足。
間違えてNSScrollViewのカスタムクラスを設定しないように注意。
678名称未設定:2006/02/22(水) 21:11:52 ID:lJlJP/Aa0
暇ならパレット作ってしまうのも手。
http://wwwa.dcns.ne.jp/~nito/OSPT/Palette.html
679675:2006/02/22(水) 21:40:48 ID:7MuqpRr/0
>>676,677
さんくす。NSScrollViewをダブルクリックしたらNSTextViewを選択できた。
ダブルクリックがポイントだったのね。

ところで、NSTextViewのサブクラスを作るのが正解なのかどうか、自信がないので相談させてください。
やりたいことは簡単なテキストエディタを作って、キーバインドをカスタマイズしたりとかしようと思ってます。
今はNSTextViewのサブクラスつくって insertText: を上書きすればいいのかなと思ってるんですが、この方針であってるんでしょうか。
もしかしたら、サブクラスを作らなくても、キーバインドを横取りできるような仕組みがあるような気がしてます。Cocoaのクラス設計は秀逸みたいだし。
NSTextViewで発生したキーボードイベントをdelegateするかなんか、そんな方法があれば教えてください。
680名称未設定:2006/02/22(水) 22:49:41 ID:paMws3q/0
681名称未設定:2006/02/22(水) 22:56:41 ID:EeAU1PI30
>>679
- (void)textViewDidChangeTypingAttributes:(NSNotification *)aNotification

これじゃだめか?
デリゲートしといて、これインプリメントしてれば来てくれると思うが。
NSTextView使った事無いからマニュアル見ただけだけど。
682名称未設定:2006/02/22(水) 22:59:05 ID:EeAU1PI30
すまん、違った
知るだけじゃなかったんだな
これじゃカスタマイズできないわ
683名称未設定:2006/02/22(水) 23:10:30 ID:oQAbvgh60
>>679
NSTextView のサブクラスを作って、
- (void)keyDown:(NSEvent *)theEvent
を上書きすれば良いかと、、

CotEditor 等のソースを公開しているソフトを参照してはどうですか?

684名称未設定:2006/02/22(水) 23:51:06 ID:FZiFIGCQ0
ラベルとして使っているTextFieldをいじっています。
ダブルクリックでドロワが開くようにしたいと思っています。

実際にControlをDoubleClickに対応させるためには、
やはりサブクラス作るのがベストですか?
よりスマートな方法はありますか?

透明なボタンを置く、という方法だと、押したときに
白い枠が出来てしまい、うまくありませんでした。
685名称未設定:2006/02/23(木) 00:17:06 ID:I0/1KITZ0
686名称未設定:2006/02/23(木) 07:07:46 ID:uuWAA32k0
>> 685
ありがとうございます。試してみます。
687名称未設定:2006/02/23(木) 11:46:55 ID:iQuujikP0
すいません、超初心者です。
簡単なWEBブラウザを作っていろいろと実験しているのですが、

NSMutableURLRequest*request;
request = [NSMutableURLRequest requestWithURL:url];

[request setValue:@"hoge.app" forHTTPHeaderField:@"User-Agent"];
[request setValue:@"hogehoge" forHTTPHeaderField:@"Referer"];

[[webView mainFrame] loadRequest:request];

とやってwebViewに読み込ませた場合、Refererは反映されるのですが、
User-Agentは普通のSafariのものとなってしまいます。

User-Agentを設定するには、なにか別の方法があるのでしょうか?
688名称未設定:2006/02/23(木) 15:40:12 ID:eTjFnj510
setCustomUserAgent:
689名称未設定:2006/02/23(木) 15:53:36 ID:dOfAgMCT0
WebViewはURLRequestのUser-Agentを、自身のcustomUserAgentで置き換えてからリクエストするのか。
横レスだが参考にした。
690名称未設定:2006/02/23(木) 18:13:59 ID:iQuujikP0

>> 688

そんな簡単な方法が!
ありがとうございました。

回り道をしていましたが、
NSMutableURLRequest
とか勉強になったので良かったです。
691名称未設定:2006/02/24(金) 06:29:23 ID:JwTZ0RBI0
NSOutlineViewで行をドラッグしたいんですが、左の三角ボタンのあるセルでしか
ドラッグがスタートしません。(それより右側のセルはつかめない)
行のどこをつかんでもドラッグがスタートするようにはできないでしょうか。
692名称未設定:2006/02/24(金) 06:37:09 ID:dvSYUP+t0
>>691
10.3 以前はそんな感じになる。
10.4 では行の何処を掴んでもドラッグできる。
解決方法は知らない。
693名称未設定:2006/02/24(金) 10:55:33 ID:InfL7uFT0
>>691
setVerticalMotionCanBeginDrag:
副作用はあるがYESで一応希望の動きになると思う
694691:2006/02/24(金) 18:20:55 ID:JwTZ0RBI0
10.3.9用で作っていたのですが、10.4用に変えたら、確かに
どこを掴んでもドラッグできました。
でもドラッグイメージは一番左のセルだけなんですよね。

>>693
10.3.9で試したんですけど、ならなかったです。

NSOutlineViewはNSTableViewを承継しているのに、
テーブルとしての使用は余り想定されていないのかな。
695名称未設定:2006/02/26(日) 00:30:10 ID:i6+0K49y0
Document-based Applicationで保存、読み込みが出来ません。

- (NSData *)dataRepresentationOfType:(NSString *)aType
- (BOOL)loadDataRepresentation:(NSData *)data ofType:(NSString *)aType

ともにオーバーライドしていますが、両方とも親クラス(NSDocument)に実装されている
ダミーの方が呼び出されているみたいです。
以前はそんな事無かったのですが、何か他にチェックすべき点などありますか?
696名称未設定:2006/02/26(日) 02:38:22 ID:4Zorxqhe0
デフォルトではMyDocumentに割り当てられるはずだけど、
ドキュメントタイプに対応するクラスがNSDocumentになってるとか。
697名称未設定:2006/02/26(日) 02:51:06 ID:llnhzhjm0
Deprecated in Mac OS X v10.4.
だから使うのやめなよ
698695:2006/02/26(日) 07:07:45 ID:i6+0K49y0
ほんとだ、Tigerから使えなくなってる orz
代わりに何で保存、読み込みを実装するんでしょうか?
699名称未設定:2006/02/26(日) 07:42:04 ID:0dihpVc70
>>698
マニュアルでdataRepresentationOfType:を見ると
This method has been deprecated. Use dataOfType:error: instead.
と載っているが。
loadDataRepresentation:ofType:は
This method has been deprecated. Use readFromData:ofType:error: instead.
だな。
700700:2006/02/26(日) 11:24:04 ID:D4ciGl+z0
700get
701名称未設定:2006/02/26(日) 13:12:20 ID:KSSekvOO0
>>694
自分はCarbon使いなので見当違いの事を書いてるかもしれないけど、
selectしたときのハイライトがminimalで一番左のカラムだけがハイライトされてない?

Carbonだとドラッグを認識させたいカラムに対して
http://developer.apple.com/documentation/Carbon/Reference/databrow_reference/index.htmlの
Property Flags: List View Column Behaviorの
kDataBrowserListViewSelectionColumnを有効にするとminimalでドラッグ出来るようになる。
(実際はIBで設定するけど)
ハイライトがFULLだとまたちょっと違う動作になる。

カラムのハイライトの状態とドラッグは関係があるみたいだから、
その辺で解決できるかも。
702695:2006/02/26(日) 16:44:06 ID:++udsfpf0
>>699
サンクス。
readFromData:ofType:error: を実装しても動かないから悩んでいたんだけど
なぜかMyDocumentの親クラスがNSDocumentではなくNSPersistentDocumentになってた。
特に変わった事をした覚えは無いんだけど、とりあえずNSDocumentを親にして動くようになりました。
ありがとう。
703名称未設定:2006/02/27(月) 07:44:08 ID:YSgjDYSk0
NSObject ないし NSObject のサブクラスのインスタンスが2つあるとして、
それらの生成の先後を知ることはできないでしょうか。
どんな形でもいいですので、知る方法があったら教えてください。

具体的には NSMutableArray のインスタンスの生成の先後を知りたいのですが、
これはクラスクラスタなので、
サブクラスを作って生成の時刻を保持させるといった手法は難しいのです。
704名称未設定:2006/02/27(月) 17:59:03 ID:SOuOlVS+0
NSViewで、描画内容を回転するにはNSAffineTransform等を使いますが、
NSView自身を回転するにはどうすればいいでしょうか。
705名称未設定:2006/02/27(月) 19:03:31 ID:Udphj6GE0
やったことないから見当違いかもしれないけど、
サブビューに表示させたい内容を描画させて、
そいつの親ビューに回転の処理をさせるとかかな。
706名称未設定:2006/02/27(月) 19:55:56 ID:SOuOlVS+0
NSViewに普通に
-(void) rotateByAngle:(float *)angle
というのがあった。。(;´Д`)

http://amb.sakura.ne.jp/hanyou/img-box/img20060227195537.jpg
707名称未設定:2006/02/27(月) 22:47:41 ID:1c/YJGoP0
708名称未設定:2006/02/27(月) 23:10:27 ID:5weTAhT40
>>706
試してみた。おもしれ〜。
傾いたままで日本語入力変換できるのはおもしろい。

でも、ポップアップメニューはマッスぐ出るのが変。

微妙に傾けると、NSBoxとかの地に干渉縞がでるんだね
709名称未設定:2006/02/27(月) 23:22:26 ID:GvXUfkLf0
>>706
何気にすげー
710691:2006/02/28(火) 11:17:17 ID:AnW1Be/M0
>>701
selectするときは行全体がハイライトされます。でもドラッグするときはセレクト状態とは
関係ないんです。(セレクトしていない行もドラッグできる。)

イベント捕まえて頑張って処理をすればできないこともないんでしょうけど、
なにせめんどくさい。仕様なので仕方ないですね。
711名称未設定:2006/02/28(火) 22:03:57 ID:JvGz7M9X0
今更だけどintの範囲はどのくらい?
てっきり32767と思い込んでたんだけど違うのね。
712名称未設定:2006/02/28(火) 22:33:50 ID:29cvnImu0
>>711
sizeof(int)
713名称未設定:2006/03/01(水) 00:53:58 ID:cjBhpL8H0
>>711
limits.hに定義されているよ。
INT_MAXとINT_MIN
714711:2006/03/02(木) 17:12:38 ID:dBJ8HBCP0
>>712,713
2147483647ですた。ありがとう。
715名称未設定:2006/03/06(月) 13:59:29 ID:P3eJEu3W0
autoreleaseが有効かどうかって知る方法ないですか?

バンドル内の関数で、Carbonアプリケーションからロード&呼び出しされた場合だけ
[[NSAutoreleasePool alloc] init] したいのですが。
716名称未設定:2006/03/06(月) 14:53:22 ID:qLMWZ6MX0
尼損で荻原本の中古を予約してたら、今日出品キタ━━━━(゚∀゚)━━━━!!
717名称未設定:2006/03/06(月) 14:54:26 ID:Nl2xl7tq0
>>715
その他の場合には「したくない」理由ってなに?
718名称未設定:2006/03/06(月) 15:31:39 ID:P3eJEu3W0
>>717
理解が間違ってるのかもしれませんが、

バンドルの関数A(例えばシートを出す処理)で bundlePool = [[NSAutoreleasePool alloc] init]; して、
バンドルの関数B(例えばシートを閉じる処理)で [bundlePool release]; する場合、
Aが呼ばれ、Bが呼ばれるまでの間に autorelease されたオブジェクトは全て、
bundlePoolにたまってることになります �よね?

Cocoaアプリの場合は既にあるautorelease poolに任せたほうが効率がいいので、
バンドル内でautorelease poolを作成しないほうがいいのでは、と考えました。
719名称未設定:2006/03/06(月) 16:03:15 ID:Nl2xl7tq0
>>718
>Cocoaアプリの場合は既にあるautorelease poolに任せたほうが効率がいい
初耳。ループなんかで普通に作っちゃ捨てするけどなあ。
720名称未設定:2006/03/06(月) 16:47:25 ID:P3eJEu3W0
>>717の例で、

例えば、関数Aで [[NSAutoreleasePool alloc] init]; した直後に
何かをautoreleaseすると、実際は関数Bが来るまでreleaseされないので、
それよりはイベントループごとにreleaseされるデフォルトのautorelease poolに
任せたほうがより早く解放されるんじゃないか、という意味です。

�って書いてて思ったんですが、そもそも2つの関数それぞれで
NSAutoreleasePoolを作成・破棄するのがあるべき方法で、
2つの関数をまたいで作成・破棄しようって考えたのが間違いですね。
どうしてもそうしなきゃいけない状況なんてないでしょうし。

失礼しました。忘れて下さい。
721名称未設定:2006/03/07(火) 16:40:59 ID:8bev88E50
iPodに何かを書き出す機能を実装するとき、
メソッド名はexportToIPodかexportToiPodのどっちがいいかな?
つまり、iPodのiを小文字にするか大文字にするかなんだけど。
722名称未設定:2006/03/07(火) 19:34:15 ID:EZbZ0MYH0
exportToOsukiniPod
723名称未設定:2006/03/07(火) 19:55:03 ID:CvHVVp8s0
aipoddoNiKakidasi
724名称未設定:2006/03/07(火) 21:26:49 ID:2YyWGS8a0
>>721
何があろうと区切りは大文字
725名称未設定:2006/03/07(火) 22:32:24 ID:w0vNYMjQ0
exportTo_iPod:
726名称未設定:2006/03/07(火) 23:27:16 ID:f4pES5Ca0
アンダーバー
(´・ω・`)イクナイ
727名称未設定:2006/03/08(水) 00:08:42 ID:VjS24TAC0
>>723
不覚にも
728名称未設定:2006/03/08(水) 00:21:03 ID:bEcwiqlt0
export2iPod
729名称未設定:2006/03/08(水) 00:27:19 ID:fRraVU0n0
iPod に書き出すなら exportP
ファイルに書き出すなら exportF
730名称未設定:2006/03/08(水) 14:01:24 ID:ZhsFc7qd0
NSTextView に添付された画像の解像度を変えたくていろいろやっているのですが
(要はピクセル数を変更せずに表示の大きさを変えたい)
NSImage やNSImageRepのsize を変えても、コピー&ペーストすると
元の大きさに戻ってしまいます。


解像度を保持させることはできないでしょうか。
731名称未設定:2006/03/08(水) 17:48:55 ID:z9dSDnUJ0
Cocoaははじめて2週間の者です。
オブジェクト指向言語にふれるのははじめてですが、
http://hw001.gate01.com/uochoco/prog/mac/cocoa/doc/obctutor/title.html#contents
のチュートリアルを読んで勉強を進めています。

一つ、分からないことが。
このチュートリアルで、
ConverterController
converter

という2つのクラスを用意していますが、なぜ一つのクラスで
動作を完結させずに、2つのクラスが必要となってくるのでしょうか。
732名称未設定:2006/03/08(水) 18:16:31 ID:DkuUB+Y80
>>731
MVCって言葉に注目してよく読めば分かると思うけれども。
例えばConverter(の処理)を他のアプリケーションや、同じアプリでも別の場所で使うとするよね。
このときもしConverterがテキストフィールドに直結してあったらどうする?ってこと。
733名称未設定:2006/03/08(水) 18:58:27 ID:z9dSDnUJ0
なるほど。分かりました。
常に同じものをいろいろなところで利用するという
考え方ということですね。
ありがとうございました。
734名称未設定:2006/03/08(水) 22:46:07 ID:Psg2T1pt0
MacOS X の開発関係のMLとかBBSって
どこが一番盛んですか?
735名称未設定:2006/03/09(木) 02:32:44 ID:xctMpTES0
Xcodeやそのリファレンスアプリに使われてるNSSearchFieldでは
矢印下キーを入力欄中で押すとメニューが表示されるけど、
あれってどうやって実装してるんですかね?
デフォルトではメニューが表示されないみたいですが。
736名称未設定:2006/03/09(木) 10:12:42 ID:n7Ivivlh0
>>734
スレ的に言えばCocoa-devじゃないの。

>>735
リファレンス嫁
737名称未設定:2006/03/10(金) 01:45:18 ID:JmAsIJHP0
>>736
setSearchMenuTemplate: で虫眼鏡のアイコンをクリックした際に表示されるメニューは設定できたんですが、
そこから先(入力欄にフォーカスが当たってるときに矢印下キーでそれを表示させる)に悩んでます。
NSSearchFieldのサブクラスを作ってNSMenuの popUpContextMenu:withEvent:forView: を呼び出すしかないんですかね。
738名称未設定:2006/03/10(金) 12:37:33 ID:okrFkhwr0
>>737
それはオートコンプリートじゃまいか
739名称未設定:2006/03/10(金) 15:10:33 ID:Ne8zFKYl0
>>738
例に挙げてるものではオートコンプリートでは無いので、気になってるのです。
Xcodeのリファレンスの検索フィールドで下キーを押すと
「API検索」「前文検索」の選択メニューが表示されませんか?

一応解決したのでその方法を書いておきます。
NSSearchFieldのdelegateに control:textView:doCommandBySelector: を実装して、
セレクタが moveDown: のときに
NSMenuの popUpContextMenu:withEvent:forView: を呼び出す。
このとき渡すNSEventは、そのlocationがメニューの表示される位置なので、
それに合わせて適当にでっち上げる。
740名称未設定:2006/03/10(金) 15:27:46 ID:okrFkhwr0
>>739
なるほど、普通は虫眼鏡アイコンで表示されるメニューがアローキーでも出るのか。知らなかった。
NSSearchFieldCellのsearchButtonCellをクリックされたことにする、って方法はできないかなあ。
741名称未設定:2006/03/11(土) 18:24:00 ID:Q4GsL13Y0
>>740
それも試してみたんですけど、どうも上手く行きませんでした。
理由が分からない。
742名称未設定:2006/03/11(土) 23:07:48 ID:N4fZx06q0
>>711
今気がついたのだがintとlongって両方とも4バイトなのね
OSX上では使い分けても意味無いのかな?
743名称未設定:2006/03/12(日) 01:50:51 ID:HltdjuTr0
>>742
悪いことは言わない。longだけ使っとけ。な。64bitで Appleがうまく橋渡しを作ってくれるかわからんだろ。
744名称未設定:2006/03/12(日) 02:20:32 ID:ArR5v+0Y0
ん?
745名称未設定:2006/03/12(日) 11:55:24 ID:OMiWSSFq0
>>742
悪いことは言わない。4byteと断定するな。
たまたま4byteになっているだけだ。
limits.hを追いかけていけばその辺は書いてある。
746名称未設定:2006/03/12(日) 12:44:25 ID:2gIhnk9n0
>>742
処理系依存
サイズが問題になる所でintやlongを使っている時点で移植性は劣悪
古いソースを使うを使う場合はやむを得ないが、新しく書く場合はstdint.hに
ある定義を使うべき
747742:2006/03/12(日) 17:11:07 ID:XfI6e6Tm0
いや、別にそんなたいそうな話じゃなくて、
単にint<longが当たり前だと思ってたからちょっと意外だな、というだけのこと
まあ今後はstdint.hを使うべきなんだろうね
748名称未設定:2006/03/12(日) 19:43:56 ID:HltdjuTr0
え、そうなの? 俺は仕事では int=long で10年やってるが…。
749名称未設定:2006/03/12(日) 20:52:02 ID:3EFRIX+y0
32bitの処理系なら大抵int=long=32bitじゃないか?
750名称未設定:2006/03/12(日) 21:13:28 ID:aA0hJr/u0
Macのintはshortの時代が長かったから。
751名称未設定:2006/03/13(月) 09:55:51 ID:XOFSWGY80
>>747
C++の規格上は、
short<=int<=long
だ。
752名称未設定:2006/03/13(月) 10:01:04 ID:F4aHzm9M0
何故 C++ ?
753名称未設定:2006/03/13(月) 10:25:41 ID:XOFSWGY80
たぶん同じだと思うけど、Cの規格は読んでいないから。
754名称未設定:2006/03/13(月) 10:49:59 ID:3rZO0Hln0
まあ、あれは、矛盾が発生しちゃってるからね。

1, 処理系に最適な大きさ
1, short 以上でかつ long 以下

両方を満たすことは今後どんどん不可能になってくる。
まあ、64bit や 128bit が普通になるなんて思いもよらなかったんだろうけど。
755名称未設定:2006/03/13(月) 12:42:00 ID:XOFSWGY80
矛盾していない。
処理系に最適な大きさは、CPUのビット数がそのまま。
shortとlongには、規格上バイト数の指定は無い。
それにPCのビット数が上がったのは最近だけど、上のカテゴリは昔から大きい。
古い汎用機には、charが8バイト(ビットでは無く)の物もあったりする。
756名称未設定:2006/03/13(月) 15:44:52 ID:v2V/qeUG0
NSTaskで質問なんだけど、NSPipeを使わないでリダイレクトする方法ってある?
waitUntilExitで実行するとパイプがつまるみたいで止まってしまうもんで。
パイプ詰まりの解消法でも良いです。
757名称未設定:2006/03/13(月) 16:45:04 ID:sfWxfW4Y0
758名称未設定:2006/03/13(月) 20:32:32 ID:Zuly/stE0
>>757
禿ワロス
759名称未設定:2006/03/13(月) 20:36:10 ID:6djTzzW60
NSQracianのヘッダはどうすれば手に入りますか
760名称未設定:2006/03/13(月) 22:11:06 ID:fZcz5ThF0
>756

待たずにループ回せば?

さっぱりだと待つサンプルだけど、appleだとループのサンプルになってるよ。

//readHandleはNSFileHandle、InDataはNSData
while ((inData = [readHandle availableData]) && [inData length]) {
  //InDataに各自ホニャララする
}

すんげーはしょってるけどこんな感じ

761名称未設定:2006/03/13(月) 22:56:22 ID:J40PrFlF0
一応Moriarity - /TaskWrapper.hのコードがその解決になってはいる。
BufferがいっぱいになったらNofificationが飛んでくる。

バッファはBSD側で決めたサイズみたいだから、コマンド自体が
パイプで複数つなげたものだと、ダブルバッファになってしまうよ。
762名称未設定:2006/03/14(火) 09:06:35 ID:deLAHRzq0
オブジェクトは複数のnibからawakeFromNibを呼び出されることがありますよね。
そのときどのnibから呼ばれたかを知る方法はありますか?
763名称未設定:2006/03/14(火) 09:46:58 ID:UbtR5d/S0
>>762
ないのじゃないかな?
nib にユニークなアウトレットがnilかどうかで
どの nib が既に接続されているか(awakeFromNib を呼び出したものを含む)
は分かるけど。
764名称未設定:2006/03/14(火) 23:01:37 ID:deLAHRzq0
>>763
ありがとうございます。
直接的にawakeFromNibを呼び出したnibを知ることはできないのですね。
それぞれのnibに一意なアウトレットを使う方法も含めて、仕様を考えたいと思います。
765名称未設定:2006/03/15(水) 12:35:57 ID:acpuKjTW0
>>757
NSQracianmyQracian=[[NSQracian alloc] initWithFreeDial:@"0120-500-500"];
[myQracian cleanPipe:outputPipe];
こんな感じ?
うまく動かないんだけど...

>>760,761
ありがと
その方法自体は理解してるんだけど同期で処理するのを前提に他の部分を組んじゃってたんで、
なんとかwaitUntilExitで終わらせたかったんよ
readInBackgroundAndNotifyで処理する方向で作り直す事にする
766名称未設定:2006/03/15(水) 13:59:16 ID:tfxbWZbi0
>>765
FreeDialはNSQracianFreeDialという構造体で定義されている。
767mahalo:2006/03/15(水) 17:02:18 ID:kwsyMu/20
Appleのサンプルコード「SampleCMPlugIn」を元にして
コンテキストメニュープラグインをつくっています。
http://developer.apple.com/samplecode/SampleCMPlugIn/SampleCMPlugIn.html

このサンプルを参考に、テキストエディタ等で選択された文字列に対して
コンテクストメニューで辞書引きなどの処理を行うつもりです。

このプラグインのサンプルでは、コンテクストメニューが開く直前に
以下のような関数が呼ばれます。

static OSStatus SampleCMPlugInExamineContext(void* thisInstance, const AEDesc*inContext, AEDescList*outCommandPairs);

この関数の引数のAEDesc型のデータに、現在選択中のテキストの文字列が
入っているはずなんですが、Carbonアプリではテキストが取得できるのですが
Cocoaアプリではテキストが取得できません。

Cocoaアプリでは、descriptorTypeがtypeNullになっています。

Cocoaアプリからコンテクストメニュープラグインで
選択中のテキストを取得できる方法をご存知の方が
いらっしゃいましたら、教えて頂けると幸いです。
よろしくお願いいたします。
768名称未設定:2006/03/16(木) 03:31:53 ID:p7QjeFNq0
Xcodeスレかと思ったんだが、ちらっと読んだらcocoaやりましょうよだったんでこっちに投下。

http://www.cocoalab.com/developer.htm

ここで<ttp://www.cocoalab.com/BecomeAnXcoder.pdf>Xcoderになる本なるPDF配布中。
サンプルとかも一応置いてあるので、教えてちょって泣きつかれたらこれを教えて嫌がらせする
のも手かと(だから英語がどうしていやがらせになるんだよ)
769名称未設定:2006/03/21(火) 02:38:30 ID:xdlElpB+0
Cell系とMatrixとの扱いに関して解説してる日本語webページない?
できればラヂオボタンやテーブルビューで完結していないので。
HMDTにあったのは簡易的過ぎて物足りない。。
770名称未設定:2006/03/21(火) 20:37:47 ID:sEhwon+Z0
自分の書類フォルダにあるファイルの一覧をアウトレットAFieldとしたテキストフィールドに入力したく、このメッセージを書いたのですが、

[AField setStringValue:[directoryContentsAtPath:"~/user/watasi/Documents/"]];

ビルドすると

directoryContentsAtPath is undecleard とエラーが出てしまいます。
objective-Cはさわりたてのため基本的なミスがあるかもしれませんが、
どこがおかしいでしょうか。
771名称未設定:2006/03/21(火) 20:40:13 ID:R0nREZeT0
基本的なミスどころの話じゃない。
Objective-C の文法を一から勉強し直せ。
772名称未設定:2006/03/21(火) 20:53:52 ID:R5mT+X0d0
>>770
・メッセージの受け手がない。
・cStringになってる。
773名称未設定:2006/03/21(火) 21:13:58 ID:nyzzWvMu0
>>772
追加で
・返り値の型が違う
774名称未設定:2006/03/21(火) 22:03:03 ID:S+PLxqxv0
優しく解説するとこんな感じ。

setStringValueに渡すのはNSString*である必要があります
directoryContentsAtPathはNSArray*を返しますのでここでは渡せません。
また、NSFileManagerのインスタンスメソッドなので
NSFileManagerのインスタンスにつなげないといけません。
また、引数はNSString*でないといけないので、cstringを渡してはいけません。
NSArrayのなかみは何のインスタンスが入ってくるか、確認しましょう。

というところでしょうか。
775名称未設定:2006/03/21(火) 22:13:13 ID:HDMsQ2YN0
まずその「自分の書類フォルダ」へのパスは正しいのかどうか。
776名称未設定:2006/03/21(火) 23:00:05 ID:nyzzWvMu0
たしかにチルダは展開してくれないな
777777:2006/03/22(水) 12:19:54 ID:dB6H5Vgc0
777げとズササーーー
778名称未設定:2006/03/22(水) 13:55:20 ID:+oc8/2Xt0
NSButtonCell の mouseEntered と mouseExited を使いたいのですが、
これって動いてない気がするんですが。。
779名称未設定:2006/03/22(水) 14:26:48 ID:MTBguBmo0
780名称未設定:2006/03/22(水) 15:10:40 ID:+oc8/2Xt0
NSButtonCell で NSView の addTrackingRect: + mouseEntered: 的なものが出来ないかと試行錯誤してて、
NSButtonCell にも mouseEntered: があるから、てっきり addTrackingRect: 的なメソッドがあると思ったら無くて、どうすればいいのか分からない。
startTrackingAt: なども試してみたけど、やっぱりこれではないようで。

このセルを抱えてる Matrix で addTrackingRect: するのかと思ってやってみたけど、先祖の NSResponder の mouseEntered: / mouseExited: が有効になるだけだった。
781名称未設定:2006/03/22(水) 18:37:46 ID:pyFSPTb00
addTrackingRect: を Cell の方から呼べばいいだけだった。
´)⌒´)
  ´)⌒´)   プー ヽ(・ω・)/   ズコー
 ≡≡≡;;;´⌒)≡≡≡ \(.\ ノ

ただこれ、トラッキング矩形を設定するタイミング難しいね。
782名称未設定:2006/03/22(水) 20:53:00 ID:WwCNJdbU0
Cocoa勉強会の冊子届いたーヽ( ´∀`)ノ
783名称未設定:2006/03/22(水) 22:42:42 ID:XVe/72kc0
指定されたパスがフォルダなのかパッケージなのか
簡単に判別する方法は無いでしょうか?
784名称未設定:2006/03/22(水) 23:02:22 ID:fq87cYjI0
NSWorkspace
- (BOOL)isFilePackageAtPath:(NSString *)fullPath
785名称未設定:2006/03/22(水) 23:07:34 ID:n3nfwftq0
NSFileWrapperのinitWithPath:にパスを渡して、返り値がnilかどうかで判別するとか。
自信無いけど。
786名称未設定:2006/03/22(水) 23:08:54 ID:n3nfwftq0
だからリロードしろとorz
しかも遅いくせに悪い回答
787名称未設定:2006/03/22(水) 23:46:27 ID:Kj1X8XiX0
>>786
どんまい
788783:2006/03/23(木) 00:24:09 ID:PInyMkQL0
ありがと。こんなに簡単だったとは orz
789njkl:2006/03/23(木) 13:07:45 ID:pbKYRLKz0
PDFファイルからテキストのみを抽出するプログラムを考えています。
OS10.4からPDFKitが用意されたので、それを使えば簡単に出来るのですが
OS10.3でも同じことを実現したいので、PDFKitを使わない方法はないか?と
探しています。
Adobeが公開しているpdfspec.pdfを元に自前で解析するしか
ないんでしょうか?

参考になるサンプルコード等をご存知の方が
もしいらっしゃいましたら、おしえて頂けると
ありがたいです。
790名称未設定:2006/03/23(木) 20:16:40 ID:JOmC5ve00
>>782
買う価値ありそう?
791名称未設定:2006/03/24(金) 19:02:42 ID:co+PqlTN0
Interface Builder上で作成されたNSTabViewItemにはinitWithIdentifier:が呼ばれないっぽいんですが、
初期化処理をするにはawakeFromNibを使うしかないんでしょうか?
792名称未設定:2006/03/25(土) 01:47:45 ID:Jz203bey0
>>789
Xpdfの中にpdftotextというツールがあります。これを呼びだせばどうでしょ
ttp://www.foolabs.com/xpdf/
793名称未設定:2006/03/25(土) 06:42:31 ID:8y9FEVXW0
FAQかと。
IB上のインスタンスはNSCoding?でシリアライズされて保存されるから、initは呼ばれないとかだったような。

初期化はawakeFromNibか、NSAppのdelegateのapplicationDidFinishLaunchingをつかう。どっちでやるのがいいかはものによる。
794名称未設定:2006/03/25(土) 07:26:08 ID:iqUMf+Kp0
HMDTのBBSでinitWithCodingが呼ばれるとか何とかと書き込まれてた気がする
795名称未設定:2006/03/25(土) 10:22:54 ID:5ydPggKU0
細かいけどinitWithCoder:だね。
Nibをロードするときに呼ばれる。
796名称未設定:2006/03/25(土) 10:36:53 ID:NnHiZuJx0
まとめると
IB上でインスタンス化された時点でinitされて、
nibファイルに保存する際にencodeWithCoder:される
で、nibファイルを読み込む際にinitWithCoder:で展開される
という流れだったと思う
797名称未設定:2006/03/25(土) 17:36:49 ID:3zYSVgc00
みなさんありがとうございます。
アプリケーションの実行時はインスタンス化されるんじゃなくて
アーカイブされたインスタンスをinitWithCoder:で復元するという形ですね。

ところでIB上で作成したNSViewは実行時にinitWithFrame:が呼ばれてinitWithCoder:が呼ばれないようなのですが、
これはどうしてなのでしょうか。
798名称未設定:2006/03/25(土) 17:44:13 ID:Jo+T7DN40
>>797
アーカイブするにも、実体が何であるか判らないから。
かな?

まあ、バグには違いないがいまさら直し様がないので、
仕様として逃げ切るしか道がないのだと思う。

initWithCoder: を呼ぶように変更したら発狂する開発者が続出しちゃうよ。
799名称未設定:2006/03/25(土) 17:46:48 ID:tppqqMMv0
>>797
NSCoding プロトコルに適合するように作られてないから。
800名称未設定:2006/03/25(土) 17:52:58 ID:9NTp4+E70
Cocoaの「Loading Resources」の「What Happens When a Nib File is Loaded」に載ってるよ。
801名称未設定:2006/03/25(土) 18:00:01 ID:9NTp4+E70
NSView自体はNSCodingに適合してるのよ。
だけどIB上でNSViewのカスタムサブクラスを配置した場合にnibにエンコードされるのはNSCustomView。
nibロード時にはこれがデコード(initWithCoder:)された後、カスタムサブクラスにinitWithFrame:が送られ、置き換えられる。
そんなわけでframeやhiddenはちゃんとnibに保存されてる。

もちろんカスタムビューがちゃんとNSCodingに適合し、パレットもあるなら別(だと思う)
誰だバグなんて言ってる奴は
802名称未設定:2006/03/25(土) 18:10:26 ID:Jo+T7DN40
>>801
動作上のバグじゃなくて仕様上のバグ。
803名称未設定:2006/03/25(土) 18:20:56 ID:9NTp4+E70
>>802
どの動作を指してバグと言ってるんだ?
Interface Builderが、パレット無いクラスのインスタンスをNibファイルにエンコードしたりデコードしたりできるとでも?
804名称未設定:2006/03/25(土) 18:44:03 ID:Jo+T7DN40
>>803
だから、動作じゃなくて仕様のバグだってば。
805名称未設定:2006/03/25(土) 18:50:41 ID:9NTp4+E70
>>804
仕様がバグだというなら、どういう仕様が正当で、かつ現状の仕様がバグだと言う理由は教えてもらえるんだろうな。
まさか自前のビューがNSCodingに対応しているのにinitWithCoder:が呼ばれないからバグだとは言わないよな。
806名称未設定:2006/03/25(土) 19:02:58 ID:Jo+T7DN40
>>805
仕様上のバグ:
パレットが確かに存在しているにもかかわらず
CustomView のみが例外扱いされていること。


initWithCoder: で初期化する。
なければ当然、-[NSView initWithCoder:] が呼ばれる。

-[NSObject initWithCoder:] では、実際に自身が Coding されていない場合の処理も必須とする。
807名称未設定:2006/03/25(土) 19:03:36 ID:tppqqMMv0
なんで ID:9NTp4+E70 は喧嘩腰なんだろうか……?
808名称未設定:2006/03/25(土) 19:20:19 ID:9NTp4+E70
>>806
ちょっと待て、ほんとにパレット作って入れたのにinitWithCoder:呼ばれないってこと?
パレットの作り方間違ってるんじゃないの?
809名称未設定:2006/03/25(土) 19:44:17 ID:9NTp4+E70
自前でパレット作って試してみたが、やはりinitWithCoder:が呼ばれてる。
そもそもパレット作らなきゃ、Interface BuilderがNibファイルを保存するときに
当該インスタンスをエンコードするコードを実行できないわけだから、
当然initWithCoderなんか呼ばれないよね。>>806もそれはバグとは言わないでしょ?

それともInterface Builderが自分のプロジェクトのカスタムビューの実装ファイルを解釈して、
エンコードまでやってくれと言うこと?

あるいはちゃんとパレットを作ったのにinitWithCoder:が呼ばれないということ?
810名称未設定:2006/03/25(土) 19:49:24 ID:08z6ONuY0
macosxdevで聞いてみろよ
811806@自宅:2006/03/25(土) 21:25:20 ID:tJ11xRgW0 BE:118029029-
やっと家に着いた。

>808,809
じゃなくて、Containers の NSView のことね。< CustomView
誤解させてしまった。すまん。

こいつを使ってNSView のサブクラスをnib で配置しても、
他のパレットを使って NSView の子孫であるサブクラスを nib に配置した時とは、
別の動作をしちゃうでしょ?

例えば、NSImageView のパレットを使って、そのサブクラスを配置すれば、
initWithCoder: で初期化されるけど、
NSView のパレットを使って NSView のサブクラスを配置しても、
initWithCoder: では初期化されない。

これって変じゃありません?
812名称未設定:2006/03/25(土) 22:04:42 ID:mCOkNbxQ0
>>811
CustomViewのCustom Classは存在しないクラス名でも勝手に設定できるから、initWithCoder:
を使っていたらエラーになる。クラスが見つかった時だけinitWithCoder:するのは今以上に混乱をまねく
ので、今の仕様が適切だと思う。

CustomViewを配置したnibのkeyedobjects.nibにNSCustomViewという文字列が入っていた。
これはNSViewのサブクラスでNSString *classNameというインスタンス変数を持つ。

CustomViewでサブクラス化したviewはパレットのあるなしに関わらずNSCustomViewで
codingされるんじゃないかな。で、NSCustomViewのinitWithCoder:が呼ばれ、
その中でclassNameのinitWithFrame:が呼ばれる、と。
デバッガで追えばはっきりするだろうけど。
813806@自宅:2006/03/25(土) 22:33:24 ID:tJ11xRgW0 BE:118028063-
>>812
いや、だから動作はどうでもいいの。
後半は蛇足だよ。

エラーになるならなればいいじゃない。
存在しないクラスを使ってればエラーになる。
分かりやすいと思うけど?

実行時に存在しないクラスが必要なの?
814名称未設定:2006/03/25(土) 23:36:27 ID:mCOkNbxQ0
>>813
書いた後で気付いたけどinitWithFrame:でも存在しないクラスではエラーになるか。

CustomViewで指定したクラスがinitWithCoder:で生成される仕様になると、
・initWithCoder:できるクラスはinitWithCoder:
・initWithCoder:できないクラスはinitWithFrame:
と、これはこれで動作が分岐されてしまう。
(そして、initWithCoder:できるクラスをinitWithFrame:で初期化する、という選択肢がなくなってしまう。)

それと、CustomViewで配置すると固有のAttributesは設定できず、NSCoderは空っぽかnilだろう
から、その辺の配慮も必要になる。自作のクラスなら良いがNSImageViewなどではちゃんと初期化できる
保証はないでしょう。
815809:2006/03/26(日) 15:25:26 ID:gosZIT8D0
>>813
ようやく言いたいことを理解したよ。誤解してすまなかった。

確かにNSViewのサブクラス、としてカスタムビューを配置したときはinitWithFrame:なのに、
NSImageViewのサブクラス、としてカスタムビューを配置したときはinitWithCoder:だ。
これを、Nibに配置したビューはinitWithCoder:が呼ばれる、っていう仕様に統一しておいたほうが綺麗だと言えばそうかも。

ただ、そのクラスのencodeWithcoder:が呼ばれたことを前提にはできないね。
これは今も、NSImageViewのサブクラスで独自パレットが無い場合なんかはそうで、
Nib保存時にはNSImageViewのencodeWithcoder:が呼ばれて、実行時にはサブクラスのinitWithCoder:が呼ばれる。
独自にエンコードしてるインスタンス変数がある場合、ちょっと困る(今はNSKeyedArchiverだろうからチェックは出来るか)。
パレットを作れと言われればそれまでなんだけども。

要するに今の仕様は、NSViewのサブクラスで独自パレットを持たないカスタムビュー限定で、
initWithFrame:で初期化する、っていうことになる。
どうせinitWithCoder:を実装したビューだって、標準の初期化処理としてinitWithFrame:は実装しなきゃならないから
これはこれで便利だと思うけどな。
816名称未設定:2006/03/27(月) 02:47:33 ID:58OnAIM50
スレ違いかもなんですが、Xcode1.5、OpenGLでゲーム作ろうとしています。
で、OpenGLのキー取得って役に立たないからOS依存のAPI使うじゃないですか。
そのとき#ifdefとかでWinとMacで呼ぶ関数を変える事ってできましたっけ?
てか、そもそも#ifdefでOSを判別できましたっけ?
817名称未設定:2006/03/27(月) 20:21:46 ID:ufg407KP0
__APPLE__とか
_WIN32とか
818名称未設定:2006/03/27(月) 20:55:32 ID:N7ZNmva50
objective-cでコマンドラインツールを書いてます。

getoptで引数/オプションを処理して、日本語パスをargvから復元したいのですが
[self setValue:[NSString stringWithCString:argv[optind]] forKey:@"inputPath"];
とやると当然日本語は受け付けません。

例えばファイル名「テストデータ」は、ターミナルにドロップすると
\343\203\206\343\202\271\343\203\210\343\203\206\343\202\231\343\203\274\343\202\277
となるのですが、これをUTF-8の「テストデータ」に復元したいのです。

どのような方法がとれますでしょうか?
819818:2006/03/27(月) 21:24:50 ID:N7ZNmva50
追加です。
以下のコードで一応動くことは分かったのですが、これは望ましいやり方なのでしょうか?

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog(@"<%@>",[NSString stringWithUTF8String:argv[1] ]);
NSLog(@"<%@>",[NSString stringWithCString:argv[1] encoding:NSUTF8StringEncoding]);
NSLog(@"<%s>", [[NSString stringWithUTF8String:argv[1]] cStringUsingEncoding:NSShiftJISStringEncoding]);
[pool release];
return 0;
}


/*
// うごかない
NSLog(@"<%s>", [[NSString stringWithUTF8String:argv[1]] fileSystemRepresentation]);
*/
820名称未設定:2006/03/27(月) 21:58:42 ID:2Y0zNG4P0
> \343\203\206\343\202\271\343\203\210\343\203\207\343\203\274\343\202\277

復元するまでもなく最初から UTF-8 の「テストデータ」のような気がする。
821名称未設定:2006/03/27(月) 22:39:14 ID:E8f5AHNl0
漏れはCocoaの事はさっぱりわからないのだが、
>>818さんはターミナルを日本語ファイル名が表示できる設定にしているのでしょうか?
lsで日本語ファイル名出てきますか?
822名称未設定:2006/03/27(月) 23:03:47 ID:wZsd7paq0
つまりはコマンドライン引数の処理ですか?

使ったことないけど、
NSProcessInfoの-(NSArray *)argumentsで
引数を取得できると思うので、これを使ったら
どうでしょう。配列の中身は既に文字列なんで。

勘違いしてたらごめんなさい。
823818:2006/03/27(月) 23:38:18 ID:fEq0IlPU0
>>820
確かにstringWithUTF8Stringで復元できるので、そのままUTF-8としては扱えているのですが、これで問題ないのかどうかが・・・

>>821
Tigerなターミナルのデフォルトのままです。日本語ファイル名をlsで表示するにはls -vとする必要があります。でも、ターミナルウィンドウにドロップされたファイル名はエスケープされた状態になり、日本語表示はされません。

>>822
おお!っと思ったんですが、日本語はそのまま表示されません。
テストデータが\U30c6\U30b9\U30c8\U30c6\U3099\U30fc\U30bf
という文字列になります。

- argumentsでは、オプション文字と引数の解析を自前で書かないといけないので、むしろめんどくさいようです。
824816:2006/03/28(火) 01:21:54 ID:q+VxC2eE0
>>817
動きました。ありがとうございます。
825名称未設定:2006/03/31(金) 09:18:18 ID:ZedVNhA/0
テキストファイルを読み込んで、そのテキストファイルの内容を行ごとに
配列に格納するプログラムを書きたいのですが。

まず、テキストファイルを開くには、持っているCocoaの解説書によると
dataWithContentsOfFileでデータを取得し、
エンコーディングを指定して、NSStringを初期化します
とあるのですが、どんなエンコーディングのファイルでも開けるように
するには、全てのエンコーディングに対してNSStringを初期化する
コードを書かなければいけないのでしょうか。

次に、テキストファイルを行ごと、あるいは10行おきなどで配列に
格納する方法が全く分かりません。

よろしくお願いします。
826名称未設定:2006/03/31(金) 09:49:12 ID:/+sOZgSw0
(1)エンコーディングの問題があるため、テキストファイルを読み込むってのは意外とめんどくさい

(2)行ごとにっていう意味が
パラグラフ毎(改行毎)、という意味なら、改行が見つかるたびにsubstringWithRangeで切り分けるとか、
NSTextViewに流し込んで selectionRangeForProposedRange:granularity
でパラグラフの範囲を算出して切り分けるとか

NSTextViewに表示される際の1行ごと、という意味なら、NSTextViewに流し込み、NSTextViewのレイアウトを管理するNSLayoutManagerを使い、
あるキャラクタインデックス→グリフインデックスに変換 glyphRangeForCharacterRange:actualCharacterRange
グリフインデックスを含む行の四角を算出 lineFragmentRectForGlyphAtIndex:effectiveRange
その四角に含まれるグリフ範囲を算出 glyphRangeForBoundingRect:inTextContainer
そのグリフ範囲をキャラクタ範囲に変換 characterRangeForGlyphRange:actualGlyphRange
で1行のキャラクタ範囲を得ることができるから、それでNSTextViewの文字列を管理するNSTextStorageで1行の文字列を
取得する
827名称未設定:2006/03/31(金) 12:34:07 ID:OlvlzhWr0
ここらへんの面倒くささをカバーした、汎用性のあるテキスト処理フレームワークとかないのかね
828名称未設定:2006/03/31(金) 14:57:20 ID:ZedVNhA/0
>>826
参考になりました。ありがとうございました。
テキストの読み込みはめんどうなものなんですね。
829名称未設定:2006/03/31(金) 16:01:11 ID:DgrU0KwR0
NSString
- (NSArray *)componentsSeparatedByString:(NSString *)separator

で、ざっくりいきませう
830名称未設定:2006/03/31(金) 17:34:58 ID:/+sOZgSw0
>>829
それが簡単だ!
831783:2006/03/31(金) 17:49:32 ID:FsAauQT10
>>828
諦めた香りがプンプン
832名称未設定:2006/03/31(金) 17:50:14 ID:FsAauQT10
すまん、783関係無し。
833名称未設定:2006/03/31(金) 19:17:22 ID:Oo9cgZFH0
>>829
改行コードに注意
834名称未設定:2006/03/31(金) 20:28:29 ID:nUyjRsbQ0
>>833
読み込む際にOgreKitで追加されるカテゴリで統一しちゃえばOKだね。
835名称未設定:2006/03/31(金) 21:24:16 ID:EI9LBhmk0
OgreKitって使ってみたいんだけどPantherだから無理なんだよな…
836828:2006/03/31(金) 22:48:35 ID:ZedVNhA/0
>>831
あきらめてません。がんばってみます・・・
837名称未設定:2006/03/32(土) 12:47:44 ID:SjJQM/oH0
Cで文字列エンコーディング自動判定するコードはありそうだし、Cocoa用にラップしたものもありそうなものだけど
日本語限定なら、片っ端からエンコーディング試して結果の文字数と元のバイト数比較してってのは駄目?
838名称未設定:2006/03/32(土) 15:36:51 ID:9v0vYZmK0
.stringsファイルからNSDictionaryのインスタンスを得る方法ってありますか?
839名称未設定:2006/03/32(土) 16:08:17 ID:uff7RD5H0
普通にinitWithContentsOfFileでいけたと思う
840名称未設定:2006/03/32(土) 17:07:57 ID:fIh5og1O0
>>837
>日本語限定なら、片っ端からエンコーディング試して結果の文字数と元のバイト数比較してってのは駄目?
日本語限定ならTextEditのソースを読めば良いのでは?
すげー読みづらいけど。

>>839
正解
841名称未設定:2006/04/02(日) 01:04:37 ID:XvrPib/q0
842名称未設定:2006/04/02(日) 02:15:18 ID:D7BZ9/dl0
荻原本キタ━━━━(゚∀゚)━━━━ッ!!
843名称未設定:2006/04/02(日) 07:57:07 ID:bwwFb6JL0
>>841
高え〜〜〜
844名称未設定:2006/04/02(日) 08:45:15 ID:w9OjXKwP0
今見たら広文社のやつは「4500+税」て書いてあったぞ。
845名称未設定:2006/04/02(日) 12:16:51 ID:kAjMNdWO0
内容は進化してるんだろうな?
846名称未設定:2006/04/02(日) 12:27:42 ID:ceNRyRgr0
新版じゃなくて復刊でしょ。
847名称未設定:2006/04/02(日) 12:51:25 ID:UI0dJDn90
イラネ。
848名称未設定:2006/04/02(日) 13:34:39 ID:gD5tnvBE0
>日本語で書かれた唯一の Objective-C の本であった、荻原先生による「Objective-C -
>Mac OS X プログラミング入門」。絶版のため、長らく幻の本状態だったけど、復活し
>たようだ!
>「Objective-C Mac OS X プログラミング」と名前を変え、ソフトバンククリエイティ
>ブより発売予定。4/7 の発売なのかな、これは。内容は、前の本そのままではなく、現
>在の状況に合うように改訂されているらしい。
>Cocoa でプログラミングする人なら、必携でしょう!わたしも買うし。
                              quoted by HMDT

改訂されてるらしい
849名称未設定:2006/04/02(日) 14:34:33 ID:Al7kaO8t0
むしろ安いと思うが…

何冊刷られるんだろうか?
予約しておいた方がいいかなぁ〜
850名称未設定:2006/04/02(日) 15:44:10 ID:cn3eq1J10
>>844
そんなに高かったんだっけ・・・

>>849
内容の価値じゃなくて厚みで考えるとせいぜい3000円くらいかな、と思ってたよ
851名称未設定:2006/04/03(月) 07:46:51 ID:B5gPlelT0
買っとこうかな…。でも漏れの場合、C等も含めた入門者向けの本も欲しい。
誰か出してくれないかな。
852名称未設定:2006/04/05(水) 20:54:24 ID:UeX3OK870
iPod.helpみたいなヘルプブックを作成したいのですが、やり方がわかりません。
CocoaBundleで作成すると、.help形式にはなるのですが、ヘルプビューアで開いてみると
何も表示されません。Appleのサイトなどで検索しても、CFBundleHelpBookFolder,CFBundleHelpBookName
をinfo.plistに追加するように、としかないのですが、どなたかやり方をご存知でしたら
ご教授願います。
853名称未設定:2006/04/05(水) 23:24:23 ID:qqUK+kp80
(1)Info.plistのCFBundleHelpTOCFileにはじめに表示するhtmlファイル名をいれる
(2)そのhtmlファイルのhead中にname="AppleTitle" content="表示するヘルプの名前"の
META要素を入れる
くらいでとりあえず表示されないすか?

CFBundleHelpBookFolderやCFBundleHelpBookNameはアプリケーションが
ヘルプを探すために使うものなので、アプリケーションのInfo.plistに書くもの
だったと思う。
854852:2006/04/06(木) 00:17:44 ID:Xny87ROY0
>>853さん レスありがとうございます。
CFBundleHelpTOCFile -> index.html としてhtmlのヘッダにMetaタグを埋めて
みましたが、やはり表示はされません。Cocoa Application で作成して、同じ
作業を行うとヘルプは表示されるのですが・・・
.help形式での作成方法ってどこかに乗っていないのでしょうか? ここ3日ほど
探し回っていますが、まったく情報がない状態です。
ライブラリ→documentation→helpと進むとAirMac.helpなどがありますが、これらの
ようにダブルクリックするとヘルプビューアが開けるようにしたいのです。
どなたかご存知でしたら教えてください。
855853:2006/04/06(木) 01:35:50 ID:s7DVOSv+0
.helpファイルを
〜/Library/Documentation/Help に置いて開いてみてください。
ヘルプビューアは、
・/Library/Documentation/Help
・/Users/ユーザ/Library/Documentation/Help
・登録されているヘルプ
を表示することができます。3番目の登録というのは、
・CocoaアプリのInfo.plistで指定されていて、そのアプリケーションが起動したとき
・[*1]のようなプログラムで登録されたとき
[*1] ttp://developer.apple.com/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/registering_help/chapter_4_section_3.html
に行われます。10.4であれば環境設定のcom.apple.help.plistにヘルプの名前と
場所が記録されているはずです。
856852:2006/04/06(木) 22:18:56 ID:Xny87ROY0
>>853さん
ビルドして出来た.helpを/Library/Documentation/Help の中に
入れたら表示できるようになりました。ありがとうございます。
857名称未設定:2006/04/08(土) 14:58:16 ID:UrFuD5340
Contextual Menu Itemsの作り方を解説したサイトとかありますかね?
858名称未設定:2006/04/08(土) 15:25:01 ID:H11qnRAn0
859名称未設定:2006/04/08(土) 15:28:37 ID:o8h+IDgx0
Cocoa本、Amazoneから発送通知来たー。
860名称未設定:2006/04/08(土) 15:30:00 ID:JfViR0ZJP
>>857
>>767のは?
困ってるみたいだけど
861名称未設定:2006/04/10(月) 20:45:16 ID:Kj/ANEbJ0
萩原本届いたー。
あんまし初心者向けではないのね。
でもヒレガス本を読んだ自分には、次のステップとしてちょうど良いレベルだと思う。
862名称未設定:2006/04/10(月) 21:35:16 ID:5kROmDbE0
Cocoaでカードゲームを作ろうとしている者です。
今まではWindowsのC++で開発していたのですが、
Macのソフトを開発したくなり、勉強しているところです。

Cocoaでの画像描画のシステムは
・NSViewを継承した自作ViewでdrawRect:で描画する
・OpenGL

などの方法があるようですが、カードゲームでカードの
動きや配置を描画する場合はどのシステムを使って
描画するのがベストでしょうか。
カードをひっくりかえす、回転、移動などはアニメーション
で視覚効果を取り入れたいと考えています。

よろしくお願いします。
863名称未設定:2006/04/11(火) 05:29:37 ID:KXTciJrE0
そこまでやりたいなら、Quartz Composerで.qtzのUI作るってのはどうだ?
やりようによっては簡単にできそうだ。
864名称未設定:2006/04/11(火) 23:19:05 ID:CdiVuh6A0
865名称未設定:2006/04/12(水) 00:19:57 ID:Kw45za4/0
>>862
OpenGLを知っているならOpenGLの方が楽だと思うけど。
866名称未設定:2006/04/12(水) 06:54:17 ID:v9I9+6VF0
NSTableViewで、テーブル全体のサイズを変えずにコラムのサイズを変えることはできますか?
ユーザがコラムサイズを大きくしようとして境界をドラッグすると、そのコラムの幅が大きくなって、その代わりに
隣のコラムの幅が小さくなる、(テーブル全体の幅は結果的に変化しない)
という様なことをしたいんですが。
867名称未設定:2006/04/15(土) 01:50:40 ID:rCMlIftl0
-(void)setColumnAutoresizingStyle:(NSTableViewColumnAutoresizingStyle)style
かな?引数はConstants見てね。
868名称未設定:2006/04/15(土) 04:56:43 ID:AeT/FxkP0
>862
ひっくり返すのはOpenGLの方が楽そう
当たり判定はNSBezierPathの方が楽そう
869名称未設定:2006/04/15(土) 12:06:15 ID:fwrmRU1h0
萩原って人、Cに詳しくないのかな。
Obj-C本としても大丈夫か心配だなこの本。
870名称未設定:2006/04/15(土) 13:54:25 ID:UoyxAfxJ0
Cに詳しくないって? Cは比較的コンパクトな言語だが?
871名称未設定:2006/04/15(土) 15:00:55 ID:jMbXu2ge0
萩原本、昨日書店で見かけたので取り敢えず買った。
パラパラっと見た感じはADCの「Objective-Cプログラミング言語」
で十分だと思った。タダだし。
872名称未設定:2006/04/17(月) 10:45:41 ID:e3Ozsxe90
会社で注文してた荻原本来た。

やはり最近の内容になってるね。例外処理も新しいのになってるし
key value codingとかのトピックも増えてる。ただ無理矢理日本語に
されるとかえってわかりにくくなる。

入門書→ヒレガス本(新しい版の日本語版は出ないのか?)
Objective-C→荻原本

で決まりか。あとリファレンス的な本があれば楽になる人もたくさん
いるだろうな。
873名称未設定:2006/04/17(月) 12:22:07 ID:GjSp8h200
>>872
漏れもその組み合わせが良いと思う。
ヒレガス本の第二版が翻訳されないのは悲しいけど。
874名称未設定:2006/04/17(月) 12:43:57 ID:e3Ozsxe90
もう第3版じゃなかった?
875名称未設定:2006/04/17(月) 12:47:14 ID:GjSp8h200
復刊.comみたく、邦訳.comが欲しいな。
876名称未設定:2006/04/17(月) 14:42:06 ID:llr0DJbh0
リファレンス的な本、とても欲しいっす…。
877名称未設定:2006/04/17(月) 22:21:22 ID:PDeezKUQ0
>>873
英語っていっても簡単だから、翻訳でなくても大丈夫ですよ。
(もしかしたら、Cocoa知ってるから理解しやすいだけかもしれませんが)


>>874
Advanced MAC OS X Programmingのことですか?
これは第3版じゃないですよ。Advanced、入門ではないです。

はよ第3版だしてほしいものです。
878名称未設定:2006/04/18(火) 07:30:36 ID:5cwPy2lN0
新、荻原本イイと思った。
ObjectiveCの言語仕様を解りやすく説明してあるね。
メソッドをインターフェースに公開しないことで、
擬似的なプライベートメソッドの実現や、
Cの関数との組み合わせについて解説があって初心者には
ありがたいと思う。
879名称未設定:2006/04/18(火) 11:04:04 ID:Dude9FkB0
するとヒレガス本は、第2版とAdvancedがあるって事ですか。
両方邦訳が欲しいな。
880名称未設定:2006/04/18(火) 11:25:24 ID:UnbqXdrK0
881名称未設定:2006/04/18(火) 11:37:01 ID:1jZ2ml1U0
Advancedの内容ってどうなってるの?

USだと$44.09か。USから買った方が安いのだろうか? 送料がわからん。
ヒレガス本(2nd Edition)もUSだと$29.69だな。
Core Mac OSX And Unix Programmingってのもあるね。こっちは古いけど。
882名称未設定:2006/04/18(火) 12:29:55 ID:Dude9FkB0
第3版と言えば、中村本のTiger版とか出ないのだろうか。
ヒレガス本の次ぐらいに分かり易いと思う。
883名称未設定:2006/04/19(水) 00:25:11 ID:2hT1uVPZ0
中村本は初心者向けすぎ。
884名称未設定:2006/04/19(水) 09:17:19 ID:L+bhM6Is0
HMDTの新版そのうちでるんじゃないか
885名称未設定:2006/04/19(水) 09:29:53 ID:X2T2PmcR0
HMDTのサイトにはお世話になることも多いが、本の方は残念ながらあまり
いい本とは言えない。Cocoa BindingとかWeb Kitとか新しいトピックがあるから
買ってはいるけどね。次出るとすればCore Data辺りの追加か。

アマゾンではXcode 2.0入門に星五つをつけてる奴がいたな。はぁ〜・・・
886名称未設定:2006/04/19(水) 09:58:50 ID:viuKWQV80
HMDTは漏れもダメだと思う。
サイトは読みやすいのに、本になると急に読み難くなる。
887884:2006/04/19(水) 10:26:15 ID:L+bhM6Is0
>>885,886
駄目なんだ。
持ってないんで知らなかった。

Cocoaは英語の本ばっかり買うことになってる。
けど読めるのと読めないのがある。英語力だめだめ。

もっと良い日本語本が増えるといいなぁ。
888名称未設定:2006/04/19(水) 10:33:46 ID:VdR/+92O0
Cocoaってそんなにええの?
889名称未設定:2006/04/19(水) 10:58:15 ID:X2T2PmcR0
>>887
ダメってわけじゃないんだけど、良いってわけでもないってこと。
特に初心者には向いてない。

>>888
昔のToolboxとかCarbonに比べたら遥かに楽だわな。Toolbox, Carbonには
まともなテキストエディタすらなかったし(TextEditはダイアログ用だし、
MultilingualTextEngineはバグだらけで仕様もコロコロ変わった)。
でもPictureやRegionがなくなるのは残念。
890名称未設定:2006/04/19(水) 11:06:42 ID:r4FDA7tV0
初心者向けはヒレガス本で十分だからHMDT本はもっとマニアックな方向にシフトした方が嬉しいかも

売り上げ減るだろうけど
891名称未設定:2006/04/19(水) 11:08:37 ID:N3gxNvep0
>>888
違う文化を味わいたいなら良いかも(笑)
892名称未設定:2006/04/19(水) 12:34:59 ID:lMKkvk5u0
>>888
Objective-Cを触り始めると、カルチャーショック。
ヒレガス本と合わせて組んでいくと、面白い。
Javaが面倒に思えるから、不思議。
893名称未設定:2006/04/19(水) 12:55:24 ID:viuKWQV80
>>892
メモリ管理を除けば。
Cocoaを使いはじめてから、循環参照バグを何回か食らっている。

んで萩原本によると、gccのオプションにガベコレが追加されていて、
Leopardのランタイム待ちになっているとあるな。
気になる香具師は、man ccを実行して、-fobjc-gcの項を嫁。
894名称未設定:2006/04/19(水) 13:16:23 ID:P25gDhFk0
ていうかすでにリファレンスのNSObjectのところに書いてあるし
ビルドオプションにもあった気が
895名称未設定:2006/04/19(水) 18:51:24 ID:VoIilS3/0
オプションに-fobjc-gc追加すると、10.5以降でないと実行できないんだろ
896名称未設定:2006/04/19(水) 20:32:44 ID:l6696IsD0
>>895
Appleって過去方向への互換性を無視するから開発者が増えないんだよなぁ
現時点ではターゲット数からみるとMacOSX10.3をサポートしない訳には
いかないのでTigerの機能を使ったソフトってなかなか開発しにくいんだよね。
全てとは言わないけど基本的な部分は過去のOSでも使えるようにして欲しいな。
897名称未設定:2006/04/19(水) 20:50:40 ID:2NqzDzd90
たぶん、そんな体力無いでしょ。
898名称未設定:2006/04/20(木) 10:10:42 ID:DtTYUPSC0
古いものに縛られると新しいものを取り入れられないからな。Winの方の
開発してる奴なんか未だに98とかMeに縛られて哀れだ。

OS9なんかさっさっと切り捨てるのが吉。ユーザーは減りこそすれ、
増えることはないんだから。
899名称未設定:2006/04/20(木) 11:07:24 ID:NFoF+8vA0
Winの開発やってるが、
基本的に95/98 with IE4当時で実装されていたAPI以外使ってない。
ちうか、98以降の新しいAPIって何があるんだろうと疑問に思う。
900名称未設定:2006/04/20(木) 15:27:17 ID:AOS2nRyt0
>>899
Crypt API。 バージョンアップしてるよ。
901名称未設定:2006/04/20(木) 19:31:34 ID:IKTeQtZ30
>>899
Winよく分からないけど、XML関連とかは?
902名称未設定:2006/04/20(木) 20:22:44 ID:V6DyQtAy0
Leopardにガーベジコレクタが来るならPantherにも寄越せってのは
流石に無理な要望だろう。
903名称未設定:2006/04/20(木) 22:03:31 ID:P8eG2JL10
>>896
OSバージョンにあわせてアプリ作ってインストーラーで対応すればいい
大昔のMac用の市販アプリは古いバージョンのOSまで対応してたのが多いが
おそらくOSのバージョンごとに作り変えてたんだと思う
あのころは使って天国、作って地獄と言われたころだった
今は数売れなくなったので市販アプリではそういうことしなくなったようだけど
904名称未設定:2006/04/21(金) 09:09:53 ID:4PGPcEiM0
別に大昔のソフトが古いバージョンのOSまで対応してたわけじゃないと思うけど。
32bit cleanで書いておくというか、Lo3Bytesでマスクするとかしてなきゃ
古いソフトでも大抵動く。

OSバージョンに合わせて作るというのもナンセンス。作りっぱなしならいいけど
動作確認やサポートの手間を考えたらやってられんよ。
905名称未設定:2006/04/21(金) 12:40:34 ID:ajXHu18H0
HMDTの人が講師。

Cocoaセミナー初級編開催
http://developer.apple.com/jp/briefing/cocoa1/
5月1日(月)、25日(木)にCocoaによる開発をご検討されているADC Select/Premier会員向けに
「Cocoaセミナー初級編」を開催致します。(参加費無料)
906名称未設定:2006/04/21(金) 23:09:56 ID:a3eZDVC90
あぽーに依頼されるなんて、凄いなぁ。
907名称未設定:2006/04/21(金) 23:40:25 ID:+dzHgjMM0
ヒレガス氏を招待しる
どんな講習になるのか興味津々
908名称未設定:2006/04/22(土) 16:22:13 ID:xOcjDkiS0
初級編って事は、中級/上級もあんだろな。ちょっと楽しみ。
909名称未設定:2006/04/23(日) 04:25:58 ID:SyAuVJ4r0
NSViewにNSTextInputを(一部だけど)実装して、text viewを自作してみた。
ことえりでしかテストできてないので、興味ある人がいたら触ってみて。
ttp://aerial.s184.xrea.com/dev/cocoa/test/TextInput-200604230332.tar.bz2

でも未だに入力システム周りの仕組みはまったく理解できてない('A`)
910名称未設定:2006/04/23(日) 14:16:41 ID:YsVTq/pR0
いけだまさと乙
911名称未設定:2006/04/23(日) 18:19:19 ID:lgnIDEfG0
本名出てたかw
まぁいいや。
912名称未設定:2006/04/23(日) 23:27:32 ID:GHMrRfsc0
俺も気をつけようw
913名称未設定:2006/04/24(月) 10:21:40 ID:V8ui1Ckq0
池田君凄いね。
914名称未設定:2006/04/24(月) 19:22:57 ID:uDPYZOLC0
当人のサイトで告知されてたが、HMDT 本の新しいのが出るらしいな。
中級以上向けにシフトしたか?
915名称未設定:2006/04/24(月) 19:49:48 ID:fV7hUHxs0
赤さんキター
916名称未設定:2006/04/24(月) 21:46:48 ID:TmJ89LI40
Third Edition=3版って言うけれど、
第3巻だと思った方が良いのだろうか?
普通は最新版があれば古い版の本はいらないけれど・・・
917名称未設定:2006/04/24(月) 22:33:23 ID:33B5xvG+0
>>916
実質的には第2巻じゃないのかな
1,2は持ってないけどこれは買っておく
918名称未設定:2006/04/24(月) 22:46:13 ID:oTuz6oDV0
目次
chapter1 Spotlight
chapter2 PDF Kit
chapter3 QuickTime Kit
chapter4 CocoaとXML
chapter5 NSTreeController
chapter6 Core Data: チュートリアル
chapter7 Core Data: 詳 解
chapter8 その他のCocoaの新しいクラス
919名称未設定:2006/04/25(火) 09:07:40 ID:6VEU7PTZ0
いいとこ突いてるな。商売上手だよ。だから買うよ。
920名称未設定:2006/04/25(火) 10:04:33 ID:3ygF4XUD0
>>917
レスThx!!

CocoaのAPIというか
XCodeを使ったプログラミングについて
初心者相手に説明してくれるような本を探していて、
それでHMDT本はどうなのかなあと思っていたところに
このThird Editionの話が出てきて・・・

新しいのを買えば良いのか、それとも既刊の方を買わないと
既刊で説明済みの部分はThird Editionでは端折られているのか
どうなのかなあと。
921名称未設定:2006/04/25(火) 10:42:26 ID:VUzj6vfG0
>>920
>XCodeを使ったプログラミングについて
>初心者相手に説明してくれるような本を探していて、

Amazon で Xcode で検索すると、そのものずばりのタイトルの書籍が見つかります。
ただし、あなたがほんとに必要なものかどうかは、
実際に手にとって確かめられることをお薦めします。
922名称未設定:2006/04/25(火) 11:23:55 ID:3ygF4XUD0
ひょっとして、あの評判の悪い本でしょうか・・・?
あまりに評判が悪くて、自分の目で確認したことすらなかったんですが・・・
こんど探してみます。
923名称未設定:2006/04/25(火) 11:32:47 ID:6VEU7PTZ0
間違いなくあの評判の悪い本。あの内容ならXcodeのヘルプで間に合う。
924名称未設定:2006/04/25(火) 12:02:12 ID:vaUvEOaj0
入門本は入門したら不要
925名称未設定:2006/04/25(火) 12:09:34 ID:VUzj6vfG0
オンラインヘルプを忌み嫌う人を知ってるし、
書籍であることが重要と思ってる人もいるから、
そういう人には必要なのではないでしょうか?

私には不要ですが。
926名称未設定:2006/04/25(火) 12:38:32 ID:74wxiwMc0
なんだかわざとらしいですね
927名称未設定:2006/04/26(水) 19:03:59 ID:HEiS7DCy0
>>920
一番最初に買うならヒレガス本というのがこのスレの共通認識じゃないかな
HMDTは2は1+アルファなので2を買うなら1は不要
3はまだ出てないけど1,2とは全く違う内容である模様

あと荻原本も買っとけ
今はわからなくてもあとで必ず役に立つ
928名称未設定:2006/04/26(水) 23:42:26 ID:D5ADGChN0
プログラミング初心者は C を先に勉強しておいたほうがいいですか?
Xcode入門を見ながらちょっこりいじった後
HMDT に挑戦したら途中で激しく挫折しました
929名称未設定:2006/04/27(木) 00:06:20 ID:ltpUwcoS0
>>928
Cでプログラムの書き方を習得してからの方がいい。
ここで入門者におすすめのヒレガス本もCの知識が前提。
930名称未設定:2006/04/27(木) 00:25:49 ID:Yt2wpEgR0
マカー向けのC言語の入門書ってあるの?
931名称未設定:2006/04/27(木) 00:44:59 ID:GYlRnibG0
昔は「Learn C on the Mac」の日本語版が良かったんだが今ならどれだろ?
コンパイラもCodewarriorが付いてたし内容も良かった。#DaveMarkさん元気かな?
結城さんの本が初心者には良かったかな?
マカー向けではなくC一般初心者向けだけど。もちろんXcodeでも問題ないよ
932名称未設定:2006/04/27(木) 01:23:03 ID:ltpUwcoS0
>>930
OS X前提ならUnix環境だし、普通のCの入門書がそのまま使えると思うが…
933名称未設定:2006/04/27(木) 01:33:49 ID:TAwEYFG30
そうだな、それこそK&Rで十分OKだな。
Macだからといって気にすることもない。
934名称未設定:2006/04/27(木) 02:03:59 ID:e4ykVWFP0
入門書の話題は↓で。おすすめ本の紹介サイトへのリンクも参考に。
推薦図書/必読書のためのスレッド PART30
ttp://pc8.2ch.net/test/read.cgi/tech/1141805746/

Mac向けとなると経験者向けばっかりです。Xcodeの操作方法はさておいて
C言語を学びたいってことならUNIX向けに書かれた本がいいと思います。
ターミナルを利用して、書いてある通りに操作できるはずだから。
935名称未設定:2006/04/27(木) 03:46:44 ID:Yt2wpEgR0
>>931
ありがとう
アマゾンで「C言語 結城」で検索したところ現在購入出来るのは
一冊だけみたいだけど、これでいいのかな?
「Learn C on the Mac」のほうは該当無しでした・・・

>>932,933.934
それが初心者の自分には悩み所なんだよなぁ・・・笑われそうだけど
「Unix環境だし、普通のCの入門書がそのまま使える」
・・・これがよくわかんないのですよ( ´Д⊂ヽ
Xcodeを立ち上げても「C言語」って項目が在る訳ではないようだし

MacでC言語が学べる環境の作り方・・・になるのかな?
これが解ると一歩踏み出せるんだけど・・・
936名称未設定:2006/04/27(木) 04:11:46 ID:iO+FCTLX0
Xcodeなら、
New Project... → Standard Tool
を選んでプロジェクト作って出てくる画面に、「main.c」ってのがあるから、
その中身を本の通りに書き換えることから始めるといいかも。
937名称未設定:2006/04/27(木) 05:34:33 ID:D4y5nZZz0
938名称未設定:2006/04/27(木) 09:21:39 ID:eu0Ueomy0
>>935
Learn C on MacはBookoffの100円コーナーにあったりする
939名称未設定:2006/04/27(木) 10:31:35 ID:ltpUwcoS0
>>935
Xcodeを立ち上げるんじゃなくて、ターミナル.appを立ち上げる。
ユーティリティフォルダの中にある。

ソースファイルの作成は、テキストエディット.appを使えばOK。
940名称未設定:2006/04/27(木) 11:42:42 ID:HNUjDaFF0
初心者向きじゃないけど、古典K&Rだと

#include <stdio.h>

main()
{
printf("hello, world¥n");
}

を書かせてhello.cで保存し

cc hello.c

でコンパイルさせる。

MacのようなUNIX環境なら本の通りにやればいいので、間違える心配が小さい。
だから、UNIX向けのC言語の入門書でいいと思うよ。
入門書なら「C言語入門」Les Hancock 他(アスキー)がいいんじゃないかな。
・・・・と思ったら、ANSI Cじゃないのか・・・ダメだぁ・・・。関数の記述
等が古すぎた。
941名称未設定:2006/04/27(木) 17:20:35 ID:vgj5IgY80
しかし、Cの勉強っていうと
いきなりK&Rを薦める人がいるのが多いのは何でだろ。
あれって単なる、ちょっと出来の悪いリファレンスでしか無いと思う。
洋書の方がどうかは知らんけど。中身も古くね?
942名称未設定:2006/04/27(木) 17:29:21 ID:HNUjDaFF0
初心者にK&Rを薦めるようなバカはいないだろ。出来の悪いリファレンスって
どういうこと?リファレンスには成り得ないと思うけど。

K&RのKの方の「プログラム作法」を実現したのがCだろ。教科書みたいな
もんだと思う。第2版はANSI Cじゃなかったっけ?
943名称未設定:2006/04/27(木) 18:14:16 ID:3V7OgF+h0
C言語の勉強と言ったら
「はぢめてのC」しかあり得ないジャマイカ
944名称未設定:2006/04/27(木) 22:13:40 ID:TAwEYFG30
>>941
単純な理由。K&RでC(とUNIX)を覚えたから。
入門書なんて、そう何冊も読まないしな。
945名称未設定:2006/04/27(木) 23:52:42 ID:TTc8tCOj0
>>935
もし、英語に抵抗がなければ、
Programming in Objective-C
が、一応Cの知識を必要としない唯一の本です。

REALBasic から移行した時に参考になったのは、
やっぱりヒレガス本ですね。
その後、Programming in Objective-C が役に立ちました。

あと Cocoa in a nutshell というレファレンス本の前半の
cocoa の紹介が大変役に立ちました。

Xcode入門は私も買いましたが、時間の無駄、お金の無駄でした。
946名称未設定:2006/04/27(木) 23:55:37 ID:e4ykVWFP0
>>944
こーゆう人のプログラムってひとりよがりで読みにくいんだよね
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894712288/503-5452692-9103166
読んでみんなにやさしいプログラムを書けるようになってくらはい
947944:2006/04/28(金) 01:32:40 ID:25Y0sJV70
>>946
うるせー馬鹿
948928:2006/04/28(金) 02:08:22 ID:ViMBdvIc0
直接 or 間接にレスをくださったみなさん、ありがとうございました。
鼻先であしらわれたらどうしよう、と思っていたので、真摯なレスをいただけてうれしいです。
やはり C 言語の勉強が必要なんですね…。

書店で C 言語の教科書を手に取っても気持ちが萎えてしまうのが常なんですけど、
それはふだん利用しているフリーウェアやシェアウェア(自分にとってのプログラムのイメージ)と、
目の前にある C 言語の世界とが、あまりにもかけ離れているように見えるからです。
いったいこのふたつがどこでどうつながっているのか、わからないのです。

このスレの >>768 で紹介されていた、"Become An Xcoder" という pdf の本が、
そのあたりのことを解説してくれてるのかな? と思いましたが、
全編英語なので二の足を踏んでいてまだ読んでいません。

>>945
>Programming in Objective-C
ちょっと私には難しい感じでしたが、忘れないように amazon のショッピングカートに入れておきました。

あした書店で UNIX 向けの C 言語の入門書をさがしてみます。
ありがとうございました。
949名称未設定:2006/04/28(金) 06:22:13 ID:YC4lIRSH0
C言語の入門書のサンプルってほんと、何か使えそうなものって作れないもんな…。
一応、学校の生徒のテストの成績の計算みたいなのとか出てくるけど。
そこらへん、スクリプト言語と比べるとヒジョーにキツい。
950名称未設定:2006/04/28(金) 07:53:27 ID:GL9HBzPK0
Cの教科書のサンプル書く程度であればこれでも良いかも
http://www.apple.com/jp/downloads/macosx/home_learning/friendlyc.html
今のうちにターミナルの操作を覚えておくに超したことはないけどね
951名称未設定:2006/04/28(金) 08:16:13 ID:n6O6NyJb0
>>949
入門書だから仕方がない…
一通り覚えたら、アルゴリズムの勉強。
952名称未設定:2006/04/28(金) 11:36:17 ID:xBX+1YTX0
経験者は何でも「基本からやれ」というもんだが、基本ほどつまらない上に難しいものはないんだよな。
「InterfaceBuilderで線を繋いでアプリを作ってみましょう」とかから始めた方が意欲も長続きする希ガス
953名称未設定:2006/04/28(金) 11:44:01 ID:YC4lIRSH0
そうですね。そういうところから始めつつ、プログラミングの基本も押さえつつ、
リファレンス的な要素もありつつ、というような本があれば理想。
954名称未設定:2006/04/28(金) 17:27:16 ID:MdTxNrmz0
俺もCをターミナルから使うような入門プログラム作って勉強して、
その後突然イベント駆動型の現代的GUIプログラムの勉強始めたときはそのあまりの落差?
にめまいがして何が何やら分からんかった。

まずXcodeみたいな開発環境が何をやってくれるものなのか、イメージで掴めないと分かってこないよな。

普段利用してるソフトを理解したかったら、イベント駆動型とかイベントドリブンという概念を一度勉強したらいいと思いますよ。
955名称未設定:2006/04/28(金) 18:08:27 ID:QEJzOyQ60
そこでHyperCardですよ
956名称未設定:2006/04/28(金) 18:09:38 ID:stdgp12Y0
何をやるにしてもANSI Cをマスターしないことには、Objective-Cも使いこなせない
わけだが・・・
957名称未設定:2006/04/28(金) 18:11:18 ID:YC4lIRSH0
ANCI Cの範囲で学習に身が入るようなサンプルって何かないですかね。
GUI無しのプログラムでやる事って言ったらテキスト処理とか
何かのデータの変換処理とか思い浮かぶけど、いずれも範囲を超えてそう。
958名称未設定:2006/04/28(金) 18:38:55 ID:stdgp12Y0
演習本を買えばいいんでないの?適当なサンプルっていっても適当かどうかは
人それぞれだし。
959名称未設定:2006/04/28(金) 18:52:04 ID:qXgnAeOA0
>>918
欲しい情報ばっか
960名称未設定:2006/04/28(金) 20:55:16 ID:10BtU4vj0
Cocoa入門にはまずAppleScript Studioだと思う
961名称未設定:2006/04/28(金) 22:51:38 ID:styBqfPA0
>>957
あなたが何を作りたい(作ろうとしている)かによる
エディタを作りたい人間にmp3エンコードのサンプルは無用だろうし
その逆もしかり

ここまでプログラムやパソコンが普及して
たいがいのコトは既製品でできる状況で
何かに不足を感じてプログラムを始めようと人がいても
その人の嗜好にジャストフィットするサンプルや入門本など不可能に近い
(商業的に絶対成功しない)

で特に具体的な目的がないなら(例えば資格とか)
身が入るかどうかは学ぶ側の問題

というわけで基礎をやれ、という答えしか返ってこない
962名称未設定:2006/04/28(金) 23:20:21 ID:qXgnAeOA0
Cは読書程度でおk
963名称未設定:2006/04/28(金) 23:22:38 ID:tCGT6pK40
とにかくコード書け、読め、真似ろ。
964名称未設定:2006/04/29(土) 00:26:10 ID:eIExw68N0
始めの取っ掛かりのCの知識については、
CocoaDevCentral の C Language Tutorial for Cocoa ぐらいの内容でいいんじゃないか?
まぁ英語だけど。
ttp://cocoadevcentral.com/articles/000081.php

とりあえずこれ知っとけば、ヒレガス本は読めると思う。
965名称未設定:2006/04/29(土) 00:49:24 ID:RMOeEkRl0
ネットワークプログラミングやってる人いる?
RoboCupSimulation2Dで遊んでみたくて、
さしあたってUDPでやりとりする鯖とクライアントを書いてみたいんだけれど、
ぐぐっても初心者相手に最初から説明しているようなところは少ないし、
あったとしてもWindows環境用のSocket(WinSockとかいうの?)使ってたり
よく分からんけれど環境が違うせいか簡単なサンプルすらコンパイル出来なかったり・・・

なんか良いサイトとか本とかあったら紹介してくだちいorz
966名称未設定:2006/04/29(土) 00:51:34 ID:9BF+DtxK0
>>965
ネットワーク用のフレームワークもあったと思うけど
socketインターフェース使ってていいんじゃまいか。
大体同じように書けるはず。
967名称未設定:2006/04/29(土) 09:40:55 ID:CtY/14370
>>954-955
イベントドリブンというのは、直線的にプログラムが進んで行くのではなくて、
マウス操作などのイベントに応じてプログラムが実行される、みたいな話ですかね。

>>960
AppleScript Studioなら、必要に応じて調べつつ、まあまあ使えますが、
Object - C + Cocoaで何か使えるようになれる気がしません。

>>964
英語ですか…。
それで内容がとてもわかりやすくていいなら頑張る価値があるかもしれませんが、
少々の本代が惜しいわけではないので、
内容的に普通の日本語のCの入門書と同等なら、そっちを選びます。
968名称未設定:2006/04/29(土) 12:41:43 ID:UngSh8L+0
>>967
俺は逆だなw
Obj-Cで書けてもAppleScriptで書けん
969名称未設定:2006/04/29(土) 14:06:33 ID:65vTmdYk0
>>967
そんなあなたに Cocoaはやっぱり!
ttp://www.big.or.jp/%7Ecrane/cocoa/index.shtml
だいぶコンテンツが減ってしまったので、書籍のほうがいいかも。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4877780890/503-0648617-1191917
970名称未設定:2006/04/29(土) 16:15:13 ID:yGeOv/ri0
誰かC is for Cocoaみたいなの書いてよ、日本語で。
971名称未設定:2006/04/29(土) 16:17:50 ID:D5NnR1ye0
>>970
>誰かC is for Cocoaみたいなの書いてよ、日本語で。
 そういうレベルの人はCocoaを使わない方がよいと思う。
972名称未設定:2006/04/29(土) 16:51:14 ID:yGeOv/ri0
何でよ?
MacDev増やす気無いの?
973名称未設定:2006/04/29(土) 18:21:01 ID:+FkyPhDD0
C is ??
974名称未設定:2006/04/29(土) 18:41:58 ID:uw8klHFv0
・C言語
・オブジェクト指向

これを理解すれば(・∀・)イイ!!
975名称未設定:2006/04/29(土) 19:06:28 ID:9HMuRqle0
>>973
"She is" と引っ掛けてるんだろ
976名称未設定:2006/04/29(土) 19:23:53 ID:yGeOv/ri0
"C is for Cocoa" =>「CはCocoaのC」
977名称未設定:2006/04/29(土) 19:29:04 ID:D520H0h10
日曜プログラマーにとっては、とりあえずC言語はどうでも良いっす!
とにかくサンプルコードが載っているリファレンスが欲しいっす!

http://www.oomori.com/p/index.html
今はここだけが頼りっす!
978名称未設定:2006/04/29(土) 19:38:30 ID:4TZOP+mL0
そこはすげー便利。
英語マニュアル読むの面倒だから助かる。
979名称未設定:2006/04/29(土) 22:30:37 ID:TMHdmFBt0
>>975
ブラッドベリの"S is for Space"や"R is for Rocket"じゃないの?
980名称未設定:2006/04/29(土) 23:06:48 ID:aDugVyEU0
んじゃ日本語にすると「コはココアのコ」になっちゃうのか。
981名称未設定:2006/04/29(土) 23:08:49 ID:Q074y2/V0
>>967
俺はAppleScript→ObjCって流れたけど、何の抵抗もなかった。
逆は少々難しいらしいけど。(>>968みたいに)
982名称未設定:2006/04/29(土) 23:41:29 ID:LZcGWNdi0
983名称未設定:2006/04/30(日) 07:59:12 ID:xiqFXIma0
Tiger+XCode 2.2.1で作ってるCocoaなソフトがあります。
10.3.9(PPC)向けのビルド設定にしているのですが、
今度Universal Binary化したいと考えています。

10.3.9(PPC)と10.4.x(Intel)を同一バイナリに入れる
ようなビルド設定って簡単に作れるものなのでしょうか。
それとも、10.3.9(PPC)と、10.4.x(UV)なバイナリは
分けて作らないといけないのでしょうか?
984名称未設定:2006/04/30(日) 08:34:06 ID:Mc7kiNEp0
立ち読みだから詳しく確認してないが、丁度今書店に並んでるオープンソース
マガジンにそう言うネタがあったような気がする。
985名称未設定:2006/04/30(日) 09:38:34 ID:RYHhMLZU0
986名称未設定
東京だったら、これ行けば? タダだし。

Universal Binaryブリーフィング
http://developer.apple.com/jp/briefing/
・Universal Binaryの概要
・PowerPCとインテル製マイクロプロセッサの違い
・統合開発環境Xcodeとgcc 4.0の説明とUniversal Binaryをつくる手法