[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 23:51 / Filesize : 288 KB / Number-of Response : 939
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Cocoaはさっぱり!!! version.X(10)



1 名前:Cocoa [2008/05/20(火) 22:27:35 ID:ItX/CuiA0]
前スレが終了したみたいなので立てました。
過去ログとかよくわからないのでフォローお願いします。

666 名前:名称未設定 mailto:sage [2008/09/04(木) 20:48:22 ID:pQuggfDa0]
ヒレガス3rdの邦訳?

出るなら買うけど
出る予定なんてないんでしょ?

667 名前:名称未設定 mailto:sage [2008/09/04(木) 21:08:09 ID:AE37cJ/00]
>>666
>出る予定なんてないんでしょ?

ま、ないんじゃね。あれだけ図がついてりゃ訳なんて不要でわ


668 名前:名称未設定 mailto:sage [2008/09/05(金) 09:28:01 ID:Y7BbIuNw0]
まだ古い日本語版本屋に並んでるけど、さすがにもう・・・。地味に売れてたと
思うんで、いい加減新版出して欲しいものだ。英語版も買ったけど、やはり
時間がかかるわ、眠くなるわで、効率が悪い。

669 名前:名称未設定 mailto:sage [2008/09/05(金) 15:45:38 ID:70Xyj+YO0]
Xcode 3.1
LSUIElement=1の、メニューバー(ステータスバー?)アプリを作成しています。
メニューバーのアイコンのメニューからopenPanel等を開くと、openPanelがアクティブにならないのですが、自動でアクティブにするにはどのようにしたら良いのでしょうか。

670 名前:名称未設定 mailto:sage [2008/09/05(金) 15:51:32 ID:3OZbGjxI0]
-(IBAction)makeKeyAndOrderFront:(id)sender;

671 名前:名称未設定 [2008/09/05(金) 15:59:01 ID:70Xyj+YO0]
>>670
NSWindowをアクティブにするときはそれでいけるかもしれないですが、NSOpenPanelをアクティブにするのにはどのようにしたら…
あと、- (void)orderFrontStandardAboutPanel:(id)senderで表示したAboutパネルもアクティブになりません。

672 名前:名称未設定 mailto:sage [2008/09/05(金) 16:10:02 ID:70Xyj+YO0]
なんか邪道ですが、openPanelを開く前に
NSAppleScript *AS=[[NSAppleScript alloc] initWithSource:[NSString stringWithString: @"tell application ¥"アプリ名¥"¥nactivate¥nend tell"]];
を行うことでうまくいきました。
もっとスマートな方法はないのかな…

673 名前:名称未設定 mailto:sage [2008/09/05(金) 16:15:24 ID:70Xyj+YO0]
>>672
[AS executeAndReturnError:nil];
を書き忘れ。

674 名前:名称未設定 mailto:sage [2008/09/05(金) 16:18:16 ID:rvDtJprx0]
それそのまんまのメソッドがあるわけだが……



675 名前:名称未設定 mailto:sage [2008/09/05(金) 16:28:04 ID:70Xyj+YO0]
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
でいけました…


676 名前:名称未設定 mailto:sage [2008/09/05(金) 16:28:36 ID:3OZbGjxI0]
クラス階層

677 名前:名称未設定 mailto:sage [2008/09/06(土) 17:24:41 ID:pbA83sM10]
ドラッグ&ドロップ中にコマンドキーなどが押されたら、
ドラッグ中のアイコンを変更できますかね?

ドラッグ開始時の自作アイコン表示とドロップ時の
キー押下判定は実装できたのですが。

678 名前:名称未設定 [2008/09/07(日) 11:52:19 ID:K5MfR1iP0]
>>677
うーん。自前でイベントループを作って、自前でドラッグ処理を書く以外に、方法が思いつかない。

679 名前:名称未設定 mailto:sage [2008/09/07(日) 12:50:58 ID:YlD2TZRv0]
すみません、質問です。
ファイルのダウンローダーを作成していて、保存ファイル名に自動でタイトルなどを付加しているのですが、
ファイル名に"/"が含まれている場合、ダウンロードに失敗します。

// デスクトップのパス
NSString *path = [@"~/Desktop" stringByExpandingTildeInPath];

// ファイル名を付加
NSString *fileName = @"xx / xx.txt";
path = [path stringByAppendingPathComponent: fileName];

// download は NSURLDownload
// "/"が含まれていると失敗する
[download setDestination:path allowOverwrite:NO];


fileNameを"/" -> "-"に置換すればOKですが、なんか格好悪い、
"/" -> ":" に置換してもFinder上では"-"で表示されます。

Finder上で"/"は入力できるので(内部的には":"なのですかね)
なにか良い方法はありませんでしょうか?

お手数ですがよろしくお願いします。



680 名前:名称未設定 mailto:sage [2008/09/07(日) 12:54:11 ID:WGY8NPzr0]
ファイル名に/を使わないようにすればいいんじゃないか

681 名前:名称未設定 mailto:sage [2008/09/07(日) 13:21:02 ID:6VPpG5Yl0]
¥/

682 名前:名称未設定 mailto:sage [2008/09/07(日) 20:12:21 ID:yQpTS6OD0]
>>681
ありがとうございます。
NSMutableStringに入れて置換をかけてみましたが、
"バックスラッシュ+/"ではワーニングが出ました。

683 名前:名称未設定 mailto:sage [2008/09/08(月) 09:02:43 ID:1EifQ6YV0]
>>682
普通に/を:に置換するだけじゃだめなん?


684 名前:名称未設定 mailto:sage [2008/09/08(月) 22:18:36 ID:VBoZ6EQN0]
試してないしひどく適当なこと書いてるが「/」って単純にパスの区切りとして
扱われてるだけなんじゃね?デスクトップ上に「foo」ってフォルダ作っといて

NSString *fileName = @"foo/bar.txt";

ってしてやっても失敗する?



685 名前:名称未設定 mailto:sage [2008/09/09(火) 00:14:56 ID:IkrehLLo0]
使おうとしているAPIで/はディレクトリの区切り記号だから
"xx/hoge.txt"をダウンロードしようとすれば
xxというディレクトリがないなら失敗するのは当然。

ファイル名として/を使いたければ,:がFinder上では/に見える。
ただ,古いAPIだと:が区切りになっていたので
自動的に別の文字に置き換えられる可能性もある。
一度別の名前でダウンロードしてから希望の名前に
リネームをかけるというのではダメ?

でもダウンロードしてくるファイル名に/が含まれる
ことなんてあるの?


686 名前:名称未設定 mailto:sage [2008/09/09(火) 10:11:47 ID:V/uZJd3h0]
凄く基本的な質問です
以前からメモに// もしくは/* */ でコメントアウトを使用していたのですが
#pragma mark もビルド時には完全に無視されると考えてよいでしょうか?

687 名前:名称未設定 mailto:ge [2008/09/09(火) 17:46:39 ID:tjWw4zqq0]
ソースコードからNSButtonを生成して自作ビューの上に表示させたいんだけど、つまづいてます。

NSButton *aButton;

aButton = [[NSButton alloc] init];
[aButton setTitle:categoryName];
[aButton setTarget:categoryController];
[aButton setAction:@selector(loadFromCategory:)];
[aButton setBezelStyle:NSRecessedBezelStyle];
[aButton setHidden:NO];
[self addSubview:aButton];
[aButton setFrameOrigin:NSMakePoint(200, 200)];

ダメ出しお願いします。

688 名前:名称未設定 mailto:sage [2008/09/09(火) 17:49:59 ID:eVGJsD0p0]
何がどうダメになるんだい?


689 名前:名称未設定 mailto:sage [2008/09/09(火) 17:57:24 ID:tjWw4zqq0]
あー、肝心なところを書き忘れてた。。
ボタンが表示されないんですよ。


690 名前:名称未設定 mailto:sage [2008/09/09(火) 18:06:04 ID:CHK+3i9f0]
指定イニシャライザはinitWithFrame:だね。


691 名前:名称未設定 mailto:mage [2008/09/09(火) 18:18:31 ID:tjWw4zqq0]
最初からもっと詳しく書けば良かったね。NSViewのサブクラス(CategoryView)を作っていました。
それをコントロールするクラス(categoryController)内の文字列がつまった配列を読み込んで、
その数だけボタンを生成したかったんです。

@implementation CategoryView
- (id)initWithFrame:(NSRect)frameRect {
if(self = [super initWithFrame:frameRect]) {
}
return self;
}
- (void)drawRect:(NSRect)aRect {
if(prevArray == categoryController.articleList) {
return;
}
for(NSButton *removeButton in [self subviews]) {
[removeButton removeFromSuperviewWithoutNeedingDisplay];
}
for(NSString *categoryName in categoryController.articleList) {
NSButton *aButton = [[NSButton alloc] init];
[aButton setTitle:categoryName];
[aButton setTarget:categoryController];
[aButton setAction:@selector(loadFromCategory:)];
[aButton setBezelStyle:NSRecessedBezelStyle];
[aButton setHidden:NO];
[self addSubview:aButton];
[aButton setFrameOrigin:NSMakePoint(200, 200)];
}
prevArray = categoryController.articleList;
}
@end

692 名前:名称未設定 mailto:sage [2008/09/09(火) 18:25:40 ID:y/3nMAT/0]
>>691
長々コピペする前に1つ上のレスを見れば良かったね。

693 名前:名称未設定 mailto:sage [2008/09/09(火) 19:27:16 ID:tjWw4zqq0]
>>690
ありがとー

694 名前:名称未設定 mailto:sage [2008/09/09(火) 22:15:47 ID:5CcqCsPV0]
>>691
・とりあえず、drawRect:内で、subViewを追加している所がダメだ。subViewは前もって追加しておかなければならない。
・ボタンの数量が変わるということは、それに合わせて自身のViewサイズも変えなきゃダメじゃないの?
・どうしても、drawRect:のタイミングでしかボタンの数量が決定しないなら、NSButtonCellを使うとよいかもしれない。
・最終的に何を作りたいのか知らないけど、ボタンを並べるだけなら、NSMatrixを使ってみたら?





695 名前:名称未設定 [2008/09/10(水) 01:56:04 ID:JdO1QrgE0]
タスクバーはまだですか?

696 名前:名称未設定 [2008/09/10(水) 22:59:36 ID:erl+1Dgh0]
IBでUILabel のフォントサイズを変更しても、なんか画面上でうまく反映されてない気がするんですが気のせいですかね。
最初に配置したとたんはちゃんと追従するのに、一度フォーカス外しちゃうと駄目なきがしますが、いまいちよく判ってないかも。

697 名前:名称未設定 mailto:sage [2008/09/10(水) 23:48:34 ID:iCA9fuIC0]
AutoSizeなんとかみたいなん入ってないですか?
FitToだっけか何か

698 名前:名称未設定 mailto:sage [2008/09/11(木) 08:31:58 ID:VW8cs/5N0]
>>697
IBの話?Layout>Size to fit の事かな。

699 名前:名称未設定 mailto:sage [2008/09/11(木) 23:15:45 ID:hstXwgpC0]
たのcocoのHelloWorldでさっそくつまづいた。なんとか解決したけど。

.hファイルを編集するとあるが、どこにも「編集後に保存する」とは書いてないじゃないか。アイコンが灰色になってる意味すらわからなかったorz。

700 名前:名称未設定 [2008/09/12(金) 00:15:46 ID:g6XUsCdX0]
>>699
あ、それおれも一瞬つまづいた。
わかってしまえばなんてことないんだけどね。

701 名前:名称未設定 mailto:sage [2008/09/12(金) 00:42:34 ID:giTvRlty0]
ソースファイルを保存してないとそれはメモリ上にしかなくて
コンパイラが参照するディスクに保存してあるソースファイルは前のものだというのは
別に Cocoa に限った話じゃなくてコンパイラを使うプログラミングなら全部共通の常識だと思うのだが

702 名前:名称未設定 mailto:sage [2008/09/12(金) 01:00:38 ID:aLiSGFXa0]
君らはパソコンで文章とか絵とか書いても保存しないのか。

703 名前:名称未設定 mailto:sage [2008/09/12(金) 01:04:35 ID:cm2FlxP60]
>>701
いや、>>699はビルド時のことじゃないと思うよ。ビルド時には保存しますか?って聞かれるし。
多分Interface BuilderのほうにIBOutletとかが反映されるのが保存後ってとこじゃないかな。
たのcocoは買ってないけど、俺もXcode 3.xになってちょっと戸惑った。

704 名前:名称未設定 mailto:sage [2008/09/12(金) 07:29:43 ID:R3vW2eSc0]
>703
ずばりその通りです。
「アクションとアウトレットの接続」が何度やっても接続できなかった。



705 名前:名称未設定 mailto:sage [2008/09/12(金) 10:05:16 ID:kIdPh2bR0]
Xcode 3.xはIBで変更してもビルド時に保存するか聞いてこないってこと?
それはちょっと嫌だなあ。まだ2.xなもんで。

706 名前:名称未設定 mailto:sage [2008/09/12(金) 10:26:27 ID:blJgYNL40]
じゃなくて、関連付けられたXcodeのプロジェクト内のファイルが変更されたら
勝手に見に行って追加削除されたIBAction IBOutletを自動的に同期するんだよ。


707 名前:名称未設定 mailto:sage [2008/09/12(金) 16:10:14 ID:TZxbpOjR0]
勝手に保存される方が気持ち悪くない?

708 名前:名称未設定 mailto:sage [2008/09/12(金) 19:15:18 ID:Vsc3ghHA0]
Xcodeのリファクタリングで、nibのoutletとかも、リプレースしてくれるのが嬉しい。

709 名前:名称未設定 mailto:sage [2008/09/12(金) 20:48:14 ID:Oj5mxfWI0]
>>701
ということを知らない初心者向けの本の話をしてるんですが。

710 名前:名称未設定 mailto:sage [2008/09/12(金) 22:11:37 ID:eLlq91pJ0]
なるほど。
「ファイルとは何か。」
「保存すると何が起こる?」
ぐらいから始めないと何らかのクレームがつく訳か。

711 名前:名称未設定 mailto:sage [2008/09/12(金) 22:30:14 ID:rysqu+9T0]
>>710

そうじゃないだろ……。IBとXcode3.xがどういう連携を取っているかと云うのが詳しく説明されてないのが元凶で、編集した内容が保存しなくてもメモリを介して共有されると勘違いしてしまったって事だろ。


まあ、その誤解の仕方にも些か無理があるが……。

712 名前:名称未設定 mailto:sage [2008/09/12(金) 23:18:43 ID:Oj5mxfWI0]
>>710
大丈夫ですか?

713 名前:名称未設定 mailto:sage [2008/09/12(金) 23:29:05 ID:cm2FlxP60]
ていうか未だに2.xな人が多いのかな?この誤解されっぷりは。

714 名前:名称未設定 mailto:sage [2008/09/12(金) 23:56:30 ID:5MYImlaK0]
開発は3.0でやってるよ。3.1に上げると古いCarbonのAPIが使えなくなるから。
今のところ64bit必要ないし。



715 名前:名称未設定 mailto:sage [2008/09/13(土) 00:22:50 ID:HlQcU5id0]
>3.1に上げると古いCarbonのAPIが使えなくなるから。
それは初耳... SDK を古い奴に設定かえてもだめなの?

716 名前:名称未設定 mailto:sage [2008/09/13(土) 00:47:17 ID:U/Et2gQU0]
ライブラリに古いCarbonのAPIがないからリンク出来んという話だったと思う。

717 名前:名称未設定 mailto:sage [2008/09/13(土) 07:33:10 ID:RcIrvjqx0]
うむー初耳だらけ。
3.1でCarbonいじってる。古いAPIを使っててコンパイラからdeprecatedを連呼されるが
連呼されるだけで一応コンパイルできてる。いい加減Cocoaで書き直そうと思ってるけどそれは
置いといてw
ライブラリがなかったら既存のバイナリも走らないし。

718 名前:名称未設定 mailto:sage [2008/09/13(土) 08:00:02 ID:HlQcU5id0]
XCode 3.1.1 が来てるよ。

719 名前:名称未設定 mailto:sage [2008/09/13(土) 10:24:10 ID:LE/mlm6F0]
実際AppleはいつまでCarbonを長らえさせる気なんだろうな?
Snow Leopardで切ってしまうのは少々過激な気もするし(PowerPCは切られるっぽいが)。

720 名前:名称未設定 mailto:sage [2008/09/13(土) 10:42:12 ID:AGky0g5f0]
CocoaとCarbonが全然基盤の異なる環境で、CarbonはOS 9との互換性のために残してある…
などと考えているならそれは間違いだと言っておく。

721 名前:名称未設定 mailto:sage [2008/09/13(土) 10:49:37 ID:LE/mlm6F0]
>>720
それは分かってる。
両者混在可能だしiTunesとかFinderとか純正でもCarbon要素が多いソフトもあることだから。

722 名前:名称未設定 mailto:sage [2008/09/13(土) 11:27:59 ID:aVqvEgPV0]
最悪、Carbon.framework及び関連Frameworkをぶっこ抜いてきて、内蔵しちゃう。

723 名前:名称未設定 mailto:sage [2008/09/13(土) 11:39:14 ID:CsYE4bq/0]
最近のCocoaはスタック見てもCarbon呼んでないお。
CarbonからCoreServieに移ったのはあるけど。

724 名前:名称未設定 mailto:sage [2008/09/13(土) 12:06:38 ID:aVqvEgPV0]
SetSystemUIMode(kUIModeAllHidden, kUIOptionAutoShowMenuBar);
これだけのためにCarbon使ってる。
これぐらいはCocoaに付けてくれ。 DockもAuoShowするようにして。



725 名前:名称未設定 mailto:sage [2008/09/14(日) 14:12:32 ID:095CqlGt0]
NSTableColumnにNSImageViewを組み込み、
NSImageViewにローカルパスではなくURLから画像を取得する場合、
非同期で取得、表示させるにはどうするばよろしいでしょうか?

726 名前:名称未設定 mailto:sage [2008/09/14(日) 14:31:19 ID:hXVHKg6D0]
非同期で取得したいならNSURLDownloadで

727 名前:名称未設定 mailto:sage [2008/09/14(日) 14:47:35 ID:095CqlGt0]
NSURLDownloadで一旦ローカルに保存せずに
直接NSImageを作成することは出来るのですか?

それらしい方法があればよいのですが。

728 名前:名称未設定 mailto:sage [2008/09/14(日) 15:02:12 ID:/Z2RSCRo0]
どの部分が分からないのか分からない
取得?非同期?表示?

729 名前:名称未設定 mailto:sage [2008/09/14(日) 15:08:23 ID:p8KzSniT0]
NSURLConnection

730 名前:名称未設定 mailto:sage [2008/09/14(日) 15:32:55 ID:AYWcGIb70]
NSURLConnectionで非同期で画像をNSDataとして取得して、
それをもとにNSImageを生成してNSImageViewに設定

731 名前:名称未設定 mailto:sage [2008/09/14(日) 15:38:26 ID:p1p/oAlk0]
現在はNSImageのfileContentOfURLでNSImageを作成しているのですが、
取得に時間がかかると固まったようになるのです。

テーブルカラムで一気に数行を表示させると、しばらく
ハングアップしたような状態になるのを
避けるにはどうすればよいかと。

お手数ですがお知恵をいただければと。

732 名前:名称未設定 mailto:sage [2008/09/14(日) 15:49:38 ID:6NIJPt3y0]
>>731
>>730じゃだめなん?

733 名前:名称未設定 mailto:sage [2008/09/14(日) 16:02:55 ID:cIfGvRb00]
>>731
/Developer/Examples/PubSub/NewMusic/
のコードを見れば、>>730の実例がありますよ。


734 名前:名称未設定 mailto:sage [2008/09/14(日) 16:21:15 ID:p1p/oAlk0]
みなさまありがとうございます。
家に帰ってからチャレンジしてみます。



735 名前:名称未設定 mailto:sage [2008/09/14(日) 16:56:06 ID:/Z2RSCRo0]
普通にメインスレッド以外で読み込めば良いのでは?

736 名前:名称未設定 [2008/09/14(日) 23:21:50 ID:MZtdcUbF0]
age

737 名前:名称未設定 mailto:sage [2008/09/15(月) 00:47:43 ID:23PGzCcT0]
格闘すること4時間、ようやく非同期で画像表示ができました。
みなさま本当にありがとうございました。


738 名前:名称未設定 mailto:sage [2008/09/15(月) 10:05:56 ID:gN/nGyHB0]
>>737
>みなさま本当にありがとうございました。

老婆心だがどうやったらできたかも書いとくといいぞ。
他の人の参考になるかもしれん品

739 名前:名称未設定 mailto:sage [2008/09/15(月) 10:43:43 ID:1fLwojEv0]
相談したら解決法を書くのが礼儀かと

740 名前:名称未設定 mailto:sage [2008/09/15(月) 12:18:29 ID:23PGzCcT0]
ですね。失礼しました。
>>730さんの指摘の通りNSURLConnectionで非同期で画像をNSDataとして取得して画像を作成しました。

以下、主要なコード部分です。

- (void)getImage:(NSString *)imageURL
{
// リクエスト作成
NSMutableURLRequest *request = [NSMutableURLRequest imageURL
urlcachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30];
[request setHTTPMethod:@"GET"];

// コネクション開始
[[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];

}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// データを受信したら imageData_に溜め込む
if(!imageData_) imageData_ = [[NSMutableData data] retain];
[imageData_ appendData:data];
}

-( void )connectionDidFinishLoading:(NSURLConnection*)connection
{
// 受信が完了したら画像を作成する
image_ = [[NSImage alloc] initWithData:imageData_];
}


741 名前:名称未設定 mailto:sage [2008/09/15(月) 16:21:54 ID:yHVGCdW40]
すみません、また質問です。
NSStringで参照渡しをするにはどうすればよいのでしょうか?
下記のコードだと、ログには空白で出てしまいます。

NSString *str1 = @"";
NSString *str2 = @"";
[self getString:str1 str2:str2];
NSLog(@"str1=%@, str2=%@", str1, str2);

- (void)getString:(NSString*)str1 str2:(NSString*)str2
{
str1 = @"aaa";
str2 = @"bbb";
}

なんか基本的なことですみません。


742 名前:名称未設定 mailto:sage [2008/09/15(月) 16:53:15 ID:oR3oM3f30]
NSString *str1;
NSString *str2;
[self getString:&str1 str2:&str2];
NSLog(@"str1=%@, str2=%@",str1,str2);
[str1 release];
[str2 release];

-(void)getString:(NSString**)str1 str2:(NSString**)str2{
*str1 = [@"aaa" retain];
*str2 = [@"bbb" retain];
}

こんな感じか

743 名前:名称未設定 mailto:sage [2008/09/15(月) 17:01:20 ID:mcKY8VJv0]
本題からは外れるが、そのメソッド名でownershipを渡してしまうのはどうかと思う。

744 名前:名称未設定 mailto:sage [2008/09/15(月) 17:20:08 ID:A7RLo79t0]
文字列定数って解放されんの?



745 名前:名称未設定 mailto:sage [2008/09/15(月) 17:37:27 ID:1fLwojEv0]
>>743
[@"aaa" retain]するならcopyStringで
[@"aaa" autorelease]ならgetStringってこと?

そもそも返り値が複数の場合ってNSArrayとかNSDictionaryにしてやるイメージがあるけど、どうなんでしょ

746 名前:名称未設定 [2008/09/15(月) 17:45:44 ID:nEj7kIm/0]
「replacing NaN with 0.」というエラー(ウォーニン?)の対処方法を教えてください。詳細はこうです。

hmdt.jp/coral/index.htmlのcoral.appを改造しました。
コマンドで
./coral www.apple.com/jp/ipodnano/ -o ~/Desktop/test.pdf -p
とすると,問題なく終了しますが,
当のHMDTサイトだと,上記のエラーが16行出力されます。
./coral hmdt.jp/coral -o ~/Desktop/test.pdf -p

改造の趣旨は,PDFの出力をページごとにすることです。
(「PDFとして保存...」と同じことをコマンドラインからできるように)
いわゆるhtmltopdfとかHTMLDOCみたいで日本語可なものです。
このあとパッチを記載します。

747 名前:名称未設定 [2008/09/15(月) 17:47:00 ID:nEj7kIm/0]
$ cat main.patch
*** main.m.orig 2007-06-02 18:05:48.000000000 +0900
--- main.m 2008-09-13 16:13:54.000000000 +0900
***************
*** 38,43 ****
--- 38,44 ----
int COOutputSizeHeight = 0;
BOOL COIsVerboseMode = NO;
BOOL COIsDialogMode = NO;
+ BOOL COIsPagenateMode = NO;
float COTimerTime = 0.0;

NSArray* COFormats = nil;
***************
*** 51,56 ****
--- 52,58 ----
fprintf(stderr, " -f/--format <format> Specify output file format\n");
fprintf(stderr, " -h/--help Print this help\n");
fprintf(stderr, " -o/--output <file> Specify output file name\n");
+ fprintf(stderr, " -p/--pagenate Output a pagenated file\n");
fprintf(stderr, " -s/--screen <width height> Specify rendering screen size\n");
fprintf(stderr, " -S/--SIZE <ratio> | <width height> Specify output image size\n");
fprintf(stderr, " -d/--dialog Use print dialog\n");
***************



748 名前:747 [2008/09/15(月) 17:58:21 ID:nEj7kIm/0]
*** 245,250 ****
--- 247,261 ----
continue;
}

+ // Pagenate option
+ if ([tmp isEqualToString:@"-p"] ||
+ [tmp isEqualToString:@"--pagenate"])
+ {
+ // Set pagenate mode
+ COIsPagenateMode = YES;
+ continue;
+ }
+
// Verbose option
if ([tmp isEqualToString:@"-v"] ||
[tmp isEqualToString:@"--verbose"])

もう一つパッチがありますが,連続投稿できないので,しばらくお待ちを

749 名前:名称未設定 mailto:sage [2008/09/15(月) 18:01:08 ID:oR3oM3f30]
>>745
質問の内容に合うように回答してみたが、
自分なら >>742 みたいなことはしない。

750 名前:747 [2008/09/15(月) 18:01:15 ID:nEj7kIm/0]
$ cat COController.patch
*** COController.m.orig 2007-06-02 18:11:17.000000000 +0900
--- COController.m 2008-09-15 16:05:25.000000000 +0900
***************
*** 39,44 ****
--- 39,45 ----
extern int COOutputSizeHeight;
extern BOOL COIsVerboseMode;
extern BOOL COIsDialogMode;
+ extern BOOL COIsPagenateMode;
extern float COTimerTime;

extern NSArray* COFormats;
***************
*** 290,301 ****
path = [[NSFileManager defaultManager] currentDirectoryPath];
path = [path stringByAppendingPathComponent:COOutputFileName];
}
! if (![data writeToFile:path atomically:YES]) {
! // Error
! fprintf(stderr, "coral: Failed to save data\n");
! [self _quit];
! return;
! }

// Quit application
[self _quit];


751 名前:747 [2008/09/15(月) 18:04:59 ID:nEj7kIm/0]
--- 291,335 ----
path = [[NSFileManager defaultManager] currentDirectoryPath];
path = [path stringByAppendingPathComponent:COOutputFileName];
}
! if (COIsPagenateMode) {
! // For pagenate mode
! // fprintf(stderr, "coral: Pagenate Mode\n");
! // Create print info
! NSPrintInfo* printInfo;
! printInfo = [[NSPrintInfo alloc] init];
! [printInfo autorelease];
! [printInfo setHorizontalPagination:NSFitPagination];
! [printInfo setVerticallyCentered:NO];
! [printInfo setVerticalPagination: NSAutoPagination];
! [printInfo setJobDisposition:NSPrintSaveJob];
! [[printInfo dictionary] setObject:path forKey:NSPrintSavePath];
!
! // Load print panel
! COPrintPanelController* printPanelController;
! printPanelController = [[COPrintPanelController alloc] init];
! [printPanelController setWebView:_webView];
!
! // Active itself
! [NSApp activateIgnoringOtherApps:NO];
!
! // Run print operation
! NSPrintOperation* operation;
! operation = [NSPrintOperation



752 名前:名称未設定 mailto:sage [2008/09/15(月) 18:08:19 ID:1fLwojEv0]
>>749
ですよね
そして本人がいないという

753 名前:名称未設定 [2008/09/15(月) 18:11:07 ID:nEj7kIm/0]
! printOperationWithView:[[[_webView mainFrame] frameView] documentView] printInfo:printInfo];
! [operation setAccessoryView:[printPanelController view]];
! [operation setShowPanels:NO];
! [operation runOperation];
!
! [printPanelController release];
! }
! else {
! if (![data writeToFile:path atomically:YES]) {
! // Error
! fprintf(stderr, "coral: Failed to save data\n");
! [self _quit];
! return;
! }
! }

// Quit application
[self _quit];

以上です。

754 名前:名称未設定 mailto:sage [2008/09/15(月) 19:08:29 ID:yHVGCdW40]
>> 741です。
>>742 - 745 >>749
ありがとうございます。おかげさまでできました。
(NSString**)にして代入は*にすればいいんですね。
NSArrayやNSDictionaryの考えましたが、面倒くさいというか、
参照渡しができるはずだと思ったもので。

メソッド名はあまり規約は考えていません。(汗)






755 名前:名称未設定 mailto:sage [2008/09/18(木) 00:36:35 ID:P7aTv+8m0]
- (void)drawRect:(NSRect)rect {
[super drawRect:rect];
[[NSColor whiteColor] set];
NSFrameRect(rect);
}
と書くのと

static NSColor *_white;

+ (void)initialize {
_whiteColor = [[NSColor whiteColor] retain];
}

- (void)drawRect:(NSRect)rect {
[super drawRect:rect];
[_whiteColor set];
NSFrameRect(rect);
}
と書くのでは
後者の方がパフォーマンス良いのでしょうか?
[NSColor hogeColor];
というのはその都度NSColorを生成していると考え方であってますか?
実際にはパフォーマンスというか、書き方としてどちらが正しいのか知りたいです。

756 名前:名称未設定 mailto:sage [2008/09/18(木) 01:11:02 ID:M4ahfae1P]
NSColorの内部で後者みたいなことがすでに行われているんじゃないかなぁ。
引数なしで呼び出せる色は代表的な色ばかりだし。
知らずに答えてるので、実際は知らない。

757 名前:名称未設定 mailto:sage [2008/09/18(木) 01:17:09 ID:P7aTv+8m0]
やっぱ内部的にやってんですかねぇ。
ここ見て気になったんです。
ttp://hmdt.jp/cocoaProg/AppKit/NSTableView/NSTableView.html#section05

ここで使われてる
+ (NSColor *)colorWithCalibratedWhite:(CGFloat)white alpha:(CGFloat)alpha
の方なんかはなんとなく保持しておいたほうが良いような気がしますが、
おっしゃるようにwhiteColorなどの代表的な色ってどうなんでしょうね。

758 名前:名称未設定 mailto:sage [2008/09/18(木) 02:56:51 ID:s+En6PJ+0]
NSMutableArray *array=[NSMutableArray array];
while([array count]<10000)
[array addObject:[NSColor whiteColor]];

とかやってみてObjectAllocとかでいちいちオブジェクトが生成されているかチェックすれば?
arrayに入っているオブジェクトのポインタを比較するだけでもわかるかな?

759 名前:名称未設定 mailto:sage [2008/09/18(木) 03:20:51 ID:moZQjecs0]
InterfaceBuilderで設置したボタンを、ある変数の値によって
表示したり消したり(操作も無効に)させたいのですが
どうすればよいでしょうか。
こういう場合ソースコードからボタンを作らないといけないんですかね?

760 名前:名称未設定 mailto:sage [2008/09/18(木) 03:49:01 ID:s+En6PJ+0]
ボタンのisHiddenにバインドするだけでいけるでしょ

761 名前:名称未設定 mailto:sage [2008/09/18(木) 05:27:34 ID:moZQjecs0]
>>760
どうもです。それでやってみます。

762 名前:名称未設定 mailto:sage [2008/09/18(木) 12:11:19 ID:P7aTv+8m0]
>>758
作ったarrayをretainしてアクティビティモニタで確かめてみたんですが、
whiteColorやgrayColorなどはメモリ使用量が全然増えず、
colorWithDeviceRed:1 green:1 blue:1 alpha:1
などだとメモリ使用量が増えました。
ObjectAllocを理解してないのですが、試してみたところ前者はあまり反応が無いのに対して後者はAllocateされまくってるようでした。
brownColorやpurpleColorなどシステムや標準のアプリに使われてない色でテストしてみると分かりやすく
初回呼び出し時のみAllocateされてされているようでした。
どうやらこれらはNSCachedRGBColorというカテゴリらしく勝手にうまいことやってくれてるようですね。

763 名前:名称未設定 mailto:sage [2008/09/18(木) 13:26:26 ID:Zp1Zi8dY0]
>>746
俺にはいちいちこのパッチを当ててテストするパワーはないが、

とりあえずデバッガにかけてisnan()あたりでブレークするかやってみるとか?

764 名前:名称未設定 mailto:sage [2008/09/19(金) 01:58:22 ID:I8I+Mir80]
Objective-Cって拡張子cppなC++で書かれた関数って呼び出しできないの?
なんか参照できないみたいなエラーでる






765 名前:名称未設定 mailto:sage [2008/09/19(金) 02:09:25 ID:wgE41EU70]
エラーの内容が曖昧だけどObj-C++なら混ぜられる。
拡張子はmm。

766 名前:名称未設定 mailto:sage [2008/09/19(金) 10:40:19 ID:hXEJrUVN0]
CからC++の関数を呼ぶ時と同じ。
extern "C"でぐぐれ。

767 名前:名称未設定 mailto:sage [2008/09/19(金) 15:34:56 ID:guHg/OSE0]
fp = fopen( "test00.bmp" , "rb" );

でファイルtest00.bmpがあるにもかかわらず
失敗するのですが、ファイル指定方法間違ってるのでしょうか?

768 名前:名称未設定 mailto:sage [2008/09/19(金) 15:43:50 ID:Z5XmRcRR0]
”何処に”有るのか分からない。

769 名前:名称未設定 mailto:sage [2008/09/19(金) 16:03:15 ID:guHg/OSE0]
読んでもだめなら書いてみるってことで
ファイル書き込んだら、ユーザーのディレクトリ直下にファイルが生成されました。

そこにデータを置いたら読み込めました。

実行時カレントディレクトリがおかしかったみたいです。

わけわからん


770 名前:名称未設定 mailto:sage [2008/09/19(金) 16:14:16 ID:XMT3wHyR0]
>>769
ワーキングディレクトリにファイルがあればパスを指定しなくてもいいが、
普通はパスも含めて指定するものだ。お前の方がわけわからんよ。

771 名前:名称未設定 mailto:sage [2008/09/19(金) 16:44:22 ID:+88FPv300]
>>769
わけわかってから先に進んだ方がいいよ

772 名前:名称未設定 mailto:sage [2008/09/19(金) 20:26:50 ID:kkVdyAHJ0]
>>769
NSBundle使うなら、それくらい適当な指示でも探してきてくれるんだが。

773 名前:名称未設定 mailto:sage [2008/09/19(金) 20:33:14 ID:zh18Biru0]
fopen を使う意味が分からん

774 名前:名称未設定 mailto:sage [2008/09/20(土) 00:52:56 ID:QCGx6Cy40]
なんかフルボッコされてる><。
>fopenを使う意味
ウィンドウズで書いてたプログラムをそのまま移植してみたんです><
Mac使用暦3日ですいません。
Mac使いこなしてから出直してきます。



775 名前:名称未設定 [2008/09/20(土) 01:11:31 ID:6P09LMLz0]
>>774
がんばって

776 名前:名称未設定 mailto:sage [2008/09/20(土) 01:12:40 ID:2Q6+WcPN0]
Cの標準ライブラリでソフト作るんならスレ違いだと思うよ。

777 名前:名称未設定 mailto:sage [2008/09/20(土) 02:51:56 ID:y/ouZ/EC0]
>>774
Macでプログラミング{9}
pc11.2ch.net/test/read.cgi/mac/1216824430/

【マック】Macintoshプログラミング質問箱
pc11.2ch.net/test/read.cgi/tech/1113058054/

の方がC言語標準でソフト作るのには向いているかも。
ただしどちらも適度に過疎っているのでそこが問題か。

778 名前:名称未設定 [2008/09/20(土) 04:40:03 ID:TXb4ST/Q0]
wktk.vip2ch.com/vipper103088.png
FinderやMail等で使用されている↑のUIを使いたいのですが、
どなたか方法ご存知のかたいないでしょうか。


779 名前:名称未設定 mailto:sage [2008/09/20(土) 05:19:39 ID:cXIvNawZ0]
Recessed Buttonじゃない??

780 名前:名称未設定 mailto:sage [2008/09/20(土) 05:29:36 ID:TXb4ST/Q0]
>>779
ありがとうございます。Recessed Buttonありました!
あとは背景かぁ…
この背景のすこしカーブしているような感じはどうやってるんだろ。
オリジナル画像?


781 名前:名称未設定 mailto:sage [2008/09/20(土) 07:27:15 ID:JW0iPyXCP]
.appのパッケージを見ると、ボタンのふちとか画像つかってるのがわかるよ

782 名前:名称未設定 mailto:sage [2008/09/20(土) 13:28:58 ID:hXrkeK7L0]
正式に売るアプリならパッケージの中の画像パクって使ってはいけないってうちの社の方針なんだけど、(Apple製のアプリでも)
やっぱ売り物に使うとまずいのかな?詳しい人いませんか?

783 名前:名称未設定 mailto:sage [2008/09/20(土) 14:17:29 ID:rgm2k6nl0]
何だって?

784 名前:名称未設定 mailto:sage [2008/09/20(土) 14:28:35 ID:ULascG860]
>>782
Appleに問い合わせろ。

俺はダメだと思うけど、判断するのはAppleだからな。



785 名前:名称未設定 mailto:sage [2008/09/20(土) 15:56:12 ID:LLE/vX/80]
NSString *mailPath = [[NSWorkspace sharedWorkspace] fullPathForApplication:@"mail"];
if(!mailPath) return nil;

NSBundle mailBundle = [NSBundle bundleWithPath:mailPath];
if(!mailBundle) return nil;

NSString *imagePath = [mailBundle pathForImageResource:@"hoge"];
if(!imagePath) return nil;

return [[[NSImage alloc] initByReferencingFile:imagePath] autorelease];


盗んでないもん!

786 名前:名称未設定 mailto:sage [2008/09/20(土) 16:12:30 ID:pqLJOpdL0]
質問です。
NSDictionaryのインスタンスに登録したオブジェクトの参照カウンタは
NSDictionaryのインスタンスのdealloc時にreleaseされるのでしょうか?

787 名前:名称未設定 mailto:sage [2008/09/20(土) 16:14:08 ID:pqLJOpdL0]
それともdealloc時にremoveAllObjectsを呼ぶ必要がありますか?

788 名前:名称未設定 mailto:sage [2008/09/20(土) 16:21:10 ID:uslRtMKV0]
ない

789 名前:名称未設定 mailto:sage [2008/09/20(土) 16:27:12 ID:pqLJOpdL0]
どうもありがとう!
すっきりしました。

× NSDictionary
○ NSMutableDictionary

790 名前:名称未設定 mailto:sage [2008/09/20(土) 16:36:49 ID:TXb4ST/Q0]
>>781
やっぱり画像ですか…

>>785
おぉ、その手がw
ありがとうございます。


791 名前:名称未設定 mailto:sage [2008/09/20(土) 16:37:14 ID:hXrkeK7L0]
>>785
俺もそんな感じ

792 名前:名称未設定 mailto:sage [2008/09/20(土) 17:12:02 ID:RYHkLcyT0]
しかしそれでは参照元が消えたら壊滅。
心を込めて1ドットずつ写せば問題なし。

793 名前:名称未設定 mailto:sage [2008/09/20(土) 17:12:43 ID:a7bWHByb0]
他のメーラー使ってる人の中には
Mailを削除した人も居るんでない?

794 名前:名称未設定 mailto:sage [2008/09/20(土) 20:59:21 ID:hXrkeK7L0]
まぁMailアプリは一例だろうけど
勝手に標準アプリを消すようなクライアントはあまりいないだろう



795 名前:名称未設定 [2008/09/21(日) 02:55:13 ID:U0GaFiaU0]
小さな画像に著作権は無かったような

796 名前:名称未設定 mailto:sage [2008/09/21(日) 19:06:34 ID:00WHdogq0]
Appleとしても同じアイコン使ってくれた方が統一されて
うれしいと思うんだけどな。
というか、商用アプリでリソースパクりは山ほどあるだろ。

797 名前:名称未設定 mailto:sage [2008/09/21(日) 19:34:22 ID:f0YS1Y1Y0]
service.shoppingfinder.jp/case/case01.html
Win用なのにモロパク

798 名前:名称未設定 [2008/09/21(日) 19:35:41 ID:9pFmn9NQ0]
商売第一のヤツにオリジナリティの道を説くだけ無駄

799 名前:名称未設定 mailto:sage [2008/09/21(日) 19:44:26 ID:1Y9VMPly0]
>>797
UIはOS X、アイディアは→ttp://hmdt.jp/icart/index.html

800 名前:名称未設定 mailto:sage [2008/09/21(日) 19:57:32 ID:nOczMaxO0]
>>797
こういう会社はやだな

801 名前:名称未設定 [2008/09/21(日) 20:33:16 ID:9pFmn9NQ0]
こういうヤな会社でも売れれば勝ちだからな。
こういうヤな会社に負けないにはどうすべきか考えないとな。

802 名前:名称未設定 mailto:sage [2008/09/21(日) 21:12:36 ID:ZjTwY0rm0]
うわ、ここまでやっちゃうか。
えげつないなあ

803 名前:名称未設定 mailto:sage [2008/09/21(日) 21:17:46 ID:eybcE3Lo0]
どうせここまでやるならCocoaで開発しちゃえよ……。

804 名前:名称未設定 mailto:sage [2008/09/21(日) 21:19:46 ID:nY6XTthc0]
>>796
そういや、Appleから警告を受けたY'z Dockはリソースもパクってたな。
それがなきゃ警告はなかったかも?



805 名前:名称未設定 mailto:sage [2008/09/21(日) 21:28:04 ID:nOczMaxO0]
>>801
1行目>>そういう考え方もやだな

806 名前:名称未設定 [2008/09/22(月) 00:20:34 ID:+KhZs1Nw0]
iTunesみたいなUIをつくりたいんだがドキュメントのどこみればいいか分かりません。
だれか教えて下さい。

ちなみにつくりたいiTunesみたいなUIとは、
左ペインの部分です。

807 名前:名称未設定 mailto:sage [2008/09/22(月) 00:44:33 ID:Zw418t180]
>>806
ツリーかな?

808 名前:名称未設定 mailto:sage [2008/09/22(月) 00:46:31 ID:+hiVdtXuP]
>>806
park15.wakwak.com/~concordia/cocoa_break/dev/src/ADCSamples/index.html
のSourceViewが参考になるのでは。
NSTreeControllerを使ってるので、ちょっと敷居が高いかもしれないけど。

809 名前:名称未設定 mailto:sage [2008/09/22(月) 01:02:34 ID:AYeTay2Z0]
>>806
NSTreeController
developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTreeController_Class/Reference/Reference.html

R.Natori氏による使用例
d.hatena.ne.jp/RNatori/20080716


810 名前:名称未設定 mailto:sage [2008/09/22(月) 11:17:41 ID:jh2DSqbR0]
みんな親切だね

811 名前:名称未設定 mailto:sage [2008/09/22(月) 16:43:21 ID:YwUHAmLG0]
>>804
ま、あれはwidnows用だしね。
Mac用で同じリソース使ってくれたら統一感出してくれてありがとう
の一言だと思うけど。

ま、あくまでも憶測w

812 名前:名称未設定 [2008/09/22(月) 18:05:30 ID:AYeTay2Z0]
NSURLの、
relativeStringとabsoluteStringの違いがよくわからないのですが、
具体的にどのようなときに違いが現れるのでしょうか。

813 名前:名称未設定 mailto:sage [2008/09/22(月) 18:38:52 ID:gvOmEYnc0]
+[NSURL URLWithString:relativeToURL:]
-[NSURL initWithString:relativeToURL:]
を使ったとき意外は一緒です。

814 名前:名称未設定 mailto:sage [2008/09/22(月) 18:50:38 ID:AYeTay2Z0]
>>813
ありがとうございます。



815 名前:名称未設定 [2008/09/23(火) 12:51:58 ID:DvYJX4re0]
806です

>>807,808,809
ありがとうございます

816 名前:名称未設定 [2008/09/23(火) 17:58:23 ID:KUSPWosD0]
>>696 同じとこでつまずいた…orz

UILabelのフォントサイズを18以上にすると追従して大きくなるけど、そこから小さくできない。

うーむ

817 名前:名称未設定 [2008/09/23(火) 19:16:28 ID:g/RzbGfr0]
Dock上の特定のアイコンの座標を取得する方法ってあるんでしょうか?
Stackみたいにちょうどアイコンの上にウィンドウが開くようなUIを作りたいのですが・・・。

818 名前:名称未設定 mailto:sage [2008/09/23(火) 22:47:20 ID:7MN5oJ1o0]
プロパティで
@property (readWrite, retain, nonatomic) NSObject *object;
とした場合
self.object = nil;

[object release];
もしくは
[self.object release];
と同義でしょうか?

819 名前:名称未設定 mailto:sage [2008/09/24(水) 00:22:02 ID:aStVeHik0]
久しぶりにプログラムいじってるんですが、quartzのCGLayerRef(スクリーン
外)にCocoaのメソッド使って描画してます。
CGLayerRefからNSContextつくって、それをsetCurrentContextで設定して
描画を行い、NSViewの次のdrawRect:の段階で画面上に描画しています。

10.4ではうまくいっていたんですが、10.5にすると、このメソッド以降描画がさ
れなくなります。

CurrentContextがCGLayerRefになったままなのかと疑い、以前のCurrentContext
を一次退避させて、描画が終わった段階で元に戻すと正常に描画されるように
なったんですが、これは正しい解決方法なんでしょうか。

どなたかアドバイスして頂ければ幸いです。

820 名前:名称未設定 [2008/09/24(水) 19:26:25 ID:jwopSb5h0]
Xcode 3.1です。
-(IBAction)openBrowser:(id)sender{
NSWindowController* wc=[[NSWindowController alloc] initWithWindowNibName:@"Browser"];
[wc showWindow:self];
[[wc window] makeKeyAndOrderFront:self];
}
新しく作成したウィンドウがアクティブにしたいのですが、上のソースでは表示されるもののアクティブになりませんでした。
ウィンドウをアクティブにするにはmakeKeyAndOrderFront以外にも何か必要なんでしょうか。
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
を追加してみたりもしてみましたが効果無しでした。

821 名前:名称未設定 mailto:sage [2008/09/24(水) 19:59:35 ID:EW93wwHW0]
>>820
基本的な確認だけども。
そのNSWindowControllerは読み込んでるNibの中でFile's Ownerになっている?
そのアウトレットがちゃんと目的のWindowに繋がってる?

822 名前:名称未設定 mailto:sage [2008/09/24(水) 21:02:40 ID:jwopSb5h0]
>>821
ありがとうございます。windowをアウトレットで繋いだらうまくいきました。

823 名前:名称未設定 mailto:sage [2008/09/24(水) 21:27:01 ID:iIaK2s1u0]
>>818
ttp://www.stripe-net.jp/cocoa/program/blog20080511.html

824 名前:名称未設定 mailto:sage [2008/09/24(水) 21:55:28 ID:/GxHzA8A0]
>>823
んはーありがとうございます。
ちなみに上記コードでreleaseした後に
self.source = hoge; で再設定しようとすると落ちました。
retainCountが0だからってnilではないんですね。



825 名前:名称未設定 mailto:sage [2008/09/25(木) 07:07:20 ID:lA2ZC0x+0]
iPhotoを起動するときにoptionキーを押しながら起動すると
ライブラリの選択が行えるわけですが、
同じように自前のアプリケーションでも起動時のキー判定を行うには
どうしたらいいんでしょうか。

826 名前:名称未設定 [2008/09/25(木) 07:34:41 ID:bTE/wwXK0]
NSLog([[NSString alloc] initWithData:[[[NSString alloc] initWithString:@"=http%3A%2F%2F"] dataUsingEncoding:NSShiftJISStringEncoding] encoding:NSShiftJISStringEncoding]);
を実行してみると、
=http0X1.D1A1091104A28P-658-0.000000-1.992821
と表示されてしまうのですが、
「%3A%2F%2F」を含むNSDataを「0X1.D1A1091104A28P-658-0.000000-1.992821」ではなく「%3A%2F%2F」にする方法は無いのでしょうか。
initWithDataだけでなく、stringWithContentsOfFile:encoding:error:を試してもだめでした。

827 名前:名称未設定 mailto:sage [2008/09/25(木) 10:03:12 ID:pGcOup570]
>825
cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/bathyscaphe/bathyscaphe/application/source/manager/DatabaseManager-Notifications.m?rev=1.9&view=auto
の一番下の
- (void)applicationWillTerminate:(NSNotification *)notification
でやってる。

これをApplication DelegateのapplicationWillFinishLaunchingあたりで。
GetKeys()はCarbonかCoreServiceに入ってたと思う。

828 名前:名称未設定 mailto:sage [2008/09/25(木) 10:09:07 ID:uj5o01Zl0]
>>826
そもそもhttp%3A%2F%2Fがいけないと思うよ。
http://にしないと。
デコードするメソッドはググれば見つかると思う。

829 名前:名称未設定 mailto:sage [2008/09/25(木) 11:05:14 ID:sKStzvQr0]
>>828
そういう問題じゃないでしょ

>>826
NSLog(@"%@", [[NSString alloc]...);

NSLog の第一引数は format を指定するためのもの。典型的な security hole の原因だわ。

830 名前:名称未設定 mailto:sage [2008/09/25(木) 11:13:32 ID:pGcOup570]
>826
NSString *hoge = /* NSLogの中身 */;
NSLog(@"%@", hoge); // 第一引数に直接指定しない。
だと、どうですか?

NSLogの第一引数に直接指定してるのが問題です。
NSLogの第一引数はprintfとほぼ同じformat文字列ですので、
NSLogが%を解決しようとしてぶっ飛んでるんだと思います。

変換自体はそれでちゃんと出来ているはずです。

831 名前:名称未設定 mailto:sage [2008/09/25(木) 13:08:06 ID:4oC2NP4f0]
>>826
あと、NSShiftJISStringEncoding で決めうちするのはよくないよ。
URL は ShiftJIS のばあいもあれば、 EUC の場合もあるし、
最近は Unicode もふえてるから、ちゃんとその URL を含む頁の
コードを判定してからやりましょう。

832 名前:名称未設定 mailto:sage [2008/09/25(木) 13:33:02 ID:q/UtwYK70]
便乗ですみませんが、どうやって取得前に文字コードを判別できるのですか?

833 名前:名称未設定 mailto:sage [2008/09/25(木) 13:58:05 ID:bTE/wwXK0]
>>829-830
ありがとうございます。うまくいきました。
formatを扱う時は気をつけます。

>>831
今回やろうとしていることの場合、NSString化するデータが日本語を含まないとわかっているため、NSShiftJISEncodeで決めうちしています。

>>832
blogs.dion.ne.jp/fujidana/archives/4169016.html
これぐらいしかわからない…
もっといい方法あれば良いんだが

834 名前:名称未設定 mailto:sage [2008/09/25(木) 15:46:00 ID:sKStzvQr0]
>>833
日本語を含まないことがわかっているのであれば NSASCIIStringEncoding にするべきでは

>>831
URL は %xx を decode しないなら文字コードは関係ないでしょ



835 名前:名称未設定 mailto:sage [2008/09/25(木) 16:11:06 ID:cN/guz5p0]
>>819
そうだよ。
10.4で問題がなかったのはたまたまでしょうね。

836 名前:名称未設定 mailto:sage [2008/09/26(金) 22:02:33 ID:cU/wlxV80]
>>835
遅くなりましたが、レスありがとうございます。

ひとまず安心しました。
DrawRect:が呼ばれる辺りでNSContextも再設定されると思ってたので意外です。

837 名前:名称未設定 [2008/09/27(土) 17:38:47 ID:PUMQQB4h0]
NSViewをpdfにして(「PDFとして保存...」)プリントパネルを出さずに,保存したいと考えてます。
その際,プリントパネルでレイアウトのページ数/枚を2とか4とか設定するのと同様のことを
コードの中で設定したいのだがうまくいきません。
NSPagesAcross(横方向),NSPagesDown(縦方向)に整数をセットすればいい筈なのですが,
うまくいきません。
しかも,developer.apple.com/documentation/Cocoa/Conceptual/Printing/Tasks/CreatingPrintJob.html#//apple_ref/doc/uid/20000861によると
They still use the shared NSPrintInfo object if one is provided, but do not allow the user to modify the defaults.らしい。
アドバイスをお願いします。
念のためソースです。
NSPrintInfo* printInfo;
printInfo = [[NSPrintInfo alloc] init];
[printInfo autorelease];
[printInfo setHorizontalPagination:NSFitPagination];
[printInfo setVerticallyCentered:NO];
[printInfo setVerticalPagination: NSAutoPagination];
[printInfo setJobDisposition:NSPrintSaveJob];
[[printInfo dictionary] setObject:path forKey:NSPrintSavePath];
COPrintPanelController* printPanelController;
printPanelController = [[COPrintPanelController alloc] init];
[printPanelController setWebView:_webView];
[NSApp activateIgnoringOtherApps:NO];
NSPrintOperation* operation;
operation = [NSPrintOperation
printOperationWithView:[[[_webView mainFrame] frameView] documentView] printInfo:printInfo];
[operation setAccessoryView:[printPanelController view]];
[operation setShowPanels:NO];
[[[operation printInfo] dictionary] setObject:[NSNumber numberWithInt: 2 ] forKey:@"NSPagesAcross"];
↑ここで1枚あたり2ページを割り付けているつもり...
[operation runOperation];
NSLog([NSString stringWithFormat: @"%@" ,[[[operation printInfo] dictionary] description]]);
[printPanelController release];

838 名前:名称未設定 mailto:sage [2008/09/27(土) 20:08:21 ID:3BeeyAhv0]
>>836
drawRectで再設定されるから良いという問題ではないですよ。
思わぬ所で上書きされる可能性もあるし、
currentContextかえたら元に戻すのが作法だと思います。

839 名前:名称未設定 mailto:sage [2008/09/28(日) 00:16:59 ID:4kM6Mp/Q0]
>>837
NSPagesAcrossってNSPrintPagesAcrossのこと?
後こういう定数は「@"NSPrintPagesAcross"」じゃなくてそのまま「NSPrintPagesAcross」でいいと思う。

840 名前:837 [2008/09/28(日) 12:00:57 ID:UPVPAS6R0]
>>839
アドバイスサンクスです。NSPagesAcrossとNSPrintPagesAcrossとの関係はつかめません。
NSPrintPagesAcrossにかえても,NSPrintInfoをダンプ(NSLog)は「NSPagesAcross = 2;」になってます。
しかも,期待した結果を得られないし,,,
[printInfo setJobDisposition:NSPrintSaveJob];としても
runOperation中では,無視されているみたいです。

841 名前:名称未設定 mailto:sage [2008/09/28(日) 12:39:44 ID:qIiqZsDr0]
>>838
なるほど、言われてみればその通りです。

アドバイスありがとうございました。

842 名前:837 [2008/09/29(月) 11:02:33 ID:El694lAQ0]
NSLogで出力したとき,日本語がエスケープされる(\U5185みたいになる)のですが,
エスケープされない方法か,コピペで,変換してくれるようなサイトがあったら,
教えてください。ちなみにこれはUTF8?UTF16?

843 名前:名称未設定 mailto:sage [2008/09/29(月) 12:49:55 ID:z/XCBa2L0]
>>842
>ちなみにこれはUTF8?UTF16?

いわゆるNonLossyASCII。

844 名前:名称未設定 mailto:sage [2008/09/29(月) 16:20:22 ID:gW8PSnBP0]
>>842
>>NSLogで出力したとき
問題があった時は自分で原因を狭めてしまわず、どういうことをしたらそうなったのかちゃんと詳しく書くべき
NSLogは日本語表示してくれる
ArrayとかDictionaryのdescriptionだと言ってるように変換されて表示される
君はそれを言ってるんじゃないかな?
まずは質問の仕方から勉強しようね



845 名前:837 [2008/09/29(月) 16:21:31 ID:El694lAQ0]
ページ設定パネルで設定された結果(プリンタとか,用紙サイズ,方向など)を
チェックしたくて,
NSPageLayout *pageLayout = [NSPageLayout pageLayout];
runModalResult = [pageLayout runModal];
NSLog([NSString stringWithFormat: @"%@" ,[[[NSPrintInfo sharedPrintInfo] dictionary] description]]);
というのを差し込んでいるのですが,
ログには全然,パネルでの変更が反映されていません。
(デフォルトの設定がつらつらと出力されるだけ)
なんか勘違いしているみたいなのですが,その勘違いに気付けないので,よろしくお願いします。



846 名前:名称未設定 mailto:sage [2008/09/29(月) 16:48:46 ID:FPqjXq0v0]
だから、NSLogの第一引数に直接内容不明な文字列を指定するなっていったじゃん。

と、全然別の所に突っ込んでみた。

847 名前:名称未設定 mailto:sage [2008/09/29(月) 17:04:44 ID:gW8PSnBP0]
>>845
お前人の話し聞けよwww
そんでNSPageLayoutとかNSPrintInfoとか、
つかそもそもstringWithFormatとかdescriptionとかrunModalとか全部ドキュメント読んでこいよw
コード見てるとなんかどこじゃなくてたくさん勘違いしてるから

848 名前:名称未設定 mailto:sage [2008/09/29(月) 18:04:53 ID:aNtcQVm00]
NSLogの引数の中が全部デフォルトのものばかりかと。
変更された値を保持するオブジェクトを引数にいれないと。

849 名前:名称未設定 mailto:sage [2008/09/30(火) 00:10:06 ID:AyM7tJ3A0]
>>847
>どこじゃなくてたくさん勘違い

845はよーくドキュメントあたった方がいいぞ

850 名前:名称未設定 mailto:sage [2008/09/30(火) 00:37:30 ID:ra4ctouo0]
>>840
>>837のコードを参考に自分でもいろいろ試してみたんだけど、ダメだ。
カスタムのNSPrintInfo作って、それを使ってNSPrintOperationを動かしても全然一枚あたりのページ数が反映されない。
NSPrintOperationにパネル表示させて、一枚あたり2ページにしてやると正常に作動するのに、
その正常に作動したNSPrintInfoの内容と全く同じカスタムのNSPrintInfoを事前に指定してやると全然反映されない。
(多分>>837のコードは四苦八苦した後のものなんだろう。NSPrintOperation作った後に設定したりしてるから。
 自分はNSPrintOperation作る前にNSPrintInfoに設定したけど、結果は同じだった)

CocoaBuilderで似たような質問が出ていないか捜してみると、いくつかあった。
www.cocoabuilder.com/archive/message/cocoa/2007/11/16/193220
しかし困ったことに回答が付いたものはゼロだった。
誰か正解を教えてくれ。俺が困ってるわけじゃないけど。

851 名前:名称未設定 mailto:sage [2008/09/30(火) 00:58:00 ID:jXZPfbh50]
>>849
お前さんもどこがおかしいのか分からないのかい?
おかしいってか意味の無いことをしてるなって感じだけど

852 名前:名称未設定 mailto:sage [2008/09/30(火) 01:45:32 ID:ra4ctouo0]
>>845
まずNSLogだが、これはstringWithFormat:と同じで第一引数にフォーマット、次から挿入する引数になる。
それを直すとこうなる。
NSLog(@"%@" ,[[[NSPrintInfo sharedPrintInfo] dictionary] description]);

次に「%@」だが、これは引数に指定したオブジェクトのdescriptionが挿入される。NSStringのdescriptionは自分自身。
それを直すとこう。まあ動作は同じなんだけど。
NSLog(@"%@" ,[[NSPrintInfo sharedPrintInfo] dictionary]);

だが俺の理解だと、sharedPrintInfoはカスタムのNSPrintInfoを指定していないNSPageLayoutや他のNSPrintOperationとは
共有されているはずだ。それの変更が反映されていないというのは腑に落ちない。
ていうかそこが本質なんだから、>>846-849はそっちも答えてやってくれよ。

853 名前:名称未設定 mailto:sage [2008/09/30(火) 02:02:03 ID:ra4ctouo0]
>>852に追記。
NSLog([[NSPrintInfo sharedPrintInfo] dictionary]);
これをやってはいけない訳はつまり、descriptionが返したNSStringの中に「%@」やなんかがあったらどうなるか?ってこと。
質の悪いバグになる。

854 名前:名称未設定 mailto:sage [2008/10/01(水) 00:24:05 ID:fZLF4RYJ0]
ttp://ja.wikipedia.org/wiki/%E6%9B%B8%E5%BC%8F%E6%96%87%E5%AD%97%E5%88%97%E6%94%BB%E6%92%83
これって、セキュリティホールになるのか。



855 名前:名称未設定 mailto:sage [2008/10/01(水) 07:44:49 ID:Au+Xh+xi0]
>>852
>ていうかそこが本質なんだから、>>846-849はそっちも答えてやってくれよ。
「NSLogの第一引数に生文字突っ込むな」とか分かりやすいとこばっかレスが付くのはねえ(w

>>845
Leopard以降だとNSPrintInfoからCore Printing(低レベルの印刷レイヤ)まわりにアクセスできるので、
それ経由でやればよさげ。

[operation setShowPanels:NO];
PMPrintSettings settings = [[operation printInfo] PMPrintSettings];
PMPrintSettingsSetValue(settings, kPMLayoutNUpKey, [NSNumber numberWithBool:YES], false);
PMPrintSettingsSetValue(settings, kPMLayoutRowsKey, [NSNumber numberWithInt:2], false);
PMPrintSettingsSentValue(settings, kPMLayoutColumnsKey, [NSNumber numberWithInt:2], false);
[operation runOperation];

とか(2x2の場合)。
NSPagesAcross -> kPMLayoutColumnsKey、NSPagesDown -> kPMLayoutRowsKey という
対応があるようで、これらは元のコードのようにNSPrintInfoからもセット可能なのだが、
kPMLayoutNUpKeyは直接的な対応はないようなので、Core Printingでセットしてやる。
CUIでNSPrintInfoを使うとkPMLayoutNUpKeyがセットされず、それが問題らしい。

856 名前:名称未設定 mailto:sage [2008/10/01(水) 13:40:46 ID:2vvkNhJP0]
NSStringのrangeOfString:options:を使って、文字列の部分一致検索を処理してます。
アルファベットの大文字小文字、全角と半角、ひらがなとカタカナの違いを無視して一致させたいのですが、
ひらがなとカタカナを無視するオプションが見つかりません。
大文字小文字はNSCaseInsensitiveSearch、全角半角はNSWidthInsensitiveSearchが使えました。
どなたか、このあたりをご存知ないでしょうか?

857 名前:名称未設定 mailto:sage [2008/10/01(水) 14:50:47 ID:Jxg6CwEI0]
そんな日本語特有の処理が入ってるの?

858 名前:名称未設定 mailto:sage [2008/10/01(水) 15:40:30 ID:QJCrV6zO0]
印刷するアプリ作ったことない。w

>856
CoreDataの検索はひらがな、カタカナ無視してるから、
何らかの隠しオプションなりが有る可能性は有るけど。
enum CFStringCompareFlags {
kCFCompareCaseInsensitive = 1,
kCFCompareBackwards = 4,
kCFCompareAnchored = 8,
kCFCompareNonliteral = 16,
kCFCompareLocalized = 32,
kCFCompareNumerically = 64,
kCFCompareDiacriticInsensitive = 128,
kCFCompareWidthInsensitive = 256,
kCFCompareForcedOrdering = 512
};
CFのがそのまま通るかも。 kCFCompareLocalized ってのがあるけど使ったことない。

859 名前:名称未設定 mailto:sage [2008/10/01(水) 17:39:48 ID:EWXwe1rT0]
>>856
全く調べてないし、その気もないけど、そんな日本人に都合の良いっていうか日本人くらいしか使わないようなAPIがあるとは思えない。

自前で文字列をどっちかに変換して検索するとかしかないんじゃない?



860 名前:名称未設定 mailto:sage [2008/10/01(水) 18:27:50 ID:2vvkNhJP0]
>>856
ありがとうございます。
CFのオプションを試します。
ダメなら、CFの検索関数も試してみます。

861 名前:名称未設定 mailto:sage [2008/10/01(水) 21:16:10 ID:2yWM9Tj30]
AppleScriptは一部ヴァージョンでひらカタ無視するらしいけど、まあCocoaには関係ないか……。

862 名前:名称未設定 mailto:sage [2008/10/01(水) 23:57:24 ID:YpUBWQie0]
一部バージョンて
最新のAppleScript2.0のことでしょ

863 名前:名称未設定 mailto:sage [2008/10/02(木) 08:58:20 ID:ZCB6ua8+0]
iPhoneの連絡先も、かなを無視して絞り込むな。
やっぱ、CFあたりにあるんじゃないのか。

864 名前:名称未設定 mailto:sage [2008/10/02(木) 09:24:10 ID:DEyPKUgT0]
>>856
ttp://blogs.dion.ne.jp/fujidana/archives/4410801.html
NSPredicateだから、メールなどの絞り込み検索にはともかくテキストエディタなどの文字列検索だとしたらニーズに合うかは分からないけど。



865 名前:名称未設定 mailto:sage [2008/10/02(木) 21:22:47 ID:6I84zxEw0]
基本的な質問で恐縮ですが、
NSMutableDictionary *dict = [NSMutableDictionary dictionary];

NSMutableDictionary *dict = [[[NSMutableDictionary alloc] init] autorelease];
では、どう違うのでしょうか?

下の方が解放してくれていい感じがするのですが、
明確に使い分ける意図があれば教えて下さい。

866 名前:名称未設定 mailto:sage [2008/10/02(木) 21:30:49 ID:/nxJVGj90]
同じ

867 名前:名称未設定 mailto:sage [2008/10/02(木) 22:10:36 ID:6I84zxEw0]
そうですか、ありがとうございます。
これで迷わずにコードがかけます^^;

868 名前:名称未設定 mailto:sage [2008/10/03(金) 08:29:27 ID:oZRcqq8c0]
>>867
ドキュメントのどっかをよめばかいてあるけど、
メソッド名に init... , copy... があるやつは autorelease されてなくて、
メソッド名にそれらがないやつは autorelease されてる、
と「決まってます」。
自分でメソッド書くときもそれに従っとくと混乱がすくないです。

869 名前:名称未設定 mailto:sage [2008/10/03(金) 11:02:40 ID:mGVGEXof0]
>>868
>>423
init は出てこない。

まあ普通は alloc と init の組み合わせで使うから、関係なくないといえばそうだけど。

870 名前:名称未設定 mailto:sage [2008/10/03(金) 16:51:46 ID:lnmhxgeU0]
CABasicAnimationで画像を複数回移動するアニメーション部分をやっているのですが、
speed、durationなどの設定が同じならtoValueに設定した値までの移動距離が短くなるほど、
移動するスピードが遅くなります。(長くなると速くなる)

違った移動距離でも同じスピードで移動させたのですが、そのような設定は出来ますでしょうか?
毎回、speed、durationなどの値を入れ替えるしかないのでしょうか?




871 名前:名称未設定 mailto:sage [2008/10/04(土) 14:48:53 ID:YvRU7BHV0]
>>859
無いという確信がどこから来るのか不思議だが、見事にハズレ。APIはちゃんとある。
CFでもUnicode UtilitiesでもLocaleとoptionを正しく与えれば、ひらがなとカタカナを
同一視した比較ができる。この動作をするのはJapanese Localeの時だけだから、
System Preferences > International設定の影響を受けたくなければLocale明示が必要

872 名前:名称未設定 mailto:sage [2008/10/05(日) 05:38:25 ID:uziPsw3m0]
>>871
別に確信を持って言ってるようには感じないけど。


いい感じ通信だったかな日本語文字列検索のこと書いてたけどこのオプションを使ってるのかな?

勉強になりました。

873 名前:名称未設定 mailto:sage [2008/10/06(月) 10:26:21 ID:JVQiKRWo0]
>>871
kCFCompareLocalizedをオプションに入れて、
ロケールに日本語を入れれば良いという事ですか?

874 名前:名称未設定 mailto:sage [2008/10/06(月) 22:13:17 ID:0Tq6ORkh0]
>>873
CFStringCompareWithOptionsAndLocale()を使う場合はそう。
Leopard以前でLocale明示した比較をする場合はUnicode Utilitiesの
UCCompareText()を使う。



875 名前:名称未設定 [2008/10/07(火) 01:33:37 ID:e/RkVFA40]
すんません、古いOS持ってないので確認できないんだけど・・
例えばSDK10.4でビルドしたアプリって、OS10.3で起動したなら勝手にエラー出して終わるのかな?
それとも自分でチェックのコードを書かなきゃいけない?

876 名前:名称未設定 mailto:sage [2008/10/07(火) 01:36:38 ID:QWJWi9xM0]
>>875
デプロイメントターゲットも10.4にしておけば起動しない。
俺は10.3にも対応してるアプリを書いてるが、SDKは10.4でユニバーサルバイナリ、デプロイメントターゲットは10.3。

877 名前:875 mailto:sage [2008/10/07(火) 01:40:17 ID:e/RkVFA40]
>>876
了解です、ありがとう。

878 名前:名称未設定 mailto:sage [2008/10/07(火) 10:06:27 ID:h1HNxZeI0]
>>874
ありがとうございます。

879 名前:名称未設定 mailto:sage [2008/10/08(水) 17:22:36 ID:HG8PgwVu0]
CocoaでSOAP通信しようとした時に、まず何から手をつければ(何から読めば)いいんでしょうか…

880 名前:名称未設定 mailto:sage [2008/10/08(水) 18:48:52 ID:ttuSaGVV0]
>>879
私が参考にしたのはこれ
developer.apple.com/internet/webservices/webservicescoreandcfnetwork.html

881 名前:名称未設定 mailto:sage [2008/10/08(水) 18:55:02 ID:HG8PgwVu0]
ふんふん、やっぱそれが一番いいですか!
ありがとうございます!!

882 名前:名称未設定 mailto:sage [2008/10/08(水) 19:23:55 ID:4ZTxCEDH0]
ローカライズ作業をしていたところ突如Xcodeが強制終了して
立ち上げ直したのですがなぜかローカライズがまったく反映されなくなってしまい
前日まで作業していた分も全てローカライズがはずれてしまいました。
Localizable.stringファイルを削除し新規に作り直したのですが、まったく反映されません。
試しに新規プロジェクトでローカライズしてみたところ、ちゃんと反映されました。
強制終了した際にプロジェクトファイルが壊れてしまったのでしょうか?
どこかXcode側で設定しなおしてみる項目などはありますか?

883 名前:名称未設定 mailto:sage [2008/10/09(木) 00:31:21 ID:mF789dp10]
一番初めのObjective-Cプログラム - @IT
www.atmarkit.co.jp/fcoding/articles/objc/02/objc02a.html

884 名前:882 mailto:sage [2008/10/09(木) 05:14:32 ID:qeuBkKCx0]
Xcodeが強制終了したので先入観でファイルが破壊されたのかと疑っていたのですが、
結局、事前に一度にたくさん編集していたLocalizable.stringファイル内でセミコロンが抜けていただけでした。
失礼致しました。



885 名前:名称未設定 mailto:sage [2008/10/10(金) 19:16:18 ID:L0qzaxQU0]
Cocoa-Dev-Japan (GoogleML) が… ちょっお前、binding の前に KVC が…
とにかくHMDT本か荻原本読めよ、って感じになってる ヽ(#`Д´)ノ

886 名前:名称未設定 [2008/10/12(日) 08:38:45 ID:UeP+1Xtv0]
Xcode 3.1です。
Mail.appのspliter下部の、縦3本線が入ったもの(↓)を実現したいのですが、どのようにしたら良いのでしょうか。
wktk.vip2ch.com/vipper106389.png

887 名前:名称未設定 mailto:sage [2008/10/12(日) 11:11:46 ID:4WLMBQ1Y0]
>>886
画像用意すれば?

888 名前:名称未設定 mailto:sage [2008/10/12(日) 13:07:15 ID:D9KSzLTv0]
>>886
Bathyscaphe のコードを読めば?

889 名前:名称未設定 mailto:sage [2008/10/12(日) 13:39:33 ID:EkZL2P090]
boolで設定できるようなメソッドなんてないからな


890 名前:名称未設定 mailto:sage [2008/10/12(日) 16:33:30 ID:UeP+1Xtv0]
回答ありがとうございます。

>>888
BathyScaphe見てみます。

>>887,889
標準でCocoaに搭載されているわけでは無いんですか、了解です。

891 名前:名称未設定 mailto:sage [2008/10/13(月) 10:23:40 ID:fnx1FSJm0]
ヒレガス本 (3rd ed.) 買ったら、なんとスクリーンショットが XCode 3.1 系になってた。びっくり。

892 名前:名称未設定 mailto:sage [2008/10/13(月) 15:10:17 ID:qv+NzKd90]
日本語版出たの?

893 名前:名称未設定 mailto:sage [2008/10/14(火) 00:28:17 ID:mOuH6PRf0]
あ、いや、英語版。新規ファイルの画面とか、iPhone 用... とかいう項目も表示されてて、ちょっと NDA 破っていたんではないかと思います。

894 名前:名称未設定 mailto:sage [2008/10/14(火) 06:18:27 ID:isaZ0j8N0]
Document-based Application以外の方法で作ったプロジェクトに
あとからNSDocumentのサブクラスとMyDocument.nib追加しても
MyDocumentをインスタンス化してくれないのは、やっぱり
リンクしてるフレームワークが違うからなんですかね。
途中でドキュメントベースアプリケーションに切り替える方法って
ないんですかね



895 名前:名称未設定 mailto:sage [2008/10/14(火) 06:23:20 ID:uAJ7zTji0]
Document-based Applicationとしては、最低限Cocoaフレームワークにリンクしてればいいはず。
Info.plistの設定が足りてないんじゃないかと。
新規Document-based Applicationプロジェクト作って見比べてみれば。

896 名前:名称未設定 mailto:sage [2008/10/14(火) 07:15:03 ID:R8Rv/utE0]
切り替えってか、最初に選ぶのはただのテンプレだから
>>895のおっしゃる通り、何かしらの設定が足りてないだけ

897 名前:名称未設定 mailto:sage [2008/10/14(火) 09:45:43 ID:iYELuUXd0]
>894
Info.plistの設定をする必要があります。

898 名前:名称未設定 mailto:sage [2008/10/14(火) 10:18:36 ID:KQeOZJ2S0]
一度 [x] でウインドウを閉じた後、
Dockのアイコンをクリックして再度ウインドウを表示するには
どうしたらよいのでしょうか?

899 名前:898 mailto:sage [2008/10/14(火) 11:28:43 ID:KQeOZJ2S0]
ちなみに Cocoa Application で作成しています。

900 名前:名称未設定 mailto:sage [2008/10/14(火) 16:40:23 ID:isaZ0j8N0]
>>895,896,897
なるほど。もうちょっと調べてみます。


901 名前:名称未設定 mailto:sage [2008/10/14(火) 18:10:17 ID:iYELuUXd0]
>>900
Info.plistを直接いじるんじゃなくて、
ターゲットの情報(プロジェクトじゃない)から設定するのが普通です。
空のDocument-Base Applicationを作って見て見るといいと思います。

902 名前:名称未設定 mailto:sage [2008/10/15(水) 13:05:53 ID:X12wPIuI0]
NSExpression/NSPredicate についてご教示ください。
NSExpression の expressionForKeyPath: と expressionForVariable:
って何が違うのでしょうか? それぞれ、NSPredicate predicateWIthFormat中の
%K、$ に相当すると理解しているのですが、$ ってどう使うのかガイドを
読んでもよく分からず(SQLを知らないから?)。やりたいことはできたのですが、
$ が分からないのが気持ち悪くて…よろしくお願い致します。

903 名前:名称未設定 mailto:sage [2008/10/15(水) 14:03:04 ID:yNmlq9pv0]
SQLに'$'なんてあったかな?

Predicate Format String Syntaxにも$なんて出てこないけど?

904 名前:名称未設定 mailto:sage [2008/10/15(水) 14:04:18 ID:yNmlq9pv0]
と思ったら書いてあるじゃん

Variables are denoted with a $ (for example $VARIABLE_NAME).

ちゃんとドキュメント読めよ。



905 名前:名称未設定 mailto:sage [2008/10/15(水) 14:27:54 ID:X12wPIuI0]
言葉足らずですみません。ガイドやリファレンスは読んだのですが、その例が
理解できなくって。その、VARIABLE はどういったものになるのでしょう?
クラス変数は expressionForKeyPath: で取れて来るのは確かめたのですが、
expressionForVariable: でやってみると、'NSInvalidArgumentException'が
投げられて、reason: 'Can't get value for 'hoge' in bindings'、となりました。
'bindings' とあるので、controller に対して掛けるものなのかなぁ?とか、
考えたのですがよく分からず…よろしくお願いします。

906 名前:名称未設定 mailto:sage [2008/10/15(水) 15:23:33 ID:X4uGROjz0]
>>905
どこが解らないのか、理解できませんが、
Predicate Programming Guideの
Creating Predicates Using Predicate Templates
developer.apple.com/documentation/Cocoa/Conceptual/Predicates/Articles/pCreating.html#//apple_ref/doc/uid/TP40001793-219639-BCIIHDCH

を参照してください。

有効なpredicateにするにはpredicateWithSubstitutionVariablesでvariableを変換します。


907 名前:名称未設定 mailto:sage [2008/10/15(水) 16:06:02 ID:X12wPIuI0]
>>906
>どこが解らないのか、理解できませんが、
レスありがとうございます。うまく伝えられずごめんなさい。
以下のような事だと理解していいでしょうか?
・$hoge は述語の中の place holder みたいになっている。
・NSPredicate を実際に使うときに、$hoge の中身を predicateWithSubstitutionVariables
で(動的に)指定する。
・同じ処理を$... を使わない場合には、NSpredicate を個別にインスタンス化する
必要があるので、$... を使う方がよい。
ということですか?

908 名前:名称未設定 mailto:sage [2008/10/15(水) 17:34:16 ID:X4uGROjz0]
>>907
906です。
おおむね、その理解で良いのではないかと思います。

variableが有用なのは、特にdateです。
「dateが今日である」とか「dateが2週間以内」といったpredicateはvariableでないと作れません。

spotlight query には$timeが使えますが、それ以外では自前で作成する必要があります。


909 名前:907 mailto:sage [2008/10/15(水) 18:59:48 ID:X12wPIuI0]
>>908
なるほど、とてもすっきりしました。ありがとうございます。
自分の作っている物では、数値やboolの比較しかやってないので、その用途が
document 読んだにもかかわらず(汗、イメージすら出来ていませんでした。
ありがとうございました。

910 名前:名称未設定 [2008/10/15(水) 20:06:29 ID:cArxvyPQ0]
NSStringに関する質問です。
hoge=[NSString stringWithString:@"test"];
を行った場合は、hogeはメインスレッド終了後解放され、
hoge=[[NSString alloc] initWithString:@"test"];
を行った場合はメインスレッド終了後も解放されないのはわかるのですが、
hoge=@"test";を行った場合はどうなるのでしょうか。
hoge=[NSString stringWithString:@"test"];と同様の処理になるのでしょうか。それとも違うのかな…

911 名前:名称未設定 mailto:sage [2008/10/15(水) 20:25:32 ID:f5mk9D5/0]
メインスレッドが終了するとすべてのオブジェクトが破棄されます。
解放の処理は行われません。

てのは置いといて、
[[NSString alloc] initWith...]
と同じと考えておけば良いです。

912 名前:名称未設定 mailto:sage [2008/10/15(水) 20:27:46 ID:cArxvyPQ0]
>>911
stringWith…
dictionaryWith…
arrayWith…
とかは、デフォでautoreleaseしているものだと思っていたのですが、違うのでしょうか。

initWith…と同等ですか、ありがとうございます。

913 名前:名称未設定 mailto:sage [2008/10/15(水) 20:29:41 ID:X4uGROjz0]
>>910
hoge=@"test" のretainCount を調べてみると良いですよ。


914 名前:名称未設定 mailto:sage [2008/10/15(水) 20:30:38 ID:cArxvyPQ0]
>デフォでautoreleaseしているものだと思っていたのですが、違うのでしょうか。

ソースは、詳解Objective-C 2.0 P103
"一方、一時的に使われることを前提として、オーナーを持たない形で生成されるインスタンスもあります。
このような一時的なインスタンスは、生成直後に自動解放プールに登録することで実現されています。"



915 名前:名称未設定 mailto:sage [2008/10/15(水) 20:48:12 ID:f5mk9D5/0]
意地悪すぎましたか。
あなたが「メインスレッド」という名称だと思っているものは多分「メインランループ」です。
そうだとしても間違った解釈をしてますが。
メインスレッドというのは簡単にいっちゃえば、アプリケーションの実行の流れです。
これが終了するってことはつまり、アプリケーションが終了するってことです。

>911の始めで言ってるのは
「アプリケーションが終了したらオブジェクトはすべて破棄されます」
ってことです。



916 名前:名称未設定 mailto:sage [2008/10/15(水) 22:44:59 ID:cArxvyPQ0]
>>915
ありがとうございます。


917 名前:名称未設定 mailto:sage [2008/10/15(水) 23:34:58 ID:PvLIPph40]
>>910
ちょっと補足。
(Cocoaの)Obj-Cソースで@"test"と書いた場合はNSStringのオブジェクト定数というものになる。
つまり@"test"はそれ自体NSStringのインスタンスなのだけれども、releaseされてもretainCountは減らない。deallocもされない。
なので、hoge=@"test"と[[NSString alloc] initWith...] はautoreleaseされていないという点で同じだが、オブジェクト定数は
解放されないので全く異なる。
しかしプログラムの他の部分で、hogeがオブジェクト定数であることを前提にしたコーディングを行うのは良くない。
あくまでオーナーシップの原則に則るべきだから、stringWithString:の場合と同様に扱うのがいいと思う。

>>915の書き方も婉曲で分かりづらいので補足しておくと、アプリケーション終了時にはメモリは全て解放される。
autoreleaseしたものはメインスレッド終了時でもランループ一巡ごとでもなく、カレントのNSAutoreleasePoolが
解放されるときにreleaseされる。ランループは一巡ごとにNSAutoreleasePoolを作っては解放しているので、
標準ではランループごとにreleaseされるように見える。
自分でNSAutoreleasePoolのインスタンスを作った場合は当然ながらそれがカレントになる。

918 名前:名称未設定 mailto:sage [2008/10/16(木) 00:33:11 ID:yCQlP8sI0]
>>917
ありがとうございます。オブジェクト定数で調べたら載っていました。

919 名前:名称未設定 mailto:sage [2008/10/16(木) 02:55:17 ID:IxQHpoVP0]
というかそれぐらい基本的なことはまず聞く前に過去ログを呼んだ方がいい

920 名前:名称未設定 [2008/10/16(木) 02:58:26 ID:u4dOHZt50]
おーい、過去ログーっ!

921 名前:名称未設定 mailto:sage [2008/10/16(木) 03:03:04 ID:IxQHpoVP0]
呼んで見つかったら次は読んでね

922 名前:名称未設定 mailto:sage [2008/10/16(木) 04:30:30 ID:4acnW/Ie0]
sankei.jp.msn.com/photos/culture/arts/080501/art0805011905006-p1.jpg

923 名前:名称未設定 mailto:sage [2008/10/16(木) 05:09:11 ID:dwqlPggA0]
うまいねえ、これでインスタンスかい?

924 名前:名称未設定 mailto:sage [2008/10/17(金) 04:12:23 ID:T8gpvSXs0]
10/15 付けの新ドキュメントをざっとながめてたんだけど、
developer.apple.com/documentation/Cocoa/Reference/NSTextInputClient_Protocol/Reference/Reference.html
ていう新 protocol がでてた。しかし
developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSTextInput_Protocol/Reference/Reference.html
との違いがほとんどわかりません。詳しい方よろすく



925 名前:名称未設定 mailto:sage [2008/10/17(金) 11:51:31 ID:wwiyQt7f0]
NSDictionaryをファイルに書き出す時に日本語文字列が
"\Uxxxx" のようにUnicodeの文字コードに変換されてしまうのを回避することはできないでしょうか?

PropertyListでなくてNSDictionaryのdescriptionInStringsFileFormatの形式で書き出したいのです。
NSStringやNSPropertyListSerializationを経由してどうにかならないかとやってみましたが解決できませんでした。
Property List Editor.appでファイルフォーマットをText Property Listにして書き出した場合も日本語は文字コードに変換されてしまうのでやっぱり無理なのでしょうか?

926 名前:名称未設定 mailto:sage [2008/10/17(金) 12:18:02 ID:dwaA01i20]
直接やる方法はわかりませんが、
単に NSDictionary のキーを keyEnumerator で列挙して、
それを徐々に NSMutableString かなにかにつなげていって、
ファイルに書き込みたい文字列をつくったら、
NSString の -writeToFile:atomically:encoding:error:
で書き込めばいいと思います。
encoding 指定は NSUTF8StringEncoding でいいと思います。

927 名前:名称未設定 mailto:sage [2008/10/17(金) 12:46:30 ID:wwiyQt7f0]
ありがとうございます
とりあえず今それでやっていますが辞書がいれごになって複雑になると大変ですね;
自前のdescriptionとしてカテゴリにしておこうかな
直接的に変換しない方法もあればよろしくお願いします

928 名前:名称未設定 mailto:sage [2008/10/17(金) 15:21:26 ID:7NVYtTTJ0]
>>925
たぶんプロパティリストのシリアライズと関係があると思うけど、
key = value; 型のものは旧式 (OPENSTEP由来)のもので、基本的にASCII。それが¥Uxxxxになる
理由だったと思う。
今はなるべくXML形式かバイナリ形式でシリアライズすることになっている。
ローカライズに使う.stringsファイルはちょっと例外的で、UTF-8/UTF-16をそのまま使えるけど。

ちなみに¥UxxxxというやつはNSNonLossyASCIIStringEncodingというエンコーディングとして
定義されているので、NSStringとかでこれを指定して読み込めば本来のUnicodeに戻る。

>とりあえず今それでやっていますが辞書がいれごになって複雑になると大変ですね;

リーフノードが規約かどうかで再帰コードでも書いたらいいだけだと思うけど。
そもそも入れ子(?)になってたら、stringsファイル形式では表現できないような。
あ、上で書いたいわゆるOPENSTEP形式のプロパティリストで入れ子にしたいということかな。

929 名前:名称未設定 mailto:sage [2008/10/17(金) 16:18:00 ID:wwiyQt7f0]
そうです、おっしゃる通りstringsファイル形式ではなくてNSPropertyListOpenStepFormat形式のプロパティリストファイルで、
かつ日本語表示させたいということでした。
説明していただいた文章を読むと、\Uxxxxはユニコードの文字コードがASCIIエンコーディングで表示されているということですかね。
そのあたり勘違いしていたようです。
複数のプログラム、プラットフォーム間でのデータのやり取りを想定しているので、プロパティリストではなく編集も容易なテキスト形式が好ましいかなと思い、かつ日本語表示もできるほうがいいよなと試行錯誤中でした。
XMLだと普通に日本語表示されるけど(PropertyListEditorなんかは除いて)テキスト編集が大変かなぁと、、
どうしたらいいのか分からなくなってきたのでもう一度やりとりするファイルの形式から考えなおしてみます。
Javaとか分かれば解決なんでしょうけどorz

930 名前:名称未設定 mailto:sage [2008/10/17(金) 19:47:10 ID:wLdb94V30]
>>924
単純に、NSTextInputを機能拡張したものが、NSTextInputClientなのでは?
NSTextInputは、インフォーマルではない普通のプロトコルなので、メソッドの追加や変更ができません。
そのため、新しいプロトコルが定義されたのではないかと思います。



931 名前:名称未設定 mailto:sage [2008/10/18(土) 00:52:35 ID:BOpHtGbQ0]
>>929
プロパティリストっていってもただのXMLだから大体の環境で読み込みとか問題なさそうな気がするけど違うのかな?
まあ、簡単に編集ができると言う部分はちょっとだけ微妙かもしれないか。

932 名前:名称未設定 mailto:sage [2008/10/18(土) 01:27:26 ID:G97j1AaDP]
DOM面倒だし、YAMLとかにしたほうがいいのかな

933 名前:名称未設定 mailto:sage [2008/10/18(土) 02:24:23 ID:iCLvp6LK0]
>>929
>そうです、おっしゃる通りstringsファイル形式ではなくてNSPropertyListOpenStepFormat形式のプロパティリストファイルで、
>かつ日本語表示させたいということでした。

というわけで、これ自体は、一旦OPENSTEP形式で書き出してからそれをNSStringに
NSNonLossyASCIIStringEncodingで読み込んで、最終的にUTF-8等で書き出し、でいいと思うけど。

クロスプラットフォームならむしろXML形式の方がいいと思うけどね.... Mac OS X以外の
環境でどういう処理をしたいのかによるけど。

934 名前:名称未設定 mailto:sage [2008/10/18(土) 03:46:52 ID:IhdInhk50]
xml のパーサは OS X以外のどの環境でも最近は標準で備わっていたり、オープンソースであったりするので、UTF8 + XML でデータをやりとりするのがかんたんだと思いますよ。

OpenStep 形式のファイルのパーサを OS X 以外の環境で自前で書くのは車輪の再発明で無駄だというのに同意。



935 名前:925 mailto:sage [2008/10/18(土) 05:35:50 ID:Z6oi/mZ20]
みなさんありがとうございます。
今回PCに詳しくない人でもなんとかテキストエディタで編集できるレベルでと考えてたこと、
またProperty List EditorなんかはDeveloperが入っていないといけないというのと、
自分がWinの方でのXMLの処理についての知識が浅かったということで、XML形式でなくOPENSTEP形式にこだわっていました。
昨晩は結局自前のdescriptionを書いて日本語表示をちまちま実装していましたが、力尽きて寝てしまい起きて>>933氏の書き込みを見てやり直してみたら一瞬でできました。
ちなみにプロパティリストの書き出し時に関してですが、NSPropertyListOpenStepFormatは読み込み時にしか使えないため以下のようにしました。

936 名前:925 mailto:sage [2008/10/18(土) 06:12:47 ID:Z6oi/mZ20]
カテゴリを実装
@implementation NSString (CardDocument)
- (NSString *)UnicodeString {
NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding];
return [[[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding] autorelease];
}
@end

NSString *string = [[hogeDictionary descriptionInStringFileFormat] UnicodeString];
NSLog(string);
[string writeToFile:@"/Users/admin/Desktop/hoge.txt" atomically:NO encoding:NSUTF8StringEncoding error:nil];

これでplistとして読み可能な形でテキストファイルに日本語表示のまま保存することができました。
NSLogで確認できますが、辞書の中身がちゃんと日本語で表示されています。
もちろん辞書に対してdescriptionでもいいですが、今回はOPNESTEP形式にしたかったのでdescriptionInStringFileFormatを用いています。
辞書の中にNSDateが入っていると書き出したファイルを読み込みできなくなるのでNSDateはdescriptionWithLocaleなどしておく必要があります。
そうするとProperty List Editorで開いた時にNSDateではなくNSString扱いになってしまいますが、Porperty List Editorから書き出し時にフォーマットをText Property Listにした場合も同じようにNSDateはNSStringに変換されてしまうので仕方ないかと。

とりあえずこれはこれで良いとして、XMLを使う方向での可能性も探っていきたいと思います。みなさま御助言ありがとうございました。

937 名前:名称未設定 mailto:sage [2008/10/18(土) 08:05:10 ID:jwVyMTzD0]
カテゴリ内のメソッド名は UnicodeString とかいうめちゃくちゃ一般的な名前じゃなくて、
stringByInterpretingUnicodeEscapes
とかのほうがいいのでは ... 将来ソースコードみたときに判らんようになると思います。

938 名前:名称未設定 mailto:sage [2008/10/18(土) 08:15:39 ID:iCLvp6LK0]
>>936
あそうそう、OPENSTEP形式だとさらに、いくつかの種類のオブジェクトがちゃんと扱えないという
制限があったはず。ひょっとするとNSDateもそうかも。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<288KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef