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

このエントリーをはてなブックマークに追加
1名称未設定
Cocoaはさっぱり!!! version.14
http://pc11.2ch.net/test/read.cgi/mac/1258249232/
Cocoaはさっぱり!!! version.13
http://pc11.2ch.net/test/read.cgi/mac/1241407525/
Cocoaはさっぱり!!! version.12
http://pc11.2ch.net/test/read.cgi/mac/1231853172/
Cocoaはさっぱり!!! version.11
http://pc11.2ch.net/test/read.cgi/mac/1224960170/
Cocoaはさっぱり!!! version.X(10)
http://pc11.2ch.net/test/read.cgi/mac/1211290055/
Cocoaはさっぱり!!! version.9
http://pc11.2ch.net/test/read.cgi/mac/1201106820/
Cocoaはさっぱり!!! version.8
http://pc11.2ch.net/test/read.cgi/mac/1179498292/
Cocoaはさっぱり!!! version.7
http://pc11.2ch.net/test/read.cgi/mac/1161486802/
Cocoaはさっぱり!!! version.6
http://pc11.2ch.net/test/read.cgi/mac/1146391229/
Cocoaはさっぱり!!! version.5
http://pc11.2ch.net/test/read.cgi/mac/1124986925/
Cocoaはさっぱり!!! version.4
http://pc11.2ch.net/test/read.cgi/mac/1091927026/
Cocoaはさっぱり!!! Version.3
http://pc5.2ch.net/test/read.cgi/mac/1063295248/
Cocoaはさっぱり!version:2
http://pc11.2ch.net/test/read.cgi/mac/1036923528/
Cocoaはさっぱり!
http://pc11.2ch.net/test/read.cgi/mac/1007632025/
2名称未設定:2010/07/01(木) 22:50:29 ID:Zz1V6mgr0
関連スレ
Macでプログラミング{10}
http://pc11.2ch.net/test/read.cgi/mac/1248682344/
Mac OS XをUnixとして使ってる人の為のスレ その15
http://pc11.2ch.net/test/read.cgi/mac/1247059597/
Xcode part8
http://pc11.2ch.net/test/read.cgi/mac/1265669504/
MacでJava その4
http://pc11.2ch.net/test/read.cgi/mac/1214284891/
AppleScript アップルスクリプト 質問、発表 4
http://pc11.2ch.net/test/read.cgi/mac/1256127156/
Xcode part8
http://pc11.2ch.net/test/read.cgi/mac/1265669504/
[SDK]iPhoneアプリ開発初心者質問箱6[touch][iPad]
http://pc11.2ch.net/test/read.cgi/mac/1275273384/
GCD グランドセントラルディスパッチ GCD
http://pc11.2ch.net/test/read.cgi/mac/1251622811/

関連スレ(ム)
Objective-C [ObjC part:4];
http://pc12.2ch.net/test/read.cgi/tech/1239721860/
【マック】Macintoshプログラミング質問箱
http://pc12.2ch.net/test/read.cgi/tech/1113058054/
関連スレ(マ)
【Cocoa】Macプログラマのスレ【Objective-C】
http://pc11.2ch.net/test/read.cgi/prog/1214208397/
3名称未設定:2010/07/01(木) 22:50:37 ID:Zz1V6mgr0
4名称未設定:2010/07/01(木) 22:50:42 ID:Zz1V6mgr0
書籍
【Objective-C】
詳解 Objective-C 2.0「荻原本」(ソフトバンククリエイティブ 、08/5)荻原剛志
Dynamic Objective-C「ダイナミック本」(BNN新社、09/3)木下誠
【Cocoa全般】
HappyMacintoshDevelopinTime 2nd Edition「黒本」(BNN新社、04/6)木下誠
HappyMacintoshDevlopingTime 3rd Edition「赤本」(BNN新社、06/5)木下誠
たのしいCocoaプログラミング「たのここ」(BNN新社、08/8)木下誠
CocoaではじめようMac/ iPhoneプログラミング入門(秀和システム、09/3)中野洋一
Mac OS X Cocoaプログラミング第3版「ヒレガス本」(ピアソンエデュケーション、09/11)アーロン・ヒレガス
【iPhone】
iPhone デベロッパーズ クックブック「エリカ本」(ソフトバンククリエイティブ 、09/2)エリカ・サドゥン
iPhoneアプリケーションプログラミング(技術評論社、09/6)新居雅行
iPhone SDK アプリケーション開発ガイド(オライリージャパン、09/9)Jonathan Zdziarski
iPhone SDK 3 プログラミング大全(アスキー・メディアワークス、09/9)木下誠
基礎からのiPhone SDK 改訂版(ソフトバンククリエイティブ 、09/10)鶴薗謙吾
ほか山ほど
5名称未設定:2010/07/01(木) 23:35:25 ID:Bm3XaXDf0
魔法使いか
6名称未設定:2010/07/01(木) 23:36:05 ID:Bm3XaXDf0
ゴバクスマソ
>>1
乙です
7名無しさん@そうだ選挙に行こう:2010/07/10(土) 13:47:03 ID:ix1PPlp+0
プログラミング初心者です cocoa使い始めて入門objective Cとか読み始めたんですが、さっぱり訳がわかりません
プログラム歴は浅くC の基礎知識がある程度です 楽しいCocoaくらいなら理解できました

次にどういう風に勉強したらいいでしょうか?ご教授お願いします
8名無しさん@そうだ選挙に行こう:2010/07/10(土) 15:25:48 ID:sL5ryDqG0
楽しいCocoaが理解出来てObj-Cがサッパリってのも謎だが、
ちゃんと実際に打ち込んでコード試してるか?

取り敢えず、次はヒレガス本やHMDTでもどうぞ。
その前にCの勉強の方が先だと思うけどね。
9名無しさん@そうだ選挙に行こう:2010/07/10(土) 17:03:35 ID:rXnidcaAP
アドレス帳(Coredata)、ブラウザ(WebKit)、ムービープレイヤー(QTKit)など、
作りたいものから始めれば、必要に覚えていくよ。
10名無しさん@そうだ選挙に行こう:2010/07/11(日) 02:58:15 ID:u0gzQxzv0
@propertyはもっといいやり方あったように思えるな・・・楽になったんだか手間増えたんだか微妙
11名無しさん@そうだ選挙に行こう:2010/07/11(日) 05:11:20 ID:0XfEoohm0
めんどくさくて結局自前のクラスでは用意しないという
12名称未設定:2010/07/12(月) 13:29:26 ID:hM0OlrMe0
>>7
どんな入門書を読んでも自分で何か新しいものを作ろうとすると途方に暮れるもんだ。

楽Cocoが入門書として適切かどうかはわからないけど、次の段階としてはCocoaの
フレームワークを大雑把に把握しておくことだ。どのクラスを使えばいいのか
わからなければ何も出来ないから。Appleのサイトだと英語になるが、奇特な人が
日本語訳を作ってくれているので、それを読むのも良し。ここで大事なことは
フレームワークを一通り舐めるのではなく、どのクラスを使えば何が出来るかと
いうことを把握する。細かいことは必要な時に読めばいい。

楽Cocoは持ってないからどのようなサンプルがあるのか知らないけど、最初の
うちはサンプルを拡張していくことかな。慣れてきたらXcodeのテンプレートの
DocumentBased Applicationとかをベースにして自分のプログラムを作って
いけばいい。習うよりも慣れて憶えていくのがプログラミング。
13名称未設定:2010/07/12(月) 23:01:51 ID:941v2zxo0
@propertyでNSMutableArrayやNSMutableSetなとき用のKVCアクセサまでsynthesizeしてくれたら便利だったのに
14名称未設定:2010/07/12(月) 23:41:11 ID:XsLQKtNA0
なんかtwitterの話にみえた
15名称未設定:2010/07/13(火) 07:34:44 ID:9PIEilUQ0
奇特な人って書いてあると、
物好きな人って揶揄しているように感じてしまうのは、
ジャンプのせいだったのか。


http://d.hatena.ne.jp/keyword/%B4%F1%C6%C3
16名称未設定:2010/07/15(木) 19:26:41 ID:3i/jGFcB0
NSOpenPanel について確認です。10.6 で runModalForTypes: がデプられました。
代わりに、setAllowedFileTypes: と runModal を使えとなっています。で、使ってみたんですが、
以下のようにしても hoge 以外のファイルが選択可能になっています。10.5, 10.6 で確認。
NSArray *types = [NSArray arrayWithObject:@"hoge"];
[panel setAllowedFileTypes:types];
NSLog(@"%@", [panel allowedFileTypes]); // ( hoge ) が入っているのを確認
[panel runModal];

これを [panel rumModalForTypes:types] でパネルを開くと正しく動作します。
上のやり方、リファレンスを見る限りでは間違ってないように思えるのですが…
17名称未設定:2010/07/15(木) 20:08:03 ID:3i/jGFcB0
訂正します。失礼しました、10.6 では正常に動きました。10.5 のバグのようです。
18名称未設定:2010/07/18(日) 21:32:46 ID:L4XWbTMJP
19名称未設定:2010/07/21(水) 17:35:09 ID:JkTrt93r0
ttp/:developer.apple.com/jp/documentation/japanese.html
上記 Cocoa セミナー 上級編 Core Data のためのサンプルコード Core RSS Reader についてです。

10.6.4 Xcode 3.2.4 でビルドし起動まではしていますが、RSS のURLを入れても、チャネル等々 パースし取得したはずの情報が(URL以外は)GUI に表示されません。
(同封されているRSS Reader , RSS Reader 2 では、同URLで正常に表示されます)

どこが問題なのか、ご助言頂けると助かります。
20名称未設定:2010/07/22(木) 01:42:53 ID:lA2YleKW0
落ちてたObj-Cスレを立て直したんで、保守頼む
Objective-C [ObjC part:5];
http://pc12.2ch.net/test/read.cgi/tech/1279730299/
21名称未設定:2010/07/22(木) 10:35:41 ID:53lGCLo30
>>18
>17です、今頃になってリンク踏みました。情報ありがとうございます。
>きりか氏
原因が分かり、すっきりしました。ありがとうございます。
22名称未設定:2010/07/22(木) 11:27:39 ID:nGQ6rlNl0
http/:developer.apple.com/jp/documentation/japanese.html
>>19 について、まず類似環境で、上記サンプルコードが正常に動作するか、どなたかご確認頂けると助かります。よろしくお願いします。
23名称未設定:2010/07/22(木) 11:28:40 ID:nGQ6rlNl0
http//:developer.apple.com/jp/documentation/japanese.html
です。失礼しました。
24名称未設定:2010/07/22(木) 11:30:59 ID:nGQ6rlNl0
25名称未設定:2010/07/22(木) 15:26:48 ID:53lGCLo30
>>24
IB の Core_RSS_Reader_AppDelegate のアウトレット、ChannelController が
繋がっていないから。
26名称未設定:2010/07/22(木) 17:36:06 ID:nGQ6rlNl0
ほんとうですね。
IB で、Core_RSS_Reader_AppDelegate の Outlet の channelController と、CannelController (NSArrayController) とを connect したら、正常に機能するようになりました。ありがとうございました。

こう言う場合の問題点の発見法のコツは何でしょうか?宜しければご教示下さい。
27名称未設定:2010/07/22(木) 19:01:24 ID:53lGCLo30
この場合はコツというか、単に慣れです。やった事は次の順のとおり。
1. IBでChannelCtrl のコンテントをチェック、バインドをチェック→OK
2. -refresh: の urlString のチェック→nil(??おかしいな、バインドはOKだった…)
3. channel, channelController のチェック→nil, nil(未接続だろうな、これは)
IBでアウトレット接続を確認→ほらやっぱり、って感じ。自分でもよくやる失敗。
慣れれば、見当がつくようになりますよ。
28名称未設定:2010/07/22(木) 22:14:27 ID:nGQ6rlNl0
なるほど。
Core Data やバインディングといった半自動化の技術を導入しようと取り組み出した所で、それまで必要だった手順のどこまでを省略できのるか掴めていないので、見落としが増え混乱している所です。
勉強になりました。ありがとうございました。

次は、Document-base Application で Core Data 利用した時のテンプレートの出てき方がCocoa Applicationと大分違っているので、どう手を付けたら良いのか首をひねっている所です。単純なサンブルやヒントなどあったら、助けになるのですが。
29名称未設定:2010/07/23(金) 10:30:54 ID:PneeeWQZ0
30名称未設定:2010/07/25(日) 14:45:38 ID:TLYo3MVs0
この辺はibの使いにくい所だな。
自分で一からibが想定する手順通りに作ってれば問題ないが、ソース持って来たりすると、チェックリストやコンパイラのエラーで詳しく教えてくれる訳でもないから、自分じゃ抜け出せない。
31名称未設定:2010/07/26(月) 16:20:57 ID:qoRwT2Zx0
nspersistent document のドキュメント見つけたので読んです。
327です:2010/08/02(月) 08:27:26 ID:5llkoEVM0
ヒレガス本を読み始めて、テキストフィールドに入力した分の文字数を計算して表示するプログラムを作ることになりました

NSString型のオブジェクトに文章を格納できれば、それの文字数をカウントはstrlen()を使えばいいとはわかります
でもGUIから文字列取得するやり方とか、GUIに表示させる(単なるNSLogじゃだめですよね)などどうするかわからないです

IBを使いこなせばいいんでしょうが、正直文法とかになれてなくて難しいです

こういうときはどういう風にして次に進めばいいんでしょうか?サンプルコード読んだりがいいんですかね?
33名称未設定:2010/08/02(月) 09:54:00 ID:KJAt/QHfP
???
NSString *string = [NSTextfield stringValue];
で、取得するとかじゃなくて?
34名称未設定:2010/08/02(月) 10:35:00 ID:TAe/UZZc0
@interface AppController : NSObject {
IBOutlet NSTextField * inputTextField;
IBOutlet NSTextField * counterTextField;
}
- (IBAction) countCharacters:(id)sender;
@end
@implementation AppController
- (IBAction) countCharacters:(id)sender { /* 本で指定されたメソッドで実装 */
NSString *input = [inputTextFiled stringValue];
NSUInteger length = [input length];
NSString *output = [NSString stringWithFormat:@"%lu", length];
[outputTextFiled setStringValue:output];
}
@end

IB で AppController オブジェクトをつくる。TextField を二つ準備して、
アウトレットを接続。ボタンを用意して、アクションを接続。以上。
第5章を理解すればできるはず。strlen() を使えとは書いてないよ。新しい事を
覚えるのだから、自己流は逆に遠回り。IB の使い方を覚えないと次には進めない。
35名称未設定:2010/08/02(月) 11:26:09 ID:5llkoEVM0
詳しくありがとうございます
ただ本を読んで、サンプルを打ち込んでも、IBのIBActionとかIOOutletとかの使い方がいまいちピンときません

本を熟読するのがいいんでしょうか?詳解と楽しいcocoaは読んで、理論は6割くらいわかったつもりですが、
それらの本は実際のコードが少なくてヒレガス本を始めたんです
しかしよくわかりません オープンソースのやつを読んだりすればわかるようになりますか?

初心者的な質問ですみません まだCのCUIでの簡単なアルゴリズムしか経験無いので、学び方がわかりません
36名称未設定:2010/08/02(月) 12:48:41 ID:KJAt/QHfP
学び方がわからないって。
普通に解説本やサイトのサンプルを真似して作って慣れていくしかないかと。
37名称未設定:2010/08/02(月) 12:50:40 ID:TAe/UZZc0
>>35
えーっと、それが第5章に書いてある事なんだけど…第2章にも書いているみたい。
ピンとこないのは理解できてないからだと思われ。たのココのLesson7にも解説されています。

あなたが踏んでいるステップで、多くの人が学んでいる。
分かったつもりにならず、実際にサンプルをつくり、何をやったのかしっかり理解する事が大切。
強いていえば、挙げられた本で不足しそうなのはCの理解と、オブジェクト指向の理解。
どれもさしてページを割いてないから、これらは他の書籍で学ぶ方がよいかも。
38名称未設定:2010/08/02(月) 13:39:36 ID:5llkoEVM0
そうですね 気合い入れて頑張ります
オブジェクト思考はC++でつまづいたけど、そのときかなり本は読んだんでわかってます
Cの基本もまあまあできてるかな

ヒレガス本を読みまくります 相談に乗っていただき、ありがとうございました
39名称未設定:2010/08/02(月) 14:16:06 ID:TAe/UZZc0
あ、>34の訂正。変数まちがえた、
× [outputTextField setStringValue:...
○ [counterTextField setStringValue:...

>>38
読む事よりも、実際に組む方が重要だからね、がんばれ〜。
40名称未設定:2010/08/06(金) 13:13:26 ID:u9S9gI3f0
こんな単純なことがわからず苦労しております。よろしくお願いします。

NSUInteger index = 6;

NSRange r = NSRangeFromString(@"{2,10}");

indexがrの範囲内にあるのを判定するにはどうすればいいのでしょうか?
判定する関数ありますでしょうか。
それとも
r.location とr.lengthから計算して比較すればいいだけなのでしょうか。

41名称未設定:2010/08/06(金) 13:19:31 ID:Xj2Vv6O30
NSLocationInRange

これくらい自分で調べろよ。それにlocationとlengthからも処理出来るんだから
こんなこと質問すんなよ。
42名称未設定:2010/08/06(金) 13:34:26 ID:u9S9gI3f0
どうやらせっかちというか早とちりで見落としていたようで、
一度見たNSRangeの項目のところにちゃんと書いてありました。

リファレンスの調べ方がまだまだわかってないということですね。
ありがとうございました。

43名称未設定:2010/08/06(金) 13:37:28 ID:Wy7fy4VaP
最初はみんなそんなもんさ。
自称上級者の罵倒なんて気にしちゃだめ。
44名称未設定:2010/08/06(金) 13:46:25 ID:9vWyY7fZ0
うわぁ…
45名称未設定:2010/08/06(金) 14:25:11 ID:u9S9gI3f0
>>43
やさしい言葉をかけていただきありがとうございます。

>>41のおっしゃることももっともだと思いますので、
真摯に受け止めたいと思います。

それと、単なるお叱りで終わるのではなく、
明快な答えとともに書いて頂いておりますので、
本当にありがたいと思います。
46名称未設定:2010/08/06(金) 15:39:50 ID:CwBFHtdS0
いい、いい。そんな気にしないでいいってことよ。
41は去年からずっとそういうことばっか書いてるから。
47名称未設定:2010/08/06(金) 22:43:52 ID:HPLJowsM0
説教もする側のフラストレーションの解消の一種みたいなもんだし、
教わる代わりに、と思い黙って快く受け入れよう。
48名称未設定:2010/08/08(日) 14:12:25 ID:nZoOIW5x0
iPhone開発の方と違ってこっちは古参のいい人ばかりだな
49名称未設定:2010/08/08(日) 17:29:54 ID:SUoxbuU40
>>48
こういう開発系って住人が被ってるからマルチとかしてもすぐバレるし、意味もあまり無い。
iPhone開発だけって人が多いのかな?
50名称未設定:2010/08/08(日) 18:18:31 ID:TeCx3RDrP
iPhoneから入った人はこっちは見ないだろうね。
Macでアプリ開発なんておどろおどろしいと思うだろうし(笑)
51名称未設定:2010/08/08(日) 19:17:56 ID:G6BmEqMQ0
そういやiPhone板に開発スレってないな
断然マックよりiPhoneターゲットの方が
齧ってる人口が多いだろうに
52名称未設定:2010/08/08(日) 20:27:13 ID:XZ6XNNFF0
>>51
以前あったけど、ドザが「何でウインドウズで開発できないんだよ!!」
とか逆キレしだして廃れて行った
53名称未設定:2010/08/09(月) 12:43:16 ID:XfbB00zB0
プログラミングはN-BASIC、REALBasic以来。
iPhoneいじってるうちに自分でもなんか作ってみたくなって、先月Mac購入して
たのしいcocoaで勉強中です。そんな人多いんでしょうね。
がしかし。
チュートリアルのRSSリーダー、ビルドはできたけど動かないorz
Objective-C、想像してたより数倍難しくてワロタ
54名称未設定:2010/08/15(日) 17:13:12 ID:gNDvhWXI0
>>53
Xcode自体は思ってたより簡単だったけどな。
Objective-CはC勉強してないと無理だろう。

Xcodeの使い方覚えても他で活かせないから
有料でいいからWinで使えるXcodeが欲しい・・・
55名称未設定:2010/08/15(日) 17:39:36 ID:S/V3lSU20
ヒレガス本のチャレンジにつまったらどうしたらいい?
もっと上達するまで放置か、どうしてでも調べた方がいいの?
正直初心者すぎて本に書いてるアドバイスじゃ解けないです
56名称未設定:2010/08/16(月) 16:33:43 ID:oqMVRWO10
どんな事に詰まったんだ?
57名称未設定:2010/08/16(月) 20:04:15 ID:nayfRt6K0
>>56
すごく初歩的なとこでしょうから、恥を忍んで書きます 
具体的には6章のヘルパオブジェクトのdelegateでウィンドウのサイズをリサイズするところです

大枠はなんとなくわかるんですが、IBでの設定や詳しいコードとかがわかりません
あっ具体的なコードは教えてもらわなくても結構です
それより、こうしたいときにどのメソッド使うのかな?とかこのメソッドってどう使うのかな?
って時にどういうのを参考にしてるか教えてくれませんか?
一応日本語のドキュメントは見たんですが、それだけじゃわからなかったです

たぶんこの例題だと初期値を設定しておいて、ユーザーがウィンドウの大きさ変えたら、それを受け取って、
所定の高さ・幅のウィンドウ(NSSize)を返して、設定しなおす・・・みたいなのかなとは思いますが
(ここで違ってたら恥ずかしい><)、それぞれの実装の仕方がわかりません
5853:2010/08/16(月) 23:11:17 ID:XOh0aoQA0
>>54
Cは「やさしいC」を一通り読みました。マスターしたというレベルじゃ
とうていないのですが、それでも読んでいて全く意味不明なところはありま
せんでした。
ところがObjective-Cときたら、どの入門書を読んでも途中から(オブジェクト
指向が出てきたあたりから)ついていけなくなるのです。
どうも、JavaとかC++とか知ってる人向けに書かれたとしか思えないような本
ばかりで、ひょっとしてそっちを先に覚えた方が早いのかしらんと思って
しまう・・。
59名称未設定:2010/08/17(火) 00:29:01 ID:X/SLrD0V0
詳解ならオブジェクト指向のさわりから解説されてた気がする
60名称未設定:2010/08/17(火) 00:42:48 ID:TbRzKPj+0
プログラム未経験者には、ヒレガスより「たのCocoa」の方がお奨め出来るなあ。

>>57
まず、フレームワークのヘッダを読もう。
AppKit/NSWindow.h において、
@protocol NSWindowDelegate <NSObject>
の所に、

- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize;
のメソッドが定義されている。

これは、window に設定した delegate に対し、
ウィンドウがリサイズされようとする(will)時に呼び出されるメソッドで、
引数 frameSize がユーザーが変更しようとしているサイズで、返値 NSSize が、実際に変更されるサイズ。(ということが、慣れればメソッドを読むだけで分かる)

故に、frameSize.width *= 2.0; return frameSize; すると、幅が操作の2倍としてリサイズされる。
61名称未設定:2010/08/17(火) 07:26:01 ID:v0J6WynY0
>>60
詳しく教えてくださってありがとう 理解が足りないのかもしれません
一個前のは本を読み直したら解けました だからまた読み直すなりしてみます
6253:2010/08/17(火) 14:58:22 ID:4i2yFfO/0
やっぱ詳解ですか。
あれ高いしとっつきにくそうだから敬遠してたんですけど・・。
今日買いに行こう。

ちなみに、Objective-Cに慣れたら、JavaとかC++とかRubyとか、他の言語の
学習も早いですか?
63名称未設定:2010/08/17(火) 15:00:47 ID:eB3EvgQ00
>>62
本質を理解できてればプログラムなんて全部同じ。
6453:2010/08/17(火) 15:42:28 ID:4i2yFfO/0
>>63
力強いお言葉ありがとうございます。
つまりN-BASICを極めたらなんとかなる・・わけないですよねorz
65名称未設定:2010/08/17(火) 15:45:47 ID:rC7lgW7tP
ただ問題を解くために覚えるのか、
作りたいアプリがあって覚えるのかで
理解度がまるで違う。
6653:2010/08/17(火) 16:14:46 ID:4i2yFfO/0
作りたいのは、超快適なPDFリーダー。
雑誌をめくるようにペラペラペラ・・と高速でページをめくれて、めくって
いる最中にそれが書籍のどのあたりか直感的にわかって、そしてどこにでも
自由に書き込みができるやつ。

小説みたいにはじめから最後まで1ページずつ読んでいく本は、今あるi文庫HD
なんかでとても快適に読めるし、実際自炊して読んでますが、例えばiPhone
アプリ制作の参考書など気になるところをちょっと見たい本などは、とても
自炊する気になれないですよね。そういうのでも快適に読めるやつを作りたい!

ちなみに今作れるのはじゃんけんアプリとかBMI計算アプリとかw
例えば、iPhoneアプリ制作の参考書は
67名称未設定:2010/08/17(火) 17:50:23 ID:eB3EvgQ00
>>64
ぼくも中学のころはN-BASIC使ってたよ。
勉強することはたくさんあるだろうけど
BASICができるなら素養はあると言える。
全くの初心者だと変数や配列や関数の概念からだからね。
68名称未設定:2010/08/17(火) 17:51:36 ID:eB3EvgQ00
>>66
Doxygen形式のHTMLビューワー作って。
APIやメソッドがポップアップビューで表示されて
インクリメンタルサーチ付きのやつ!
69名称未設定:2010/08/17(火) 19:36:25 ID:BHLoR9J60
>>58
Objective-C専門で行くわけじゃないなら、
C>C++>Objective-Cって順序じゃ駄目か?
参考書はC++の物が一番多いから。
C++が理解できればObjective-Cも理解できるから。
70名称未設定:2010/08/17(火) 19:47:44 ID:Cbz1kXPd0
いや、C++は挟まない方がいいと思う
言語の文化が違いすぎるし、基礎的なクラスライブラリも違いすぎる
71名称未設定:2010/08/17(火) 20:07:59 ID:BHLoR9J60
>>70
つーか、C++は覚えて損はないと思うんだけど。覚えない方がObjective-Cの習得早いかな?
まぁ、考え方次第か。
72名称未設定:2010/08/17(火) 20:43:40 ID:Cbz1kXPd0
ObjCとC++は相容れない価値観の言語だからネ
元の質問者は趣味でiPhoneプログラミングをしたい、って動機だから
それならObjC一本槍の方が習得は速いと思うよ

職業プログラマならC++も知ってて損はないと思うが
iPhoneプログラミングがバリバリなら
あえてC++知らなくても食いっぱぐれはないんじゃないかと
73名称未設定:2010/08/17(火) 20:54:08 ID:BHLoR9J60
あぁ、iPhoneSDKで遊びたいってのが主目的だったんだね。読み落としだわ。
それならC++はいらんよね。
74名称未設定:2010/08/17(火) 21:25:25 ID:rC7lgW7tP
Java...何でもないよ(笑)
75名称未設定:2010/08/17(火) 21:35:15 ID:BHLoR9J60
>>74
お前は間違ってない。
>>53が次はandroid携帯を買えば全て解決だ。
76名称未設定:2010/08/17(火) 21:54:17 ID:TbRzKPj+0
Cocoa-Java とかあったな。今では MacRuby とかあるけど。
77名称未設定:2010/08/17(火) 22:28:48 ID:BHLoR9J60
>>76
cocoa-javaって打ち切られるって話じゃなかったか?
で、Rubyは正式に対応って事で。
7853:2010/08/17(火) 23:22:26 ID:4i2yFfO/0
いろんなご意見ありがとうございます。
Objective-Cが難しいんで、他の言語ならもっと簡単に習得できるのかなと
思いましたが、そんな甘いもんじゃないですよね。
C++覚えても却って混乱しそうなんで、浮気せずにObjective-C一本でいきます。

現在、UIImageとUIImageViewの違いを勉強中。
Doxygen形式のインクリなんとかは今日中には無理っぽい。
79名称未設定:2010/08/18(水) 00:02:35 ID:gQTrtfDm0
Objective-C++のことも思い出してあげてください mm

いや、アクロバットみたいなことになってることは否定しないが。
80名称未設定:2010/08/18(水) 00:34:18 ID:1y9iEWEFP
>>78
もしお前がいきなり>>68を作れたら俺は絶望して他の道を探すわw
81名称未設定:2010/08/18(水) 05:20:55 ID:9EOr5AAE0
>>80
ぼくなら絶望しないで仲間にするなぁw
あとCoreDataで作れそう。
82名称未設定:2010/08/18(水) 09:43:54 ID:yiExZ1lx0
C >> Java >> Objective-Cが最強。
Cでメモリ管理を、Javaでオブジェクト指向を学べるので、Objective-Cもすんなりできる。
83名称未設定:2010/08/18(水) 10:15:33 ID:9EOr5AAE0
CとObj-Cだけでいいって。
オブジェクト指向は難しい概念じゃないからやってりゃ自然に分かる。
Cも別に後回しで、必要だなと思ったら勉強すればいいよ。
どうせ最初はそんなにがっつり自分のコードなんて書けないでしょう。
サンプルやドキュメント丸写しで
APIの使い方をトライ&エラーで学習するだけで精一杯だろう。
でもそれを何度もやっているうちに
いつのまにか理解できるようになっている。
84名称未設定:2010/08/18(水) 12:18:01 ID:xoQo0p4l0
>>83
まぁ、Xcodeに慣れろってのが正解かもな。iPhoneSDKなら。
でも、Xcode仕様変わりすぎwww
8553:2010/08/18(水) 13:38:54 ID:pqPRKg1q0
>>83 >>84
そうなんすよね。
丸写しが精一杯なのに、Xcodeの仕様変更のせいで丸写しでは動かないコードがあるのがつらいんですよ。
86名称未設定:2010/08/18(水) 14:40:41 ID:WC+9kgmw0
オブジェクト指向じゃないプログラミングをする方が難しい
87名称未設定:2010/08/18(水) 15:13:35 ID:9EOr5AAE0
>>85
トラブルは自分を強くしてくれるよ。
環境のせいにしないで己を磨くといい。
8853:2010/08/18(水) 16:31:31 ID:pqPRKg1q0
>>83 >>84
そうなんすよね。
丸写しが精一杯なのに、Xcodeの仕様変更のせいで丸写しでは動かないコードがあるのがつらいんですよ。
89名称未設定:2010/08/18(水) 16:47:17 ID:g9IwAVWTP
こんなことやってるようじゃ、プログラミングには不向きかな(笑)
9053:2010/08/18(水) 17:07:10 ID:pqPRKg1q0
うぎゃ
91名称未設定:2010/08/18(水) 18:05:41 ID:ki+kjRyk0
実に2ちゃんねる向きだよw
92名称未設定:2010/08/18(水) 18:44:45 ID:/nEWu6Pl0
2ch系プログラマーって呼ばれ出したらどうするw
93名称未設定:2010/08/18(水) 18:45:34 ID:NocwAeut0
>>85
それ絶対単におまえが悪いせい。
94名称未設定:2010/08/18(水) 19:50:19 ID:/nEWu6Pl0
そう言えばそうだよな?
Xcodeの仕様変更とコード関係ないじゃんw
9553:2010/08/18(水) 20:46:08 ID:4dIvQq9+0
そうなの?
たのcocoのチュートリアルが動かないのはそのせいかと思ってたんですけど、
単なる書き間違い?
96名称未設定:2010/08/18(水) 22:33:13 ID:/nEWu6Pl0
仕様が変わってもObjective-Cのコードが変更になるわけじゃないから
9753:2010/08/19(木) 12:50:50 ID:WE7aCmXu0
>>96
なるほど。
と納得しても何も解決しないのよね。

それより教えて欲しいです。
参考書等をみてると、コードを書く場所って人によって色々なのに気づきました。
delegateに書いたりViewControllerに書いたり、はたまた新しいファイルを作って書いたり。
なんか意味あるんでしょうか。
98名称未設定:2010/08/19(木) 13:03:12 ID:tS/YhD8gP
やっぱり君にはプログラミングは向いてないかな。
プログラムを組んで動かすことよりも、そのスタイルや方法などに
興味を持っているようだし。
9953:2010/08/19(木) 13:11:58 ID:WE7aCmXu0
そんな意地悪おっしゃらずに〜
並行していろいろいじってはいるんですけどね。
理屈がわからないとなかなか頭に入らないだけなんですよ。
100名称未設定:2010/08/19(木) 13:20:09 ID:yGp+EHp40
習うより慣れろ

この言葉を君に贈ろう。
10153:2010/08/19(木) 13:29:44 ID:WE7aCmXu0
-(VOID)このスレ;
こんな感じですか?
102名称未設定:2010/08/19(木) 13:48:38 ID:q0vgaPJa0
料理の味より盛りつけに凝るタイプと見た
ちゃんと食えるものを完成させろw

一旦最後まで作り終えてみないと理解できん事柄は多いぞ
作っちゃあ反省しての繰り返しでレベルが上がってくもんだ
103名称未設定:2010/08/19(木) 14:15:57 ID:Q9j5iXZI0
>>97
理屈を勉強したいならデザインパターンを勉強するといいよ。
結果は同じでも実装の方法はたくさんある。
方法によってメリットやデメリットはある。
それが判断できるようにたくさん引き出しを作って下さい。
現状は人から教えてもらうレベルではないね。
まずは手を動かすことです。
104名称未設定:2010/08/19(木) 15:36:06 ID:IvbN3UTx0
ん?別に聞くのは良くないか?
答えるかは自由なんだから。
105名称未設定:2010/08/19(木) 15:40:19 ID:tS/YhD8gP
どこに何を書くかはMVCの話になるし、これは初心者では到底理解できないし、
上級者でも意見が分かれてぐちゃぐちゃなので、最初はここだと思った所に書く。

おかしければ、だんだんと変更し難くなって、やっばここかな?みたいに最適化さ、れていくよ。
106名称未設定:2010/08/19(木) 16:33:20 ID:v160k8zX0
MVCの話すればいいんじゃね?
MVCを意識しないとiPhoneアプリではいろいろきついだろ。

本筋のコードはモデル。ビューはビュー、コントローラはビューと強く結び
ついてはいるがモデルとなかだちをする。
ここまでに異論を挟む人は初級者でも上級者でもいないでしょう。

で、個々の実装をどうするかは意見が分かれてて、delegateに書く場合はし
ばしば、コントローラはサブクラスを造らず標準のものをそのまま利用、モ
デルもこのdelegateに担当させる。
コントローラをサブクラス化して作る場合はコントローラがモデルを兼ねて
いる場合が多くて、新しくファイルを作る場合はdelegateを担当している
クラスでは規模が大きすぎるようなモデルを実装するような場合。
107名称未設定:2010/08/19(木) 16:55:36 ID:IvbN3UTx0
cocoaの基本に異論挟むわけねぇだろう・・・常識的に考えて・・・
10853:2010/08/19(木) 17:37:46 ID:WE7aCmXu0
ありがとうございます!むちゃ勉強になります。
デザインパターンは初耳ですが、MVCは何となくわかる・・VはわかるけどMとCの違いって・・?
って程度ですけどね。

それはさておき、要するに初心者が小さなアプリを試しに作る程度なら、delegateに書くかViewControllerに書くか
どちらか適当に決めればよい、両方に書く必要はない、新しいファイルなんて十年早いって感じすかね。
自分はViewControllerの方が好きだなあ。名前がわかりやすいのがいい。
109名称未設定:2010/08/19(木) 18:24:22 ID:zJnxBXXPP
そもそも「新しいファイル」って言葉がプログラマ的でないな
110名称未設定:2010/08/21(土) 14:19:09 ID:UVEsHusU0
クラスの一覧表ってどっかにないですか?
111名称未設定:2010/08/21(土) 15:41:54 ID:h4YOrSdm0
Cmd + Sft + C 押してみ
112名称未設定:2010/08/21(土) 17:34:06 ID:UVEsHusU0
>>111
おおおおお!すごい!
感動をありがとう!
これ有名?
113名称未設定:2010/08/21(土) 19:06:07 ID:jdf/B2IC0
メニューバーにあるやん
114名称未設定:2010/08/21(土) 20:58:18 ID:UVEsHusU0
ふんがー!
115名称未設定:2010/08/22(日) 16:52:35 ID:sG8efW0g0
ヒレガス本むずかしくね?
Cの基本以外、他の言語やフレームワークは未修得なんだけど、俺だけかな
116名称未設定:2010/08/22(日) 17:51:57 ID:HJNtKvunP
UIフレームワーク未習得なら無随かもね。まあ、Cocoaの作りは王道なんで(デザパタ本
で先祖のNeXTがよく引用されている)、覚えて孫は無いと思う。
117名称未設定:2010/08/22(日) 17:56:38 ID:MLdZnlDt0
……なんでこのスレでUIフレームワークなんて出てくる
118名称未設定:2010/08/22(日) 17:58:58 ID:HJNtKvunP
UIフレームワーク=アプリケーションフレームワーク一般。別にUIkitを差している
訳ではない。
119名称未設定:2010/08/23(月) 15:27:44 ID:nx9CTAYh0
>>115
というかヒレガス本がむずいと感じるということは身につけるべき考え方がまだ身についてないということ。
つまり買ってよかったということだよ。
それまじめにやれば今より遙か上のレベルからコードを設計して書けることになるよ。頑張れ
120名称未設定:2010/08/23(月) 18:55:42 ID:xM5zhEtm0
NSBrowserのタイトルってなんでセットしてもNSBrowserがスクロールしたり、親ウィンドウがリサイズしないと表示されないのだろう?
ADCのサンプルで配布されてるSimpleCocoaBrowserも同じ挙動だしそう言うもんなのだろうか?

121名称未設定:2010/08/23(月) 21:28:43 ID:QR5GDF1T0
「iPad電子書籍アプリ開発ガイドブック」が届いた
読んだ。
なんだこの中途半端さは…orz…
122名称未設定:2010/08/26(木) 12:56:41 ID:MIU8UpFi0
あいまいな質問で申し訳ないんですが、C言語は文法はわかる けどGUIの開発経験がないとかだと
どういう本を勧めますか?

萩原本でobjCの文法は6,7割わかりました(基本だけで応用能力ないと思います)
次にヒレガス本しようとしたけど、チャレンジでことごとく失敗 英語の解説サイト見つけたけどうまく動いてくれない><
>>119さんの言うようにヒレガス本を読み進めるのが第一なんでしょうか?
123名称未設定:2010/08/26(木) 13:04:18 ID:sdj0iK7iP
Macピープルに連載されてるような、ボタンを押したらメッセージが出る、
みたいなサンプル解説でいいんじゃない。

正直、作りたいアプリの画面や機能によって必要なGUIやクラスを覚えていくことになるし。
漠然とあれもこれもじゃ、どんな参考書でも納得いかないと思うよ。
124名称未設定:2010/08/26(木) 13:30:25 ID:ekWA5gsQ0
だから「たのココ」を(ry
125122:2010/08/26(木) 14:26:42 ID:MIU8UpFi0
たのココはやりました けど実際hello worldとRSS readerくらいでサンプル少ない;;
>>123さんのいううとおり作りたいのを先に決めて必要なの探すってのがいいんでしょうね。。。
126名称未設定:2010/08/26(木) 15:26:01 ID:ekWA5gsQ0
ならHMDTを(ry

たのココを終えてヒレガスが分からないというのも謎だが。
127名称未設定:2010/08/26(木) 15:33:40 ID:uElyFsm40
http://developer.apple.com/jp/documentation/japanese.html

あとは、Appleのサンプルコード
128名称未設定:2010/08/26(木) 15:58:24 ID:QaXiZl2f0
○○が作りたいっ!って動機があると独学もはかどると思うよ
まずは何か一つゴールを決めてみては?
129122:2010/08/26(木) 17:20:24 ID:MIU8UpFi0
hmdtは実は昨日届いて、今日から7章のサンプル入力してるけどこれはわかりそう

ヒレガスは勧める人がこんなにいるのに理解できないのは俺のせいだろうけど、なんか言ってることが
いちいちピンとこない もちろんサンプルは全部入力してるが、応用力は身に付いてない気がする
130名称未設定:2010/08/28(土) 11:03:32 ID:7EIAwS5NP
 ヒレガス本はビュー〜モデル〜コントローラ間の関係を表したオブジェクト図がいいと思う。
Macアプリは全然組まないけれど。
131名称未設定:2010/08/29(日) 07:55:34 ID:KWFMPFAB0
何でもいいから作れよ。
まずはハローワールド。
続いてBMIを表示するプログラム。
自分とこのローカルの新聞社のRSSを表示するプログラム。
円を入力すると、現在のレートでドルを表示するプログラム。
入力した年月のカレンダーを表示するプログラム。
理解を深めつつ、
その時々で自分が作れるものを作ると楽しいと思うが。
132名称未設定:2010/08/30(月) 14:37:54 ID:Lg2jD6X10
>>131
アドバイスありがとうございます
ちょうど今BMI出すプログラムを自力で作れました。
難易度的にもhmdtがいい感じです ダウンロードしたコードみながら撃たなきゃなりませんが苦にはならないですね
13353:2010/09/01(水) 13:25:30 ID:8xb6qkzi0
おかげさまで初アプリ完成です!
大変だったけど楽しかったわー。
見栄えをよくしたらストアに登録しますね。
134名称未設定:2010/09/03(金) 15:15:01 ID:6nM+Q0AS0
NSTextViewの内容を印刷するアプリを作っています。
一行の文字が多い文章を印刷する際、印刷できない範囲の文字は自動的に改行して
印刷できませんでしょうか?
135名称未設定:2010/09/04(土) 10:42:09 ID:Iy9jnPqx0
>>134
画面と同じでNSTextContainerでwrapさせればいいはずだけど
136名称未設定:2010/09/04(土) 19:14:51 ID:OMwx0Tc70
iPadアプリをつくりたいと思い、Objective-Cの勉強を始めた者です。
十年以上前の学生時代に、アスキースーパーラーニングの実習C言語で勉強したことがありますが、オブジェクト指向の考え方に目からウロコです。今日も一日、詳解Objective-Cを読んでいましたが、面白いですねえ!
オブジェクトとは、簡単に言うと、変数と関数の構造体なんですね!
137名称未設定:2010/09/04(土) 20:10:12 ID:cTR0Eyff0
はい
138名称未設定:2010/09/08(水) 20:04:48 ID:hOn84Yaq0
>>106, >>108
久々に来てみると、ちょっと勘違いしてる人がいるようなので捕捉しておくと。

MVCはアーキテクチャパターンと呼ばれるもので、デザインパターンよりも規模が大きなものです。
Observerパターンなんかが、デザインパターンです。

MVCパターンには、アプリケーションのコードを一枚岩のようにしてしまうと保守が大変なので3つのコンポーネントに分割して管理しましょう、という大きな主旨があります。
ですから、M,V,Cのそれぞれがあまり強く結び付かないようにコードを書いてください。
例えば、Cのソースコード内で、Vのヘッダーを#importすると、その分だけ結びつきが強くなることになります。

MVCのそれぞれの役割は、Cが入力、Mが処理、Vが出力です。
ユーザーからの操作や入力をCが受け付けて、それをMに伝えます。Mが処理した結果を、Vがユーザーに見えるように出力します。
というのが、MVCそれぞれの基本的な設計方針です。

それから、主旨として一枚岩だと保守が大変なので3つに分けるわけですが、そもそもアプリの規模が小さいと一枚岩でもあまり苦労しない訳です。
delegateやCにMのコードを書いてる場合は、アプリの規模が小さいために、MVCパターンを適用していないケースです。
実際のところ、規模が小さいなら、MVCパターンを意識する必要ありません。
139名称未設定:2010/09/08(水) 23:07:54 ID:Sgqcnsaj0
>>138
てんてー!
どこまでが規模の小さなアプリでどこからが規模の大きなアプリでつか??
140名称未設定:2010/09/09(木) 01:02:33 ID:2l0GNPsv0
>>138
んと、ここで論じられているMVCはCocoaのMVCで本来のMVCとはちょっと
違うモノなんです。
Apple自身がこれをデザインパターンとして取り入れてMVCと呼んでいるので、
取り敢えず用語としてはこの「Cocoa流MVC」がこのスレ的MVCです。
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW1
141名称未設定:2010/09/09(木) 06:33:33 ID:6+cOC8s/0
というか、デザインパターンのほとんどが、NEXTのプログラミングモデルをパクってたりするんだけどね^^
142名称未設定:2010/09/09(木) 07:37:59 ID:Sxaq8ceG0
NeXTって書けよ
つかデザインパターンとかリファクタリングの研究は
Smalltalkの連中じゃなかったっけ?
143名称未設定:2010/09/09(木) 08:42:27 ID:VA1IJyVn0
起源論とかどうでも良いよ
144138:2010/09/09(木) 19:14:19 ID:U55nCXdS0
>>139
小規模なものは、ModelとControllerが1つのソースに混在しているとしましょう。
アプリに機能を追加して規模が大きくなっていくと、そのソースがどんどん肥大化していきます。
そしてあるとき、ソースが複雑なスパゲティー状態になったので、ソースを綺麗に整理しようという流れになります。
ソースを整理した結果、ModelとControllerが別のソースに分離し、MVCの形が出来上がる。と言った具合です。
その辺が、小規模の境界線になります。

>>140
> ここで論じられているMVCはCocoaのMVCで本来のMVCとはちょっと違うモノなんです。
そのことは、よく知っています。
でも、違うのはちょっとだけです。MVCをCocoa用にアレンジしたからといって、全く別ものになったわけではありません。
基本的なことは、ほとんど一緒です。

ADCのドキュメントでも
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/chapter_5_section_4.html
「しかし、従来のMVCの概念において適用される一連の基本パターンは、Cocoaで適用されるものとは異なります。
 ・・・中略・・・
 Cocoaの場合における複合パターンとしてのMVCも、従来の場合といくつかの類似点があり、実際、[従来のパターン]に基づいて動作するアプリケーションを構築することもまったく可能です。」
と書いてあり、両者には互換性があります。
145名称未設定:2010/09/10(金) 03:06:07 ID:CYcR99xU0
よくわかっている割にはCocoa流の典型の>>116を名指しで「勘違い」
と言い切るあたりが「俺流MVCサイコー」に見えてしまいます。
146名称未設定:2010/09/10(金) 05:03:48 ID:HVKyQQ4+0
10.6でNSURLのドロップを受け付ける時は、NSFilenamesPboardType,NSURLPboardTypeの
代わりに何をregisterForDraggedTypesで登録すればいいの?
ドラッグ元では[pboard writeObjects:[NSArray arrayWithObject:url]];でペーストボードに書いてる。
147名称未設定:2010/09/10(金) 07:56:12 ID:HuTgFNbD0
Note, though, the important prerequisite
that objects you write to the pasteboard
must adopt the NSPasteboardWriting
protocol. Classes that implement the
protocol include NSString, NSImage,
NSURL, NSColor, NSAttributedString,
and NSPasteboardItem
148名称未設定:2010/09/10(金) 10:24:28 ID:Va8M9CZfi
mvcに関しては、全員が理解していると言いながら、
全員が理解していない不毛な議論になるので注意。
149名称未設定:2010/09/10(金) 15:49:09 ID:/zSsb9tq0
MVCは、デザインパターンの1種と扱われる場合もあるが(MVCパターンと呼称される)、
MVC自体が他の小さなデザインパターン(Observer パターン・Command パターン・
Factory Method パターン・Facade パターンなど)を利用して実装されることが多いところからすると、
デザインパターンというより、さらに粒度の大きい1種のソフトウェアアーキテクチャという方が適当であろう

というWikipediaの記述内容に関して、理解していると思っている人はどのようなご見解をお持ちですか?
150名称未設定:2010/09/10(金) 16:16:47 ID:QEErUgFl0
大体同意なんだけど、Commandパターンがどこで使われてるかが判らん。
151名称未設定:2010/09/10(金) 17:20:45 ID:CYcR99xU0
同じMVCという言葉で違うことが話されていることは理解しているが、Cocoaの
ドキュメントで触れられているもの以外はスレ違い
152名称未設定:2010/09/10(金) 17:53:44 ID:UEKE3tdd0
ここらでさっぱり!
153名称未設定:2010/09/10(金) 18:55:20 ID:GfKxsoIe0
>>149
その通りかと思いますが。
ADCのドキュメントでは、「ソフトウェアアーキテクチャ」という言葉は出て来ないが、「複合デザインパターンとしてのMVC」という、ちょっと微妙な表現が使われています。

commandパターンは、ControllerとModelの間かな?
逆に、Factory Methodパターンが分からん。このパターン色んな所で使われるからね。
しいていえば、Viewだろうか?
154146:2010/09/11(土) 04:45:21 ID:/Kgt6lr60
これでいいのかな?
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
NSArray *types = [NSURL readableTypesForPasteboard:pboard];
[view registerForDraggedTypes:types];
155名称未設定:2010/09/11(土) 11:37:22 ID:hr8+IkX80
>>106
> 個々の実装をどうするかは意見が分かれてて
MVCにそってコードを実装すればいい、という話なのに、個々の実装のしかたが各個人でバラバラ、
というのは話としておかしい。
これでは、結局のところMVCの具体的な実装方法は誰も知らない、と言っているようなものだ。

でもこれが、>>145のいうとおり「Cocoa流の典型」なのでしょうね〜



、、、っていうか、ほんとに、知らないままでいいのか、俺たち
156名称未設定:2010/09/11(土) 12:21:21 ID:Cg9cBONa0
動きゃいいよ、動きゃ。
157名称未設定:2010/09/11(土) 12:28:57 ID:wxb92gdyP
>>156
底辺プログラマは黙っててくださいね^^;
158名称未設定:2010/09/11(土) 12:51:35 ID:AXXXPvIp0
>>155
「MVCって言葉がさすもの」が意見が分かれてるんだからしかたないだろう。

これが真のMVCだ! ってのを誰かが定義してみんながそれに賛同しなければ
そういう状況にはならなくてそれは今や手遅れ。
159名称未設定:2010/09/11(土) 13:13:38 ID:JfTwp+ws0
コントローラにしてもCocoaじゃモデルコントローラ(NSObjectController)とビューコントローラ(NSViewController)に分かれちゃってるし
NSDocumentもNSWindowControllerもあるな
CoreDataもあるじゃん
どう収集つけるんだよ
160名称未設定:2010/09/11(土) 14:24:16 ID:C12cXlUu0
161名称未設定:2010/09/11(土) 18:24:38 ID:hr8+IkX80
>>158
> 意見が分かれてるんだからしかたないだろう。
意見が分かれているのではなく、理解してるヤツがいないのだろう。
そして、理解してないヤツらどうしが話合っているのを、端から見ると、意見が分かれているように見えてるだけだ

> みんながそれに賛同しなければ
必要なのは賛同ではないと思うよ。
162名称未設定:2010/09/11(土) 18:30:07 ID:n/an4EXg0
そろそろスレチだとは思わないのかな?
163名称未設定:2010/09/11(土) 18:30:42 ID:wxb92gdyP
Cocoaプログラマーのレベルの低さが伺えるスレだね
164名称未設定:2010/09/11(土) 20:47:00 ID:Z4HQCw590
>>154
以前いろいろ試してみましたが、NSURLPboardTypeかNSFilenamesPboardTypeをregisteするしか
ないように思います。

NSPasteboard.hの不可解なコメントを読んでも、sourceは良くてもdestinationはregisterForDraggedTypes:
が必要な以上NSURLPboardType, NSFilenamesPboardTypeに相当するUTIが必要に思えます。

その他にもNSFilesPromisePboardTypeの代わりにkPasteboardTypeFileURLPromiseを使えと書いてありますが、
試してみるとkPasteboardTypeFileURLPromiseでは動作しません。
165名称未設定:2010/09/11(土) 21:07:18 ID:hr8+IkX80
わかった!

ここでMVCの話をすると、どこからともなくスレチだと言うヤツが現れる。
で、MVCのスレに行くと、CocoaのMVCは通常と違うからスレチだと言われる。
で、うやむやになって、Cocoaプログラマーとしてのレベルの低さを維持しているんだ!
166名称未設定:2010/09/11(土) 21:20:14 ID:g1etG7I20
だからなんなんだよ。
167名称未設定:2010/09/11(土) 23:29:42 ID:b53GTAJi0
じゃあ「CocoaのMVCスレ」でも立てたらいいだろ
168名称未設定:2010/09/12(日) 08:36:25 ID:KK3O0bdLi
>154
拙作ですがfinderからのdropを受け付ける
コードを晒してみます。
>ttp://www003.upp.so-net.ne.jp/mycometg3/QTP7Controller.dmg
透明なビューを乗っけて、ドロップに
反応するようにしてあります。
169名称未設定:2010/09/12(日) 12:00:23 ID:wOZixqvx0
ここで、みなさんが「本来のMVC」と呼んでいるものは、特定のものに依存しない抽象的な概念です。
そして、「Cocoa流MVC」と呼んでいるものは、MVCの具体的な実装です。
例えるなら、NSCellとNSTextFieldCellのような、抽象クラスと具象クラスのようなものです。

ある人が、NSCellを見て、「セルは、マウス入力を処理します」というと、
またある人が、NSTextFieldCellを見て、「セルは、キー入力を処理します」と言って
意見が分かれているような感じです。

具象クラスは、抽象クラスにいろいろ肉付けされていて、内容が複雑になっています。
反面、抽象クラスは内容が大雑把で細かい話が出て来ないので、分かりやすいです。

つまり、最初に「本来のMVC」の内容を理解して、それから「Cocoa流MVC」の内容を理解すれば良いということです。

みなさんも、あるクラスのリファレンスを読んで、いまいち内容を理解できないと感じたとき、
そのスーパークラスのリファレンスを読んだりすることありますよね?
170名称未設定:2010/09/12(日) 12:54:25 ID:Q3VX2f5zP
で?
171名称未設定:2010/09/12(日) 20:24:51 ID:3YhQl4vc0
>>155
159です。
解決しました。
@"public.url" (kUTTypeURL) あるいは@"public.file-url" (kUTTypeFileURL)
をregisterすればdropをacceptします。

ずいぶん遠回りをしました。
172146:2010/09/13(月) 03:06:48 ID:nMJyVZQ/0
>>171
NS〜じゃないのがあるんですね。
>>154のコードでその二つを登録することになる様なので、あれでいいのかな。
コードも参考にさせてもらいます。
関数の頭はNSLog(@"%s", __func__);も便利ですよ。
173名称未設定:2010/09/13(月) 23:37:03 ID:RKdNbMOU0
1. Core Audio のコールバック関数が何度も呼ばれるクラスはやはりモデルでしょうか。

2. バッファが必要な量たまったときに何かコントローラにお知らせしたい場合、
どうするのが正しいでしょうか? そのコントローラをデリゲートとして持っていてたたくとか
OS Xならキー値監視を使うとか、
バッファがたまったかどうかのフラグを自分で持っておき
コントローラでタイマを回してフラグを監視するのはスマートではないですよね
174名称未設定:2010/09/14(火) 21:48:56 ID:lVq6b79B0
>>173
CoreAudio周りは全てモデルですよ。

> 2. バッファが必要な量たまったとき
バッファってどのバッファですか?
CoreAudioで管理してるバッファのこと?
175名称未設定:2010/09/15(水) 15:36:48 ID:3LwKbuMa0
ありがとうございます。モデルとして、ちゃんとコントロール的なことはさせないようにコーディングします。

バッファは Core Audio のコールバック関数で読んだり書いたりしてためた波形バッファのことでした。
説明不足ですみません。
176名称未設定:2010/09/15(水) 19:31:46 ID:PgyNEICs0
>>175
そういうバッファなら、バッファを管理してるクラスに-isBufferFull見たいなプロパティを持たせて、KVOで通知ですね。
177名称未設定:2010/09/16(木) 12:15:49 ID:H+/pya8P0
>>176
なるほどキー値監視でスマートにやってみます。
178名称未設定:2010/09/16(木) 12:33:10 ID:aovnuP1C0
InterfaceBuilderを使わずにCocoaでMacアプリって作れるんでしょうか?
179名称未設定:2010/09/16(木) 13:12:07 ID:DcynHiTk0
作れるよ
180名称未設定:2010/09/16(木) 13:38:26 ID:5p2qyQVG0
IBって、いったい何をしてくれてるのかわかりにくくて困ります。
IBのこれはcodeでいうとこれに相当する、とか詳しく解説してくれてる本とかサイトとかないでしょうか?
181名称未設定:2010/09/16(木) 15:39:40 ID:DcynHiTk0
IBはザックリ言うとI/Fのデザインを視覚的にする事が出来る「アプリ」
詳しく知りたかったら、AppleのサイトへGo!
182名称未設定:2010/09/16(木) 16:02:40 ID:36GETSv+i
IBを使わずに画面アプリを作ればわかるよ。
シンプルに画面にボタンが一つ付いていて、ボタンを押すと「こんにちは」
とテキストボックスに出る。
NSWindowにNSButton、NSTextFieldを全てコードで書き、allocしたりアクションを書いたり
メッセージの送信処理を書く。
183名称未設定:2010/09/16(木) 16:16:57 ID:5p2qyQVG0
IBを使わずにHello,World!書くの結構大変ですよねー。
ていうか書ける自信ないですw
allocもinitも、autoreleaseもIBがやってくれてるんですよね?コードに書かなくてすんでるって
ことは。
IBで何かすると自動的にcodeが発生するといいのになー。
Xcodeの次のバージョンはIBと一体になるって聞いたけど、ひょっとしてそういうことだったら嬉しいな。
184名称未設定:2010/09/16(木) 16:22:56 ID:5p2qyQVG0
お!Appleのサイトには詳しく解説してありますね。
しかし英語・・。
日本語でも厳しいのにw
185名称未設定:2010/09/16(木) 20:08:06 ID:rRCGFWiI0
>>183
> IBで何かすると自動的にcodeが発生するといいのになー。
> Xcodeの次のバージョンはIBと一体になるって聞いたけど、ひょっとしてそういうことだったら嬉しいな。
ちなみに、Windowsの開発環境であるVisual Studioがまさにそういう形になっていますけどね。
ただ、開発ツールが生成したコードを編集されると不具合が起こるため、最近は使われなくなったようですが。

>>184
> お!Appleのサイトには詳しく解説してありますね。
あの画面を見ると、なんかとっても高解像度なディスプレイを要求されているように感じてしまいますね。
その辺がちょっと微妙。
186名称未設定:2010/09/16(木) 20:49:49 ID:oRcB05ua0
初歩的なことだと思うのですがお願いします。iPhone用のアプリ開発をしています。
Foundationフレームワーク配下のあるクラスのカスタムクラスを作りたいと考えました。
具体的にはNSMutableArrayをカスタマイズしたいのです。仮にMyMutableArrayとしますね。
ヘッダファイルで、
#import <Foundation/Foundation.h>
@interface MyMutableArray : NSMutableArray {
  //メンバ変数
}
-(void)someFunction;
@end

などと定義して、実装側で

-(id)initWithCapacity:(NSUInteger)numItems{
if (self=[super init]){
//変数の初期化
}
  return self;
}
と初期化メソッドを記述したのですが、どうも初期化がうまくっていないようで、すぐに落ちてしまいます。
-(id)initWithCapacity:(NSUInteger)numItems{
if (self=[super initWithCapacity:numItems]){
   //変数の初期化
  }
return self;
}

と内部でもinitWithCapacityを呼ぶのかなと思ったのですが、これでもダメです。
importすべきフレームワークが間違っているのでしょうか。それとも何か根本的な理解に間違いがあるのでしょうか。

187名称未設定:2010/09/16(木) 21:21:52 ID:rRCGFWiI0
>>186
Objcなんかの本に書いてあると思いますが、NSMutableArrayはクラスクラスタなので、通常の方法でサブクラスは作れません。

self = [super init]

と、やったときに、MyMutableArrayとは別のクラスのインスタンスが返されます。
そのインスタンスに対し、「メンバ変数と思っている」変数にアクセスして、落ちているのではないかと思われます。
188名称未設定:2010/09/16(木) 21:22:46 ID:dpQWoWRo0
なんか難しそうな予感。
http://journal.mycom.co.jp/column/objc/064/index.html

関数の追加だけならカテゴリでカスタマイズしてみては?
189名称未設定:2010/09/16(木) 22:21:48 ID:p6p92PaW0
>>186
class clusterであるNSMutableArrayのsubclassを作るためには、
Cocoa Fundamentals GuideやNSMutableArray class referenceで紹介されている様にします。
primitive methodをoverrideしたりとか結構面倒です。

categoryで対処できるようであれば、categoryを使えば良いでしょう。
そうでない場合は、私はbindingを使っているのでKey-Value Coding Guideで紹介されている
Indexed Accessor Patternを実装しています。
iPhoneでも使えるかどうかはわかりません。

何れにせよ、何故NSMutableArrayをカスタマイズする必要があるのか再検討したほうがよいと思います。


190名称未設定:2010/09/16(木) 23:11:38 ID:ku9FQiEd0
あらかたスレッドセーフなNSMutableArrayを作りたいとかそんなとこだろ。
そういう書き込みをTwitterで見たし。
191名称未設定:2010/09/16(木) 23:56:10 ID:zE9Srt6p0
>>183
なんてNeXTStep
iPhoneアプリは最初IBがなかった。あれでIBの意味を理解した人も多いのでは?
192名称未設定:2010/09/17(金) 01:32:32 ID:O7czBMWG0
Interface Builder でできることは全部コードで出来るでしょ。
決まりきったコーディングなんだから直感的にさくっとつないだりおいたりできた方が便利だから
NeXTはIBとnibファイルという先進的な仕組みを作ったんだ。
193178:2010/09/17(金) 03:06:43 ID:PjRt5GUp0
>>179
らじゃ。

>>192
先進的な仕組みなのか?
マルチリンガルなアプリ作るのに、同じ形のメニューを複数作らんきゃならんとかってメンテ性を落とすだけだと思うんだが。
それとも、俺が知らんだけでメニューアイテムに言語別文字列設定できるの?

Win(もしかしたらLinも)とクロスなアプリを作ろうと思っているんだが、CocoaっていうかXcode/IBの思想が分からんくて困っている。
うまいこと比較して説明しているところあったら教えてくれるとうれしい。
194名称未設定:2010/09/17(金) 03:46:23 ID:TXjzXPrO0
ローカライズは言語ごとファイルを用意しておけば勝手にやってくれる。
もちろんそうなるようにコード組まなければならないが。
まずは.appや.bundleファイルを右クリックして中身眺めたら良いと思う。
195名称未設定:2010/09/17(金) 04:39:09 ID:O7czBMWG0
>>193
どう考えたら後進的に見えるの?
メンテナンス性を落としているのは明らかに調べようとしない人材のせいだと思うのだが
196名称未設定:2010/09/17(金) 05:41:35 ID:CNy8PQnR0
>>193
Windowsの.net3.5だっけ?XAMLとか言うXMLでUI定義できるようになったよね
IBが作るxibもそんなようなもんだと思っとけばいいよ、当面はね

あと、クロスなアプリ開発ってのは十中八九うまく行かない
同じ要求仕様でも設計段階から分けておかないと大変だし、アプリの使い勝手も悪い

使い勝手気にしないならJavaなり何なりのクロスプラットフォーム言語でやっつけちゃうのが一番楽でしょうね
197186:2010/09/17(金) 06:40:26 ID:ETkDMQ1z0
皆さんどうもありがとうございます。
クラスクラスタの注意点についてはざっと読んでいて、
これは気をつけないといけないなと思っていたのですが、
まさか自分がはまっている問題の原因がそれだとは思いませんでした。

>>188
確かに難しそうですね。調べてできないことはなさそうですが。。。
また、メンバ変数が重要なのでカテゴリでは対処できないように思います。

Javaをやっていた身からすると、どうも直感的にはサブクラスを作るのが自然なように思うのですが、
早くCocoaの流儀に慣れなくてはいけませんね。
方針を変えて、別なアプローチをしようと思います。
198186:2010/09/17(金) 07:17:20 ID:ETkDMQ1z0
すみません、一応新たな方針を書いておきますと、

ヘッダファイル
#import <Foundation/Foundation.h>
@interface MyMutableArrayContainer : NSObject {
  //本来継承したかったNSMutableArrayをメンバ変数にして内部で保持する
  NSMutableArray *myMutableArray;
  //その他のメンバ変数
}
-(void)someFunctionForMyArray;
@end

実装ファイルの初期化メソッド
-(id)init{
if (self=[super init]){
  myMutableArray=[[NSMutableArray allo]initWithCapacity:0];
  //その他の変数の初期化
}
  return self;
}

などとしようと思います。まだ書いていませんが、アクセスするメソッドの書き方をいじれば
これでうまくいくだろうと思います。
Cocoa/Objctive-C的には、それで済むんなら最初からそうしろよという感じでしょうか。。。

199名称未設定:2010/09/17(金) 08:07:48 ID:G7ADEsGiP
みんな設計段階でどんなツール使ってる?
AppleってUML的なのとか使わないのかしら
200178:2010/09/17(金) 08:07:56 ID:PjRt5GUp0
>>194
その『言語ごとファイルを用意』ってのをもうちょっと詳しく教えてはくれんか?
xibからどうにかして文字列を外に追い出せば良いんだろうが、その「どうにかして」がIBのメニューを探してもググっても分からんちんなのよ。


>>196
xibがXAMLみたいなもんだ、ってのは分かる。
問題は互換性がカケラも無いことだ。
201名称未設定:2010/09/17(金) 08:43:20 ID:tQDepOsd0
問題...なのか?^^
202名称未設定:2010/09/17(金) 08:59:37 ID:vTjdJX2k0
嫌いだ、使えねーって言ってるんだから放っておけばいいのに
ひとつのアプリケーションで全てが完結してないと気に食わないんだうからツールの紹介する気にもならないし
203名称未設定:2010/09/17(金) 10:26:53 ID:9Aps75gj0
plist なんて互換性の塊だろーが。
204名称未設定:2010/09/17(金) 10:36:33 ID:+L8eOLGK0
己の無知から出る間違った発言に気付かない。
ひろゆき曰く「バカな人はバカだから自分がバカだと言うことに
気がつかないのです」
205名称未設定:2010/09/17(金) 10:38:48 ID:RkG0/+1k0
>>198
primitive methods を実装していれば、後はやってくれるから次が簡単。
インスタンス変数の array にprimitive methodsすべてを投げる。

@interface MyMutableArray : NSMutableArray {
 NSMutableArray *array;
}
- (void) doSomething;
@end

@implementation MyMutableArray
/* Primitive methods */
- (NSUInteger) count { return [array count]; }
- (id) objectAtIndex: { return [array objectAt…]; }
- (id) lastObject { return [array lastObject]; }
addObject: {…}
insertObject: atIndex: {…}
removeLastObject {…}
removeObjectAtIndex: {…}
replaceObjectAtIndex:withObject: {…}

- (void) doSomething {…
@end
206名称未設定:2010/09/17(金) 11:39:54 ID:vTjdJX2k0
>>203
だからxibがXAMLと互換を取ってないことが気に食わないんでしょ
207名称未設定:2010/09/17(金) 12:57:15 ID:CNy8PQnR0
>>200
>問題は互換性がカケラも無いことだ。

う〜ん、そうなるとObjective-C、Cocoaも辞めといた方がいいよ
ベースはC言語だけどC++とは真逆で弱い型づけの動的言語だし
Cocoaフレームワークの設計思想はMFC、.net、STL、Boostのどれとも互換性がカケラもない

御社にとっては問題になること請け合い。キリッって付けちゃうくらい間違いなく大問題になる。キリッ

Java、CINCOM Smalltalk…あと何があったっけ、Linux含めて完全クロスプラットフォームなやつ
そういうの探した方がいいと思う
208名称未設定:2010/09/17(金) 19:09:38 ID:UWlvm2m60
>>198
Decoratorパターンを使うのが無難かと思いますが、いちおう既存のオブジェクトにメンバ変数を追加する手段があります。
カテゴリーによるメソッドの追加と組み合わせれば、実質的にサブクラスのように機能拡張できます。
http://www.stripe-net.jp/cocoa/program/blog20081114.html

リンク先の記事では、クラスオブジェクト内にメンバ変数を追加していますが、今回はオブジェクトの生成段階で(init...メソッド内で)細工ができるので、
インスタンス自身を拡張する手段が取れるかもしれません。
209名称未設定:2010/09/17(金) 19:20:38 ID:UWlvm2m60
>>200
> その『言語ごとファイルを用意』ってのをもうちょっと詳しく教えてはくれんか?
単純に、言語ごとにnibファイル(またはxibファイル)を用意するっていう話だと思うけど?
動的に出力するメッセージなら、言語ごとに.stringsファイルを作って、NSLocalizedString()関数で読めばいい。
210名称未設定:2010/09/17(金) 19:47:36 ID:0LTwuvUd0
Localizable.stringsで検索したらそれなりの情報を得られるよ。
211名称未設定:2010/09/17(金) 20:31:22 ID:ynRzpPcO0
ibtoolとgenstingsとGNU sedとgawkがあればほとんど自動化出来るけど>178ちゃんには無理かな?
212名称未設定:2010/09/18(土) 11:51:05 ID:S+CGDNh50
nibに変更あった時に全言語のnibを修正するのは面倒なのでローカライズされたnibを使わず、全部NSLocalizedString()でやってるんだけど問題が起きる可能性ある?アウトレットが増えて面倒なだけ?
213名称未設定:2010/09/18(土) 13:02:18 ID:PZGI0S/TP
>>207
>Cocoaフレームワークの設計思想はMFC、.net、STL、Boostのどれとも互換性がカケラもない
どっちかというとSmalltalkに近いな。
214名称未設定:2010/09/18(土) 13:11:49 ID:Pc2uQKUE0
IB使わずに全部コードで書けば良いじゃん。
xcodeすら使わずコマンドラインでコンパイルしてCocoaのアプリは作れるし。
215名称未設定:2010/09/18(土) 13:18:10 ID:+xTCw0hI0
>>212
ボタンとかテキストフィールドのキャプションがはみ出て読めないとか、妙な隙間があるとか
216186:2010/09/18(土) 16:21:13 ID:5E0Nt1cz0
皆様またもどうもありがとうございます。

>>205
!! そのようにしたところ動作しました。
一応他の方のためにも書いておきますと、初期化メソッドで
-(id)init{

if (self=[super init]){

array=[[NSMutableArray alloc]initWithCapacitiy:0];

}

}

とやっておく必要があります(当然か)。

はっきり言ってたいへん不思議です(?_?)
MyMutableArrayとインスタンス変数のarrayと両方で
同じデータを保持している感じでしょうか。
217名称未設定:2010/09/18(土) 16:24:43 ID:+xTCw0hI0
>>216
詳細は秘密だけど、データ保存領域はインスタンス変数のarrayだけだ
218186:2010/09/18(土) 17:07:28 ID:5E0Nt1cz0
>>217
そうなんですかぁ…。
適当な文字列NSStringを格納して、このクラスの内部で
NSLog(@"array objAtZero=%@, self objAtZero=%@",[array objectAtIndex:0],[self objectAtIndex:0]);
とやると、同じものが返ってきます。面白いですねぇ。
未だに不思議なんですが、またこの次に考えるとして、前に進もうと思いますw
ありがとうございました!
219名称未設定:2010/09/18(土) 17:29:50 ID:+xTCw0hI0
え? いいの?w

単にプリミティブメソッド以外のメソッドはプリミティブメソッドを使ってデータを操作してるだけだよ

で、ぶっちゃけて言うとNSArray自身はデータ保存領域を持ってなくて
そのサブクラスたちがデータ保存領域を持ってる

どゆうことかと言うと
-[NSArray init..].メソッドが呼ばれると最適なサブクラスを探し出してそのインスタンスを返してくれる。
使ってる側は意識する必要はほとんどないけどね。

@implementation NSMutableArray (MyMutableArrayCreation)
- (id)arrayWithHoge:(id)hoge
{
return [[[[self class] alloc] initWithHoge:hoge] autorelease];
}
- (id)initWithHoge:(id)hoge
{
[self init];
[self release];
return [[MyMutableArray alloc] init];
}
@end
としいておいてやると、それっぽくなるよ
220名称未設定:2010/09/18(土) 20:01:06 ID:hzImyvKW0
>>218
[self objectAtIndex:0]
と書くと、
[array objectAtIndex:0]
が実行されるように、自分でメソッド書いているよね?
- (id) objectAtIndex: { return [array objectAt…]; }
いったい、どのへんが不思議なの?
221名称未設定:2010/09/19(日) 00:27:27 ID:N3w3HrN40
そうですね。不思議じゃないですね(^^)
222名称未設定:2010/09/19(日) 10:36:34 ID:Mm5Yi4qnP
NSURLConnectionではなくCFNetworkを採用するメリットってある?
223名称未設定:2010/09/19(日) 17:11:57 ID:vHb82c8x0
>>219
そのコードは危険。initWithHoge: を NSCFArray インスタンスが受け取ってしまう。
self ではなくファクトリークラスを介したものでないと。
224名称未設定:2010/09/27(月) 17:14:03 ID:z5Q+fXkG0
「たのしいCocoaプログラミング Leopard対応版」
これから読む人は正誤表があるからかならずチェックして!

ファイルの保存に気づかなくて、しばらく詰まってたよ・・・トホホ
225名称未設定:2010/09/27(月) 20:45:05 ID:Nq4X3Ckb0
Objective-C逆引きハンドブック買ってきた。
買ってから気づいたが、なぜか本屋においてあったのが初版だった。
既に4版まで出ているのになぜ初版が残っていたんだorz

こういうのが欲しかったから、内容はありがたいんだけど、これの
AppKit版が欲しいな。で気になったんだけど、

・サンプルコードでいくつか間違い見つけたけれど、
 出版社のサイトで正誤表見ると、全部網羅してない。

10.4向けって書いてるコードで、高速列挙使ってたりしてるし。
NSCoding Protocolの実装のところで、「NSCoding」って記述自体が
どこにも書いてない・・・初版だけ?
226名称未設定:2010/09/27(月) 20:51:18 ID:glFxB5RY0
iPhone以降そんな本ばっか。最初のページでMac OS XがLinuxとか書いてる本もあるし。
227名称未設定:2010/09/28(火) 09:01:28 ID:W2Lzfvnq0
ひどいね。NeXTからの人はそんな一連の嘘は書かないよな
228名称未設定:2010/09/28(火) 21:04:52 ID:LkVxHYXHP
NeXT以降でもiPhone以前からの人ならそんな間違いしねえよ
229名称未設定:2010/09/28(火) 21:41:54 ID:6bWqUg/C0
>>226
さらしてみましょうか
230名称未設定:2010/10/04(月) 01:58:16 ID:Jc3cbhUy0
さらせ
231名称未設定:2010/10/07(木) 15:57:04 ID:w1TSVfnE0
Command+F1で,同アプリケーション内のウィンドウを順番に切り替えることができますが,このとき,ウィンドウのタイトルを見て,特定タイトルを持つウィンドウをスキップさせたいと考えています。

そのようなことは可能でしょうか?
NSDocumentController, NSWindowController のメソッドのリストを一通り見てみましたが,ウィンドウのスイッチを管理している実体がつかめませんでした。

アイデアがありましたらご教示お願いします。
232名称未設定:2010/10/07(木) 19:24:09 ID:XTtA+w1r0
>>231
ウィンドウの定義をパネルにするとか、キーウィンドウにしない
でいけると思うけど。
233名称未設定:2010/10/07(木) 19:56:20 ID:Mgxb+fPE0
>>231
> Command+F1で,同アプリケーション内のウィンドウを順番に切り替えることができますが

それって、どのアプリケーションのこと?
自分で作ってるアプリなら、自分でどのような実装になっているか知ってるよね??
234名称未設定:2010/10/07(木) 20:02:36 ID:ht1TcHjl0
Cocoa 内部の挙動でしょ。実装とか言われても困ると思うぞ。
235名称未設定:2010/10/07(木) 20:02:56 ID:EAWzbTWm0
>>231
同じイベントをもう一回postEventで投げるとか。

>>233
俺は知らない。
236名称未設定:2010/10/07(木) 20:37:14 ID:Mgxb+fPE0
>>234
たとえば、Finderの「メニュー>ウインドウ>ウインドウを巡回」とかのことだよね?
あの機能って、Cocoaのどのメソッド呼べばいいんだろう?
っていうか、そもそもCocoaに実装されてる機能なのだろうか?
リファレンスをぱっと見たけど、見つけられなかった。
237名称未設定:2010/10/07(木) 20:38:58 ID:1hJ5XxLJ0
システム環境設定:キーボード:キーボードショートカット:
 キーボードと文字入力にある
 「アプリケーションの次のウインドウを操...」
ってやつじゃね?これCocoaと関係ないよね?

っていうか、...で省略されてる所見れないんですけどw
238名称未設定:2010/10/07(木) 20:46:35 ID:ht1TcHjl0
>>236
リファレンスをぱっと見た限りだと、[NSApp windows] で配列を得て、
makeKeyAndOrderFront でフロントに持ってくるんじゃないの?

試してないけど。
239名称未設定:2010/10/07(木) 20:55:07 ID:Mgxb+fPE0
>>238
たぶん、その実装でうまく行くと思う。

でも、そうだとすると、「ウインドウの巡回」機能を自前で実装したことになる。
特定のウインドウをスキップしたいなら、そうなるように自前で実装すればいい。ということに、なるのではないか?
240名称未設定:2010/10/07(木) 22:22:21 ID:LcfjEmMh0
うーん… NSWindow -level をいじると、いじったウィンドウは巡回から除外される。
が、NSNormalWindowLevel 以外ではフローティングウィンドウみたいになって
orderBack: を受け付けないような感じになってるな。
241231:2010/10/08(金) 02:06:35 ID:k4pTu6Wr0
結局,>>238 の方法で自前で巡回用のメソッドを作って,
そのショートカットキーを Command+F1 や Command+Shift+F1 に設定することで,
擬似的に実現することにしました。

このショートカットキーは環境によって異なるので,
本来はそのショートカットキーをシステム環境設定から動的に取得すべきですが……。
242名称未設定:2010/10/08(金) 06:39:59 ID:11yLZVDC0
>>241
うちは「コマンド」+「~」にしてる。
Classicの頃はこのキーだった気がする。
OSXのいつかのバージョンから変わって以来毎回設定し直してる。
あと英語環境は今でもこのショートカットキーなんじゃないかと思ってる。
(未確認)
243名称未設定:2010/10/08(金) 06:42:13 ID:11yLZVDC0
>>242
追記。
USキーボードだとアプリ切り替えの「コマンド + TAB」のすぐ上が
「コマンド + ~」でウィンドウ切り替えになっていて直感的。
日本語キーでもこの感覚に近くするためにF1を使うことにしたのでは、
と思っています。
244名称未設定:2010/10/14(木) 17:15:44 ID:cxpDncgk0
ヒレガス本の第1章に10時間寝ろ!とか書いてあるけど、
みんなも試したのかな?今日は早めに寝てみようかな。
245名称未設定:2010/10/14(木) 18:44:41 ID:6oxyzyQK0
明日が休みなら、余裕で12時間ぐらい寝てるけどね。
で、睡眠時間ってCocoaとなんか関係あるの?
246名称未設定:2010/10/14(木) 18:57:41 ID:d8F2NofI0
寝過ぎるのも良く無いけどな。
247名称未設定:2010/10/14(木) 19:14:46 ID:uaBRaxBv0
カフェイン的な…
248名称未設定:2010/10/14(木) 21:46:56 ID:LE89zqDL0
NSTextViewを持つNSScrollViewがあって、
NSTextViewの表示内容にぴったりの高さにしたいのですがどう算出すればいいのでしょうか?
ぴったりの高さというのはNSScrollerを表示しない最小の高さ、です。
249名称未設定:2010/10/14(木) 23:06:32 ID:284XZTFh0
>>248
[[[textView enclosingScrollView] documentView] frame].size.height
250名称未設定:2010/10/15(金) 13:56:22 ID:kMbjStVG0
趣味でiPhone開発やってます。
すみません、素朴な疑問なんですが…。
どのクラスからも呼べるグローバルなメソッドや変数(定数)の定義ってできないのでしょうか。

たとえば、角度からラジアンを求める

#define PI 3.141592

-(float)getRadian:(float)inDegree{

return PI*inDegree/180;

}

などをいちいち各クラスに記述せずに済めばいいと思うのですが。

このような場合、いろんな良く使うメソッドや定数をまとめたMyMathクラスみたいなのを作っておいて、

float theRadian;
MyMath *theMath=[[MyMath alloc]init];
theRadian=[theMath getRadian:45];

みたいに呼び出すのが定石なのでしょうか?
251名称未設定:2010/10/15(金) 14:35:21 ID:KE5NrazU0
class methodにすればいいのでは?
252名称未設定:2010/10/15(金) 14:37:15 ID:N5TCRcgK0
>>250
汎用的な関数なら、それぞれのクラスに書いておいても問題無いと思う。
逆に特殊なメソッドを多くのクラスから呼ぶのであれば、設計が悪い可能性もある。
クラスを細分化し過ぎてない?
253名称未設定:2010/10/15(金) 14:47:06 ID:042AFarx0
printfみたいなCの関数にしたらいいような気も。
254名称未設定:2010/10/15(金) 14:59:24 ID:m15OoXEjP
NSObjectのカテゴリにする。
255名称未設定:2010/10/15(金) 15:03:02 ID:kMbjStVG0
いろいろホントにありがとうございます。頭に道ができました!
クラスメソッドにする、カテゴリにする等の対処をしようと思います。
分かっているつもりでしたけど、考えが至らなかった…。
256名称未設定:2010/10/15(金) 17:13:59 ID:Dd9I76xD0
>>250
円周率は自分で定義しなくてもM_PIがあるよ
257名称未設定:2010/10/15(金) 20:33:39 ID:mU0HAYsY0
>>250
カテゴリもどうかと思うけど、少なくともクラスに書くのはやめた方が良い。
もし変更がある場合、全部書き直すのか?
そういう汎用的なものは普通に C で書けば良いじゃないか
258名称未設定:2010/10/15(金) 20:38:45 ID:hTW+j1FT0
少なくとも関数だな。
259名称未設定:2010/10/15(金) 21:08:04 ID:Ix3WLQOy0
普通に関数だよねぇ
260名称未設定:2010/10/15(金) 21:14:25 ID:kMbjStVG0
呆れるかもしれませんが、その、
普通にCで書くというのが分からないのです。
261名称未設定:2010/10/15(金) 21:39:23 ID:4nBTPf3yP
関数の宣言(.hに書く)
float getRadian(float inDegree);

関数の実装(.cに書く)
float getRadian(float inDegree)
{
return PI*inDegree/180;
}

関数の呼び出し
float theRadian=getRadian(45);
262名称未設定:2010/10/15(金) 21:46:24 ID:Ix3WLQOy0
// とあるヘッダーファイル
float getRadian(float inDegree);

// とある実装ファイル
float getRadian(float inDegree) {
return M_PI*inDegree/180;
}

// とあるプログラム
#include "とあるヘッダーファイル"

int main(int argc, char** argv) {
printf("radian: %f\n", getRadian(123.0));
return 0;
}
263名称未設定:2010/10/15(金) 22:05:51 ID:kMbjStVG0
Cで書いておけば、そのヘッダーをインクルードするだけで、
関数を呼び出せるということですね。
精進します。m(_ _)m
264名称未設定:2010/10/15(金) 23:38:58 ID:N5TCRcgK0
インスタンス変数にアクセスするのが前提かと思ってんだが、違うのか?
265名称未設定:2010/10/16(土) 02:45:24 ID:7vVIHPUZ0
じゃあ関数を.mの中に書けば?
266名称未設定:2010/10/16(土) 02:46:57 ID:7vVIHPUZ0
すまん
それがしたくないのか
267名称未設定:2010/10/16(土) 03:31:14 ID:ffSVxy+rP
>>264
どのクラスからも呼べるグローバルなメソッドや変数(定数)を定義したいって話なんだが。

>>265
.mに書いても、関数からインスタンス変数にはアクセスできないよ。
268名称未設定:2010/10/16(土) 08:49:40 ID:gaAPo+lZ0
なんでシングルトン使わないの?
269名称未設定:2010/10/16(土) 11:04:17 ID:uhYbSvC50
なんでシングルトンなんか使うの?
270名称未設定:2010/10/16(土) 12:48:14 ID:Gc9kLL/a0
話を理解してないからじゃね?
271名称未設定:2010/10/16(土) 13:09:06 ID:4N5uwExb0
もう質問者は見てなくね?
272名称未設定:2010/10/16(土) 19:11:25 ID:91iVoEhU0
というか、どうでもよくね?
273名称未設定:2010/10/16(土) 21:28:03 ID:7vVIHPUZ0
>>267
>.mに書いても、関数からインスタンス変数にはアクセスできないよ。

インスタンスへのアクセッサメソッド書いておけばできるんでは?
a = [this getA];
みたいな感じで。
274名称未設定:2010/10/16(土) 21:33:22 ID:vQ2X5zNu0
この手のone linerはヘッダにinlineで書けば良いよ。生成コードサイズも大して変わらんし、
多数回呼び出すなら非力なiPhoneでは性能にも響いて来る。
275名称未設定:2010/10/16(土) 21:33:25 ID:uhYbSvC50
はあ?
276名称未設定:2010/10/16(土) 21:39:10 ID:uIt1PeadP
>>250
Javaだったら、全部クラスメソッドで構成されるUtility系のクラスを作るけど、
Objective-Cの場合は関数かな。
277名称未設定:2010/10/16(土) 21:41:01 ID:uhYbSvC50
>>275>>273
278名称未設定:2010/10/16(土) 21:56:01 ID:7vVIHPUZ0
>>275
>はあ?

少なくとも以前はできたよ
確認したの?
279名称未設定:2010/10/16(土) 22:25:54 ID:Gc9kLL/a0
>>278
関数が何か分かってる?
280名称未設定:2010/10/16(土) 22:33:10 ID:AQCVVB/I0
this ってイカレてる。
281名称未設定:2010/10/16(土) 23:14:25 ID:7vVIHPUZ0
>>279
わかってるよ

>>280
使っちゃいけないんだ
282名称未設定:2010/10/16(土) 23:52:49 ID:xLCf5sx20
関数をインスタンスメソッドと勘違い、か?
283名称未設定:2010/10/17(日) 00:27:41 ID:qcN5GYVk0
もともと「クラスメソッドを使え」って話だったよな。
クラスメソッドでインスタンス変数が使えないってことじゃないの?
284273:2010/10/17(日) 00:52:15 ID:0abNp5zF0
だいぶ前に書いたプログラムなんで忘れてたんだが,よく見たら
thisはC++の予約語のあれではなくて単なるCの関数の仮引数だった。
結局thisはselfのコピーだった。
だいたい下のような感じのリストだったんだが,変かな?
もともとの質問の趣旨と離れてしまいすまん

------ SomeClass.h ------
@interface SomeClass : NSObject {
int aInstanceVar;
}
- (int)getAInstanceVar;
- (void)someCaller;
void cFunc(SomeClass *cp);
@end

------ SomeClass.m ------
@implementation SomeClass
- (int)getAInstanceVar //accessor
{
return aInstanceVar;
}
- (void)someCaller //caller of C func.
{
cFunc(self);
}
void cFunc(SomeClass *this) //C func.
{
int a;
a = [this getAInstanceVar] ;
}
@end
285名称未設定:2010/10/17(日) 01:00:47 ID:Gv8NN2Ou0
少なくとも「関数を.mの中に書けば?」というレスは全くの無意味だな。
286273:2010/10/17(日) 01:05:34 ID:0abNp5zF0
>>285
それは俺のレスじゃないよ
287273:2010/10/17(日) 01:06:24 ID:0abNp5zF0
すまん俺だったorz
288名称未設定:2010/10/17(日) 01:08:25 ID:qcN5GYVk0
もう何を言っても説得力ゼロだな
289273:2010/10/17(日) 01:09:24 ID:0abNp5zF0
べつに説得してるつもりはない
290名称未設定:2010/10/17(日) 01:16:45 ID:qcN5GYVk0
筋金入りのバカだな
291273:2010/10/17(日) 01:17:49 ID:0abNp5zF0
バカで結構
292名称未設定:2010/10/17(日) 01:18:55 ID:qcN5GYVk0
>>291
そこは「筋金なんか入ってない」だろ(´・ω・`)
293273:2010/10/17(日) 01:23:13 ID:0abNp5zF0
これから気をつける
294名称未設定:2010/10/17(日) 01:30:29 ID:Gv8NN2Ou0
久々にワロタ
295名称未設定:2010/10/17(日) 01:44:13 ID:rGWL3+Ke0
そこでプロトタイプベースの言語の登場ですよ?
296名称未設定:2010/10/17(日) 02:34:24 ID:crY0rQz10
>>250 の質問内容だったら >>274 が一番いい答えだと思う。
といいつつ、自分だったらCの関数で実装するだろな。
297名称未設定:2010/10/17(日) 03:59:01 ID:tpzx0Xbe0
そもそも @implementation SomeClass の中でなら
void func (SomeClass * self) { int *p = 0; *p = self->someVar; }
みたいに直接アクセス可能なんだが。

そんなことより getter method の頭に get つけんな。
298名称未設定:2010/10/17(日) 04:46:29 ID:Gv8NN2Ou0
> そもそも @implementation SomeClass の中でなら
> void func (SomeClass * self) { int *p = 0; *p = self->someVar; }
> みたいに直接アクセス可能なんだが。

そういう釣りは要らないから。
299名称未設定:2010/10/17(日) 13:11:05 ID:I/Voi6fu0
たくさん無意味なレスをした ID:7vVIHPUZ0 ID:0abNp5zF0 は半年ROMっててね。
300273:2010/10/18(月) 00:53:40 ID:VRk9bGh90
へい そうしやす
301名称未設定:2010/10/21(木) 21:53:11 ID:x+YlRsFc0
Safariのページ内検索の結果表示や,Xcodeの対応する括弧の強調表示のように,
NSTextView内の特定の部分を黄色い角丸長方形でポップアップする標準的な手法は用意されているのでしょうか?
302名称未設定:2010/10/21(木) 21:55:37 ID:qoHRoX3g0
>>301
標準的な手法は用意されていないと思います。
自前で実装しましょう。
303名称未設定:2010/10/21(木) 22:06:06 ID:HHa4nsdE0
thousandのK3プラグインにあるけど自前での実装かな
webkitのはずだし
ttp://www.restspace.jp/gazo/img-box/img20101021220322.png
304名称未設定:2010/10/21(木) 22:33:13 ID:sqOsSG1c0
>>301-303
ちゃんとあります。
-[NSTextView showFindIndicatorForRange:]

10.5 以降。
305名称未設定:2010/10/21(木) 22:33:16 ID:EC4OqhKN0
>>301
showFindIndicatorForRange:
ではダメかな?
306名称未設定:2010/10/21(木) 23:53:35 ID:HHa4nsdE0
あーNSTextViewならあるわ
WebKitには無いけど
307301:2010/10/22(金) 00:19:57 ID:35669UuC0
>>304-306
確かに,
-[NSTextView showFindIndicatorForRange:]
が求めているものでした!
ありがとうございました!
308名称未設定:2010/10/22(金) 13:11:31 ID:ug80YG/ZP
Launchpadって、アプリケーションフォルダやら登録したアプリのアイコンを
ボタンの画像にして透明なViewに並べてと、簡単に出来そうなんだけど。

あと、みなさんはMacAppStoreへの登録はどうしますか?
309名称未設定:2010/10/22(金) 13:21:17 ID:pvPE0mvt0
2.4
Apps that include undocumented or hidden features inconsistent with the description of the app will be rejected
2.5
Apps that use non-public APIs will be rejected

これで撃沈した
310名称未設定:2010/10/22(金) 13:27:25 ID:ug80YG/ZP
他のフレームワークを使っていて、それがリジェクトの
対象になる場合もあるんでしょうねえ。
311名称未設定:2010/10/23(土) 02:09:12 ID:lLBZEVx60
MacOS X Lionが発表されたな。
発売日は来年の夏だそうで。

今度はCocoaにどんな機能が追加されるのかな
もしくは、どんな機能が削除されるのかな
312名称未設定:2010/10/23(土) 17:39:08 ID:o8hN8UUz0
AppStore公式経由以外のインストール全面禁止とか。
313名称未設定:2010/10/23(土) 18:21:46 ID:TNPwmonp0
はいはい、あり得ない
314名称未設定:2010/10/23(土) 19:00:59 ID:UbZ7P2Z/0
でも、「AppStore公式経由以外のインストール全面禁止」ぐらいの話にならないと、
わざわざ、MacAppStoreへ登録する理由がないなぁ。

http://www.apple.com/jp/downloads/
↑このページが閉鎖になるなら、少しは考えるかもしれないけど
315名称未設定:2010/10/23(土) 19:04:38 ID:d9dwh6J40
とりあえずKagi、一橋、Act2辺りが涙目なんじゃね?
316名称未設定:2010/10/23(土) 20:03:37 ID:yPBLPHwk0
Macで全面インストール禁止って技術的に難しくない?
あときっとiAdがMacに対応してくれるよ!
317名称未設定:2010/10/24(日) 09:06:27 ID:BPV7fyUn0
>>316
iAd対応は嬉しいが、みんな使い始めると画面が汚い事になりそうだ。
結果、広告の無い格安有料アプリにユーザーが流れる気がする。
318名称未設定:2010/10/24(日) 09:27:38 ID:pJqfTp+80
この流れの中で、なんでVectorの名前が出てこないんだ?
319名称未設定:2010/10/24(日) 09:28:38 ID:TgB0DeMt0
終わってるから。
320名称未設定:2010/10/24(日) 10:44:18 ID:Y2YiXeg70
>>316
インストール禁止→フォルダコピー禁止なら難しいかも知らんが、
インストール後のプログラム実行時に認証されたキーが必要という話なら
簡単に実装できるだろう。
321名称未設定:2010/10/24(日) 12:43:36 ID:HyZBruqD0
Vectorでマック用ソフト探そうとは思わんなぁ
322名称未設定:2010/10/24(日) 13:13:00 ID:eHh1zKiV0
>>320
カーネルとか置き換えられたりkextか何かで認証を迂回されない?
323名称未設定:2010/10/24(日) 13:34:12 ID:IEwhaegL0
要は、通常のUNIXシステムであるうちは、簡単に全面的インストールの要認証化は困難かな。
324名称未設定:2010/10/24(日) 14:48:51 ID:TUZQA1n/0
Storeを通す場合自前の認証機能は認められないから、ソフトのクラック=全てのStoreアプリの割れになる。
危険だねー。絶対割る奴ら出てくるでしょ。
325名称未設定:2010/10/24(日) 15:31:02 ID:r8bS0KJ3P
ほとんどの定番アプリは非公開メソッドとかバリバリ使ってそうな
気がするんだけど、それだとストアに閑古鳥が鳴きそうな。
326名称未設定:2010/10/24(日) 20:27:59 ID:Y2YiXeg70
>>322
それはiPhone辺りでもやられている話でしょ。
そのレベルでブロックできれば十分実用になる。
普通の人はカーネルの置き換えなんてやらないからね。
327名称未設定:2010/10/24(日) 20:42:59 ID:TgB0DeMt0
アップルがブロックなんて始めたら、普通の人もカーネル置き換えも始めるようになる。
それだけ。

前提からしてありえんがな。
328名称未設定:2010/10/24(日) 20:48:37 ID:Y2YiXeg70
最初は警告だけ。
そのうち起動すら出来なくなる。
329名称未設定:2010/10/24(日) 22:20:07 ID:eHh1zKiV0
Mac全体で勝手アプリの禁止をしようとするといろいろ問題点があるけど(rootでアクセスできるとか、プラグインとかIMとかドライバ類はどうするのか?とか)、ペアレンタルコントロールみたいにユーザが設定できたら面白いかも。
たとえば年齢制限があるアプリはダメとか。ゲーム系禁止とか>< 今もペアレンタルコントロールで使用できるアプリは制限出来るけど、Mac App Store の情報を使っていろいろとアクセス制御の設定が出来るんじゃない?
330名称未設定:2010/10/24(日) 22:51:37 ID:nrFj1bxF0
ユーザーは、同時に1つのウインドウとしか対話できない。
だから、ディスプレイ上に1つのウインドウさえあればいい。その方がシンプルだ。

とかいう話がMacOS X 10.0の頃にあって、「シングル・ウインドウモード」の実装が予定されていたが、
開発者達の間から、使いにくいだけだからやめろ、という非難があってDeveloper Preview段階でボツになった経緯がある。

それを思うと、「フルスクリーンモード」ってどうなよの?
iPhoneやiPadは、そもそも画面が狭いからフルスクリーンになってるのだろうけど
331名称未設定:2010/10/24(日) 23:16:35 ID:VGC/0VIR0
PagesというかMision Controlがあるからいいんだろ
332名称未設定:2010/10/24(日) 23:23:47 ID:pJqfTp+80
フリーウェアしか出してない作家がアップルに一万円払って出品するメリットはないような気がする。
シェアウェア作家にとっては、まぁ決済チャンネルが一つ増えるぐらいの感じなんじゃない?

iPhoneのApp Storeみたく、ソフトの配布元を完全に自分のところだけで統括するってのは無理だろ。
そんなこと妄想してたら、それこそドザに笑われるわ。
333名称未設定:2010/10/25(月) 00:04:05 ID:n6TPY/180
>>331
> PagesというかMision Controlがあるからいいんだろ
シングル・ウインドウモードの話が出てたときも、他のウインドウは全てドックに格納されていて、
それを1クリックするだけでウインドウを切り替えれることになっていたが、
それでも反対意見が多かった見たいだぞ。
334名称未設定:2010/10/25(月) 00:14:18 ID:thWXnmFi0
まぁその10.0の頃から10年も経ってるんだから認識が変化するには十分な時間だろ。
Pagesとかあの辺のソフトはフルスクリーンにするとより集中できていいって話もあるし。

まぁClosedβが公開されてる訳でもないし、Appleとしては情報出して反応を伺ってるようなところだろ。
335名称未設定:2010/10/25(月) 00:25:22 ID:8NRaJAgM0
Mision???
336名称未設定:2010/10/25(月) 02:46:57 ID:IFgOCuqo0
SIMBL脂肪か
337名称未設定:2010/10/25(月) 02:52:39 ID:5ABbXpN70
勝手プラグインは今まで通り変わらんだろうよ
338名称未設定:2010/10/25(月) 09:44:52 ID:TYnt8UmR0
>>335
スペルミスしたら指摘してくれるだろうと思って油断してたorz
339名称未設定:2010/10/26(火) 17:39:42 ID:WBg2+FLr0
appstore経由だと課金はもちろんアンインストールもサポートするけど、野良アプリは今まで通りとかだろう。
あとは /Application(AppStore)とか専用フォルダを掘られて、個々にインスコするアプリはアポーのコントロール下に置かれてしまうとかねえ。/Library/Application¥ Support/Appleみたいな海苔。


ttp://developer.apple.com/jp/documentation/japanese.html
を呼んだ程度じゃ本当に欲しいアプリなんて作れないな。フリーソフトのほうがよっぽど使える機能が付いてる。
dvカメラを操作したいのだが、ieee1394のav/cコントロールってcocoaから弄れるの? 自分でデバイスドライバから組み込まないと弄らせれ貰えない?
340名称未設定:2010/10/26(火) 19:18:02 ID:EuT5Le+N0
日本語ドキュメントはiPhoneに比べるとサポートが薄いが、OSとしては
圧倒的にOSXのがサポートは厚い。

1394ももちろんコントロールできる。
http://developer.apple.com/library/mac/#samplecode/simpleAVC/Introduction/Intro.html
こんな大昔から普通にサンプルコードがある。
まあ、これはCocoaとは言えないか。

http://developer.apple.com/library/mac/#samplecode/LiveVideoMixer2/Introduction/Intro.html

AVC VideoServicesでDeveloperサイト検索すれば必要な情報は揃うん
じゃないかな?

良いもの作って下さい。
341名称未設定:2010/10/28(木) 23:49:51 ID:bb8nx1sF0
既存アプリを今更ながら64bit対応させようかと思っています。
そこで64-Bit Transition Guide for Cocoaを読んでるんですが、
どうも理解不足のところがあるので教えて下さい。

NSUserDefaults floatForKey などはCGFloatへと変更されて
いないようなんですが、そのまま使っても問題ないのですか?

CGFloatに格納してしまえばいいという理解で合っていますか?

342名称未設定:2010/10/29(金) 06:41:12 ID:xSmLLTos0
Major 64-Bit Changes

Floating-point data type sizes are the same whether you are
generating a 32-bit or 64-bit executable. However, the size of
long double is 128 bits wide in GCC 4.0 and later (required for
64-bit compilation). Previous versions of the compiler (3.3 and
earlier) used a 64-bit-wide long double type.

floatは32bitのままだから、CGfloatが必要ならdoubleで叩くだけ。
343名称未設定:2010/10/30(土) 00:36:27 ID:Kde4+1iE0
>>342
ありがとうございます。
やっぱり少し書き直しが必要になりますよね。

前スレで32bitと64bitの両方のアーキテクチャと
10.4 SDKと10.5 SDKの両方に対応するコードを
書こうとしていた人がいたみたいで……
それをやろうかと思ったんですが、10.5以降だけ
に絞ったほうが良さそうですね。

10.7が出たら10.4は切り捨てでもいいかな。
344名称未設定:2010/10/31(日) 13:28:46 ID:99C49EVE0
よく見えてないけどNSPoint にでも入れて、encodePoint: forKey: すれば
何も考えずにすむ、って話でもない?
345名称未設定:2010/10/31(日) 19:17:35 ID:Q0ObZcsI0
32bitアーキテクチャとか64bitアーキテクチャって、あくまで整数の話だと思っていたのだが。
浮動小数点はどちらのアーキテクチャでも64bitじゃなかったか?
346名称未設定:2010/10/31(日) 19:27:45 ID:WkFNmTTz0
ゲームのためのメインループを組みたいんだけど、どうするのがCocoaの流儀に沿ってる?

タイマーのコールバックか、スレッド作って自分でループ書くか…他にも、こうするって定番があればお願いします
347名称未設定:2010/10/31(日) 19:54:38 ID:Q0ObZcsI0
>>346
Cocoaはゲームのためのフレームワークじゃないので、ゲームのための流儀なんかないよ。

> タイマーのコールバックか、スレッド作って自分でループ書くか
どちらでも好きなようにやってください。
348名称未設定:2010/10/31(日) 20:00:11 ID:lXl6WScUP
そういう意味じゃ、GameKitとか実装しないのかな。
349名称未設定:2010/10/31(日) 21:27:51 ID:zpmoWkLX0
1/60とか一定間隔を維持するほうが重要なら、スレッド内で
NSRunLoopを使うのが簡単だと思う。
アプリのメインスレッドは描画も担当するし、イベントも処理するしで、
ボコボコ処理落ちするから。
350名称未設定:2010/10/31(日) 21:54:58 ID:WkFNmTTz0
みんなありがとん
351名称未設定:2010/11/01(月) 00:18:39 ID:Vlpey2nw0
cocos2dでも使えば?
352名称未設定:2010/11/04(木) 22:46:24 ID:axvag90n0
cocoa初心者で、今ヒレガス本(第三版)を読みながら勉強中です。

IBでtableviewのcellの中にcheck boxを入れるとあるが
本にはドロップするとしか書いていないが実際やっても全くできない
ググってもIBじゃない内容しか出ないからおしえてください
353名称未設定:2010/11/04(木) 23:05:12 ID:AxQqnPT70
>>352
ドロップするのは、Check Boxじゃなくて、Check Box Cellの方ね
354名称未設定:2010/11/04(木) 23:06:15 ID:c4wpUe9a0
NSButton じゃなくて NSButtonCell の方ね、たぶんそういう間違いだと思う。
355名称未設定:2010/11/04(木) 23:06:58 ID:c4wpUe9a0
もろかぶったw
356名称未設定:2010/11/05(金) 20:00:07 ID:OoTwrdzaP
Macアプリストアは既存Macデベロッパーのものじゃない:http://longtailworld.blogspot.com/2010/10/macmacthe-mac-app-store-isnt-for-todays.html

全くその通りでございます。
既存の開発者ほど否定するしw
357名称未設定:2010/11/05(金) 22:38:34 ID:VeM9/mZA0
CGBitmapContext(要はこちらで用意したbyte配列のオフスクリーン)に文字列を
描画したいんですけど、お願いします。
Viewへ直接描く方法は分るんですが…
358名称未設定:2010/11/05(金) 23:12:40 ID:rCtZvxoe0
[CGContextRef]
CGContextShowText

または

[NSString]
drawAtPoint: withAttributes:
359名称未設定:2010/11/05(金) 23:21:03 ID:EuvWpztR0
>>353
おおおできたぁぁぁ
cellとして入るのと入らないという二種類あるのですね
ありがとうございます
360名称未設定:2010/11/06(土) 02:01:28 ID:msoYNKHk0
>>359
ちょっと違う。Cellとして入るうんぬんじゃなくて、片方はCellで片方はViewだ。
361357:2010/11/06(土) 12:21:05 ID:qSJTrzDf0
>>358
ダメでした
そのAPIだとViewに描画されてしまいます。
描画対象をbitmapContextに切り替える方法は無いでしょうか?

CGContextSaveGStateでは切り替わりませんでした。
362名称未設定:2010/11/06(土) 12:31:09 ID:adqdoL3C0
>>361
CGContextShowTextの最初の引数にCGBitmapContextを渡してやればいいのでは?

CGContextSaveGStateはCGContextの状態を保存する関数だよ。CGContextが何か分かってる?
363357:2010/11/06(土) 13:23:18 ID:qSJTrzDf0
>>362
設定が足りなかった様で、ShowTextの方では描画できました。ありがとうございます。

ただ、ShowTextでは現状アルファベットのみうまく行っています。

UTF16やShiftJISの漢字も扱いたいので、NSStringのdrawAtPointでもbitmapContextへ描画出来ると嬉しいんですが。

ShowTextではSelectFont時も含めて、エンコードの指定がうまく出来なかったです。
364名称未設定:2010/11/06(土) 14:06:09 ID:adqdoL3C0
そっか。テキスト周りは Cocoa の暗黒面だったような…。
試してないけど、とりあえずこれでどう?

CGContextRef cgContext = CGBitmapContextCreate(...);
NSGraphicsContext *nsContext = [NSGraphicsContext graphicsContextWithGraphicsPort:cgContext flipped:NO];
[NSGraphicsContext setCurrentContext:nsContext];
[NSGraphicsContext saveGraphicsState];
// ここで NSString の drawAtPoint: などを実行
[NSGraphicsContext restoreGraphicsState];
365357:2010/11/06(土) 14:26:31 ID:qSJTrzDf0
>>364
どうもご丁寧に。恐縮です。
ご教示のコード、ありがたく試させて頂きます。

ヘッダを拾い読みしていると、APIの組み合わせでその様なコードかとはおぼろげに思うのですが、何分にも慣れていないので大変助かります。

結果はのちほどに。
366357:2010/11/06(土) 14:52:28 ID:qSJTrzDf0
>>364
できました!
ありがとうございます神認定
367名称未設定:2010/11/06(土) 15:10:13 ID:VJHg6aRY0
上から目線w
368名称未設定:2010/11/06(土) 17:10:04 ID:8I16XBeF0
ちなみに、CoreTextのAPIって試して見ましたか?
369名称未設定:2010/11/06(土) 19:42:56 ID:Rrytyfgy0
>>368
あんまり使ってないんで細かいことは分からないけど
今までに比べたら天国。
370名称未設定:2010/11/07(日) 09:07:42 ID:FbDj8Nml0
>>366
お前面白いやつだな
371名称未設定:2010/11/11(木) 21:21:33 ID:755ren8Ei
>>346
Cocoaがどうイベント処理してるか調べてみるとかは?
372名称未設定:2010/11/16(火) 08:45:55 ID:VIQ8vUVO0
Mac App Store への提出関連のところってまだNDA?というかずっとNDA?
373名称未設定:2010/11/18(木) 01:32:52 ID:2Bv4azJX0
NIDA
374名称未設定:2010/11/30(火) 10:10:20 ID:6esOTvfb0
Keynoteとかのインスペクタウィンドウってどうやって実現するんでしょう?
TabViewとは違う気がするし…
375名称未設定:2010/11/30(火) 19:44:53 ID:TvyodAqm0
TabViewでしょ
376名称未設定:2010/12/05(日) 00:57:54 ID:OaOlt6d80
動画プレイヤー組む場合
あらゆるコーデック自前で実装するか
QTKitとFFMPEG組み込むか…
FFMPEGで悩んでるんだけど他に使えるコンポーネントある?
377名称未設定:2010/12/05(日) 01:06:57 ID:0zj5dcAI0
>>376
自前で実装してみろよ
378名称未設定:2010/12/05(日) 06:30:48 ID:4chuRoOL0
プログラマからアプリの要件書けっていわれてこまっている。みんなどうやって書いてるの? 画面のイメージ作ってあとは適当にこんな感じって指示だせばいいとおもっていたのだが..
379名称未設定:2010/12/05(日) 12:18:07 ID:5U0BVHDF0
何か漠然としてるが、どういうものを作って欲しいのかちゃんと書かないと
出来上がってみたら、俺が思っていたのと違う、とトラブルになる。適当な
ことを書くと適当なものが出来上がる。プログラマーはあんたがイメージ
してるものを知らないのだから、それを的確に伝えなければならない。

画面の仕様とか、機能の仕様とか。
380名称未設定:2010/12/05(日) 21:59:15 ID:a2/wzVLp0
>>378
ところで、あなたの担当というか立場は何?
それから、ここでいうプログラマとは、どの程度の役割を担っているの?
381名称未設定:2010/12/05(日) 23:22:15 ID:aDoJwNFWP
画面レイアウトと個々の入出力項目(テキスト入力や出力欄)の詳細、
ボタンなどを押した時の挙動(データを取ってくるとか◯◯を表示するとか)
あと、エラーとすべき動作などを記述するのが一般的。
頭の中にある動作仕様を、全く知らない他人に作ってもらうには、
きちんと伝えなければならないし、それをせずに後付けであれこれ注文を
追加したら、プログラマは
「エスパーじゃねよ!」とキレるわな。
382名称未設定:2010/12/06(月) 06:19:16 ID:pdflKbxV0
嫌われようと好かれようと、金出すほうが偉い。
上から目線で無茶なことを言われてもやるほかない。
ってのは、ソフト開発に限らず、受注産業全般に見られる悲しい現実だな。
383名称未設定:2010/12/06(月) 16:53:17 ID:O8Xs2iVW0
金いらないからやめたというのもあり
384名称未設定:2010/12/06(月) 21:39:50 ID:Xzlilnwz0
378です 皆さんども 確かに自分は発注サイドなんですな

普通のwinアプリとかwebだったらある程度仕様伝えられるんだけど、iPhoneやiPadの場合、例えば画面遷移だけでもページがめくれる感じだったり、横にスライドしてきたり、いろいろなアクションがあるわけで。。これ全部発注側で検討して仕様固めるのが結構厳しい
ここはこんな感じの動きもかっこいいですよ?って感じで提案してくれるプログラマっていないのかね、あーだいたい全部受け身なんだよったく。
385名称未設定:2010/12/06(月) 21:50:42 ID:pdflKbxV0
>>384
金を出す出さないを抜きにした誠意の問題だな。

>プログラマからアプリの要件書けっていわれてこまっている
自分の示したこととそいつの言い分と、あなたの良心に照らしてそいつの言い分が不遜だと思うなら、
そりゃ強く出ればいいわな。
ただ、誠意を示せば相手も誠意を示してくれて最後まで円滑に進む場合もあるが、
媚びへつらうと、相手がいい気になってすごく難儀する場合もある。

その辺はもう人間同士の問題だから…。
386名称未設定:2010/12/06(月) 21:52:09 ID:Gjt9J3DT0
>>384
> これ全部発注側で検討して仕様固めるのが結構厳しい

発注側の立場なら、詳細な仕様を固めるのが厳しいのは当然だと思います。
基本的に開発者ではないのですから。

> ここはこんな感じの動きもかっこいいですよ?って感じで提案してくれるプログラマっていないのかね

いろいろ提案してくれて、発注者側のニーズを引き出すのは、受注者側の仕事だと思います。

ただ、発注者とプログラマが直接話をしているのが、ちょっと変かなと思います。
別に、発注者とプログラマが直接話したらダメということもないのですが、通常は間に営業の人とか、設計の人とかが入ると思います。

387名称未設定:2010/12/06(月) 21:54:28 ID:lrBqu/0p0
iPhoneはプログラマーがある程度幅を利かせて
適当にやってくれた方がうまく出来ると思うがな
388名称未設定:2010/12/06(月) 23:04:26 ID:JkwsiZviP
ていうか、作って見せてから「やっぱ、ここの画面遷移はこうで」とか言われても
直してテストしてってかなり大変なんだよね。

その分きちんとお金をもらえればいいけどまず無い。後付けでズルズル行くのが一般的。
口では2、3分だけど、そんなサービスのために1日2日潰してるんだよね。

逆の立場になったとして、あなたはそのために、ずっとタダ働き出来ますか?
ていう話しかな。
389名称未設定:2010/12/06(月) 23:17:02 ID:pdflKbxV0
そのくらいなら、余裕で許容範囲だな。
まったく別なアプリを一からつくり直してくれって話を、
営業がのんできたことがあるぞ。
390名称未設定:2010/12/07(火) 00:48:23 ID:3Z1239nO0
>>384
作った後でここ変えてとか言われ続けてるから経験を積むほど先に全部仕様持ってこいって考え方になる。
iPhoneだったら、スライドビューにするかテーブルビューにするかで大きな違いだし
モーダルでどんどん重ねて行くかナビゲーションにするかでも変更すべきとこは多い(ナビゲーションバーとかね)。
ユーザからしたらあまり変わらないんだけどさ、作る側としてはそこ今から変えろってか?って感じになる。
作ったあとで動き見て、やっぱりこうしてなんてのは一番やって欲しく無い。2倍作業させてるわけよ。

てことである程度自由にやってくれって考えるなら必要な画面の枚数だけ用意して遷移などはお任せにする。
そして作った後から変えろって言わない事。
だと俺は思う。ほぼグチですまんが。
391名称未設定:2010/12/07(火) 00:51:36 ID:1ixF4IHLP
>>384
発注の条件に、iPhoneやiPadを日常的に使ってることってのを入れるべきだと思うよ。
392名称未設定:2010/12/07(火) 09:53:29 ID:A1uRbljY0
手を抜いた仕様書でプログラマに丸投げするなら、出来上がったものを見て
文句を言わない事。それが嫌なら真面目に仕事しろ。
393名称未設定:2010/12/07(火) 12:40:01 ID:TVMsvvEgP
顧客とプログラマという、間に仕様や設計書が作れない人がいない関係となると、
どちらかがその役割を果たさないといけないんだろうね。
それを相手のプログラマにやらせようとするなら、きちんと設計料も払わないといけないね。
お金出すからいくつかの提案パターン(画面レイアウトレベルで)作ってよ、
みたいな。
394名称未設定:2010/12/07(火) 16:45:52 ID:38eIokMA0
そのへんは最初からプログラマが発注側の打ち合わせに来るべきだと思うけどね。
目の前で見せながら画面作っていけるのがインターフェースブラウザのメリットなんだし。

プログラマって融通が訊かなくて、バグ入りアプリしか作れないし。ちゃんと仕事しろっていつも思う。
395名称未設定:2010/12/07(火) 17:09:49 ID:aEwBzt6p0
プログラマに実演販売みたいなことさせる気かよ。
オレはゴメンだ。
あとインターフェース・ビルダーな。
396名称未設定:2010/12/07(火) 17:26:42 ID:OUdwbAE10
開発側が営業して注文とったのと、企画側が発注出したでは話が全く逆になるよ

前者なら開発側は企画側の納得がいくものを用意してあげないといけないだろうけど、
後者なら開発側は企画側の注文どおりのものを作ればいいだけ
注文がおかしい時にその旨説明するか、無理やり作っちゃうかは開発側のさじ加減

AdHocでも動けばいいとか、企画側に不利な契約なら無理やり作っちゃうかもねw
397名称未設定:2010/12/07(火) 17:29:35 ID:3Z1239nO0
プログラマが打ち合わせに行っても同じ。ラフ作って動き見せても同じ。
仕様書を作るってことは明確に完成図、要求項目が自分で理解、整理できてるってことだ。
それを持ってない人は漠然としたイメージしかなくて、それが後出しの仕様変更につながる。
398名称未設定:2010/12/07(火) 21:07:01 ID:IJutWftZ0
プログラマ側としては、内容がよく整理されていて、後戻りのない仕様書を求める思いはあるのだろうけど。
相手はアプリの開発をよく知らない素人。
プログラマが納得できるようなレベルの仕様書を作れるわけがない。
最初に出て来た仕様書なんて、信用できない。

だから、顧客とたえずコミュニケーションを取って、真の要求を聞き出すしかない。
漠然としたイメージしか持っていないようなら、明確なイメージが持てるように手伝うしかない。
後から仕様変更が来て余計な時間がかかるぐらいなら、そっちに時間をかけた方がマシだ。

最初に出て来た仕様書どおりに実装してさっさと納品すると、顧客の立場的には文句が言えない。自分が提出した仕様どおりなので。
でも、それだと顧客は満足しない。最悪、次回から発注が来なくなるかもしれない。
それだと、お互いにハッピーにはなれない。

このような結果にならないように、なんとかできる人間がいるとしたら、それは開発側の人間だ。
399名称未設定:2010/12/07(火) 23:43:49 ID:q1QMnZAV0
会社によってやり方は色々あると思うけど、

まずは、そのアプリで何が実現できるのか、どんな効果が得られるのか、
を機能単位でリストアップして(こんな段階を要件定義とか要求定義とか言う)、
次に、それをどう実現しようか調査なり設計なりしつつアプリ仕様を定義していくのが一般的なので(たぶん)、
まずは要件だけ出して仕様定義は開発側の技術者と相談しつつ進めたら?
400名称未設定:2010/12/08(水) 00:51:32 ID:9MrgTWPZ0
まぁ、普通はSEが入るんだけど、iPhoneとかiPadのような小規模なプログラム
ではプログラマに丸投げなのかな。予算もロクになさそうだし。
401名称未設定:2010/12/08(水) 01:06:55 ID:MFewu2ay0
>>400
オレも、なぜSEという言葉が出ないのか不思議だったw
普通は顧客とプログラマの間にSEが仲介に入るだろ。

アプリ安すぎてそこまで人件費捻出できないみたいね。
402名称未設定:2010/12/08(水) 02:16:45 ID:kk7UhHJ80
強力なSDKがAppleからプログラマに丸投げされてるんで
あとはご用聞きのプログラマ社長とかがいればいいです
403名称未設定:2010/12/08(水) 04:27:42 ID:McJ/VmiO0
小さな会社の場合、

社長=営業=コンサル=プロマネ=SE=プログラマ=デザイナ=雑用係って、普通だから。
404名称未設定:2010/12/08(水) 18:54:21 ID:/rchT5m20
>>384です。皆さん意見ありがとう
今日お偉いさん側と協議してなんちゃって仕様がきまりました。
といってもとりあえずこんなコンテンツを出せっていうだけ。「商品検索」が中心のコンテンツとなった。

>>389
すみません、はげしくオタクに発注したいのですが..

>>390
発注側はそんな努力とかほんとうに知らねーんだよなあ。
つかそういう素振りを見せるところと見せないところがある。ま、これも結局人によるけどね

>>391
とりあえず全社win-PC使ってた。だめだね

>>394
だね。なんで開発側って客の前に出たくないのかね

>>395
あんたの立場しらないけど受託開発からは足洗ったほうがいいんじゃね?アプリつくってガンガン儲けたほうがいいよ。

>>398
商売の基本って感じだね。できれば仕事発注したいのですが..

>>401
SE?プロデューサーとかエバンジェリストとかそういう肩書きはいたが、
SEとか一人もいなかった。まだ3社目だけど


とにかく早く決めないとなあ
いい開発会社教えてください。
405名称未設定:2010/12/08(水) 18:56:06 ID:JiaYV95g0
普通にスレチなんで余所の板に行って下さい。
406名称未設定:2010/12/08(水) 20:55:47 ID:9MrgTWPZ0
ここはどこあ、ここはCocoa。
407名称未設定:2010/12/09(木) 00:42:07 ID:sb3hBLBZ0
つまりマクな開発請け負いますって会社にはろくなのが居ないのがよくわかるスレw
ウェブデザ頼むと目の前でいろいろ見せて打ち合わせ勧めてくれるよ。発注側は仕様書求めてないし、仕様書作成費用/納入費用を請求されるのも不快。

開発会社に頼まず、プログラマを原価で直接雇用したほうがいいかもね。cocoa組めますってだけで月給いくらぐらいが相場なんだろう。
408名称未設定:2010/12/09(木) 00:47:59 ID:31Su/XWdP
ウェブは簡単にデザイン出来るからね。
409名称未設定:2010/12/09(木) 00:58:56 ID:cczshK460
[NSMenu popUpContextMenu:menu withEvent:theEvent forView:self];
でポップアップメニュー表示されているんだけれど、
一つのMenuItemだけ、マウスカーソルをあわせてもハイライトしないことってできる?
410名称未設定:2010/12/09(木) 01:16:42 ID:6ygqoqIG0
enable: NO
411名称未設定:2010/12/09(木) 16:38:02 ID:sb3hBLBZ0
マクは見た目を簡単にデザイン出来ないの?
vbとかだとポトペタでアプリの画面見せてくれるよ。
412名称未設定:2010/12/09(木) 16:54:38 ID:vG5Rr5QI0
>>411
できるよ、IB で。
413名称未設定:2010/12/09(木) 17:03:47 ID:IUFE3exj0
上の流れは
「発注出してるのに仕様出せとかUIデザインしろとかうぜーんだよ、お前らの仕事だろ」
「ちげーよ、お前の仕事だよ」
てのをループでやってるだけだよ。
414名称未設定:2010/12/09(木) 17:20:53 ID:8zn89eXX0
もう発注者様(本人は神のつもりらしい)の話は要らんだろ。スレ違いだし。態度も気に入らん。
415名称未設定:2010/12/10(金) 13:40:41 ID:RvVM+ANw0
>>411
IBも知らないくせに、なんでこのスレに張り付いてるの?
416名称未設定:2010/12/10(金) 14:17:20 ID:RM5FeoHR0
うちはずっとMacでやってきたんだ。iPhoneで参入して来たそのへんの会社と一緒にするな。
ということで相手の会社を見極める力を身につけてください。
417名称未設定:2010/12/12(日) 12:04:24 ID:UUlzBST60
最近iPhone関連をググると必ずヒットする
http://ja.efreedom.com/Question の糞邦訳がウザすぎる
418名称未設定:2010/12/12(日) 14:51:35 ID:YxvCX0ef0
随分フリーダムな訳だな
419名称未設定:2010/12/12(日) 19:24:25 ID:e+qYtxSw0
金出す以上は神だろ。
金欲しさにプログラム作ってるくせにw

ibというので客の前で見せながらデザイン出来るなら、やればいいのに。
打ち合わせにノートpc持ち込んでvsでデザイン見せてる他の業者に仕事取られまくりだぞw
420名称未設定:2010/12/12(日) 20:05:36 ID:FvMUz0070
そんなもん知った事かよwww
他人様の心配してる余裕があるなら飯食って糞して寝てろwwwww
421名称未設定:2010/12/12(日) 20:07:09 ID:LEAxqZMt0
なんで仕事取りに行く前提なの?さばききれなくて困ってるぐらい。
422名称未設定:2010/12/12(日) 21:33:29 ID:U5LHa1q10
実は、画面というのは簡単には作成できない。
なぜなら、それは内部的な仕様が完成している事が
前提にあるから。

「パソコンの外観を作ったから、中身を入れてくれ」って
くらい無茶なことになる。
423名称未設定:2010/12/12(日) 22:06:24 ID:qKaq2/eSP
IBならレイアウトぐらいだろうね。
バインディング使えは少しは値を出したりできるだろうけど、
大まかな仕様決めにはあまり関係ない部分だろうし。
424名称未設定:2010/12/12(日) 23:17:13 ID:tR1nH54u0
>>419
金といってもピンからキリまで。ピンならヘコヘコしてもいいが、キリなら
受けないね。しかもどういうプログラムを作ったらいいのか伝えられない
池沼なんかお断り。どうせ予算も数十万程度のハシタ金だろ。
425名称未設定:2010/12/13(月) 12:34:25 ID:uDjCXBKQ0
本来のCocoaの話に戻るべきだよ
426名称未設定:2010/12/13(月) 20:47:14 ID:HTS39nEX0
このスレ、ココアはさっぱり!!!だから

テヘッ
427名称未設定:2010/12/13(月) 23:00:06 ID:elRQ0CSG0
じゃあ、適当なCocoaの話題を出してくれ
428名称未設定:2010/12/14(火) 23:51:14 ID:6E1AYmUn0
隗より始めよ
言い出しっぺの法則
429名称未設定:2010/12/15(水) 19:34:28 ID:MabsP9cd0
CocoaとXcodeの関係について教えてください。
やっぱりXcodeが攻めですか?
430名称未設定:2010/12/15(水) 19:58:58 ID:FQBt+jAM0
xcodeでポトペタッテ出来ないの?
431名称未設定:2010/12/17(金) 16:56:00 ID:1POhYnbR0
テキストエディットなどでエスケープキーを押すと補完リストが出てきますが、
Cocoaのクラスやメソッドの補完リストを出してくれるような辞書って
どこかにありますでしょうか。
プログラム書いてる時はXcodeオマカセでラクチンなんですが、
文章書いてる時に、ああ補完してぇ、と思う事しばしばなのです。
432名称未設定:2010/12/17(金) 18:36:44 ID:/7BwtDQs0
xcodeで文書書けないの?

http://hibari.2ch.net/test/read.cgi/mac/1265669504/
Xcode part8
433名称未設定:2010/12/17(金) 23:44:34 ID:ePEjYCTZ0
>>4
>書籍

荻原本に改訂版が出た模様。次スレテンプレ変更よろしく

詳解 Objective-C 2.0改訂版「荻原本」(ソフトバンククリエイティブ 、10/12)荻原剛志
434名称未設定:2010/12/18(土) 21:30:36 ID:sBFhu8Zu0
改訂版買った。

前書きによると、
・Blocks(ブロックオブジェクト)に1章
・NSOperation による並列処理
・CoreFoundationの概要
・NSURLの記述を充実
・iOSに関してなにやら
について加筆しているそうだ。
435名称未設定:2010/12/18(土) 22:35:19 ID:sBFhu8Zu0
> 正規表現を扱うクラスがiOS 4.0以降でのみ利用可能です。
Mac OS X にはないって、どういうこっちゃ。

酷いねそれ。
436名称未設定:2010/12/18(土) 23:30:08 ID:G8HyNboQ0
そりゃ4.0のほうが後に出たんだから普通だろ
437名称未設定:2010/12/19(日) 00:54:25 ID:OdRK7zFiP
ようやく標準で正規表現できるようになるんだ。
今までNSScanner駆使してた苦労が無くなる。
438名称未設定:2010/12/19(日) 14:20:11 ID:mOJcp+oX0
すみませんが下記のエラーや警告が出る理由を教えてください。

#import <QTKit/QTKit.h>
#import <QTKit/QTMovie.h>
#import <QuickTime/Movies.h>

@interface MyMovie : QTMovie
{

}
@end

@implementation MyMovie

- (int)Test
{
  Rect srcRect;
  Movie mv; //エラー、Movies.hで定義されているはず
  mv = [self quickTimeMovie]; //エラー&警告、QTMovie.hで定義されているはず
  GetMovieBox(mv,&srcRect); //エラー、Movies.hで定義されているはず

  return MovieFileType; //ここはMovies.hで定義されているので、エラーにならない。
}
@end

つづく
439名称未設定:2010/12/19(日) 14:21:00 ID:mOJcp+oX0

MyMovie.mm: In function 'int -[MyMovie Test](MyMovie*, objc_selector*)':
***/MyMovie.mm:18: error: 'Movie' was not declared in this scope
***/MyMovie.mm:18: error: expected `;' before 'mv'
***/MyMovie.mm:19: error: 'mv' was not declared in this scope
***/MyMovie.mm:19: warning: 'MyMovie' may not respond to '-quickTimeMovie'
***/MyMovie.mm:19: warning: (Messages without a matching method signature
***/MyMovie.mm:19: warning: will be assumed to return 'id' and accept
***/MyMovie.mm:19: warning: '...' as arguments.)
***/MyMovie.mm:20: error: 'GetMovieBox' was not declared in this scope

QTKitとQuickTimeのframeworkはプロジェクトに追加しています。importがおかしいでしょうか?
上記はmmとしてコンパイルしたときのメッセージです。mとしてコンパイルすると
若干エラーと警告の構成が変わりますが、ビルド完了しないのは同じです。

よろしくお願いします。
440名称未設定:2010/12/19(日) 14:34:50 ID:xIe9sGA/0
Movieは、64bit非対応です。
64bitな環境では、宣言されない型なので、コンパイルエラーになります。
441名称未設定:2010/12/19(日) 14:54:21 ID:OdRK7zFiP
今後を考えれば、QTMovie *movieを使った方がいいかと。
442438:2010/12/19(日) 14:56:27 ID:mOJcp+oX0
あと出しですみません。調べてみたら、x86_64ではなく、i386になってました。
これって32bitじゃないんでしょうか?
443438:2010/12/19(日) 15:01:51 ID:mOJcp+oX0
>>441
最初は普通にQTMovieを使ってたんですが、currentFrameImageが遅すぎて、ぐぐったら
GetMovieBoxとかNewGWorldを使うサンプルが出てきたのです。
それがうまくコンパイルできないので上記のような質問になった訳でして。

高速に再生中のイメージが取得できる方法が他にあれば、上記のコードにはこだわりは無いです。
よろしくお願いします。
444名称未設定:2010/12/19(日) 15:09:05 ID:OdRK7zFiP
あー、そのサンプルは知ってます。
確かに、QTKitだと遅いですね。
あと、#import <QuickTime/QuickTime.h>
(小文字だったかも)じゃないかな。
445名称未設定:2010/12/19(日) 15:15:59 ID:UPkS/Fok0
アーキテクチャを32bit-Uni、アクティブアーキテクチャのみをビルドをオンにしてみ。
446438:2010/12/19(日) 15:37:45 ID:mOJcp+oX0
みなさんどうも。
>>445
アーキテクチャを32bit-Uni
これでいけました。ありがとうございます。

>>444
確かに、QTKitだと遅いですね。

現状だと64bitも対応で再生中の高速イメージ取得は、Cocoa環境だと
無理なんでしょうか?
447名称未設定:2010/12/19(日) 22:43:08 ID:LT53C8I20
>>446
どの程度の速度を求めているのかわかりませんが、
http://www.cimgf.com/2008/02/23/nsoperation-example/
のようにNSOperationを使う方法では不十分ですか?
448名称未設定:2010/12/19(日) 22:57:02 ID:ilhAbNKv0
Mac App Storeのアプリは64bit対応必須になるかと思ってたけど
標準APIもちょこちょこ32bitオンリーのものがあるし
まだまだかな
449名称未設定:2010/12/20(月) 08:59:35 ID:RWRXX9fy0
>>437
鬼車とかorgakitとかなかったっけ?
450名称未設定:2010/12/20(月) 10:55:56 ID:lHwbsWFe0
ogrekit

標準ではない。
451438:2010/12/20(月) 15:20:26 ID:0apz1M+50
>>447
情報ありがとうございます。
サンプルのページをざっと見たところ、ボタンを押したら画面をファイルにセーブする処理でしょうか?

こちらのやりたいのは、再生中のムービーを最高60Hz程度、全編にわたって取得して、そのイメージを
加工してから表示するというものです。

http://lists.apple.com/archives/quicktime-api/2006/sep/msg00084.html
この辺でアップル?もframeImageAtTimeとcurrentFrameImageが遅すぎるという問題は
認識しているようですが、簡単には対策できないとも書いています。

やってみると、本当に話にならないほどめちゃくちゃ遅いです。一見ハングしてると勘違いするくらい。

もし修正を待てないならGWorld使えとも書いてます。これなら最近の一番スペックの低いMacBookでも、
実際十分な速度が出ます。
結局「64bitアプリで再生中の高速イメージ取得」は無理というのが、現状になってしまう感じでしょうか。

Leopardでスピードアップしたいみたいに言ってますが、まだ直ってないんですね…
452名称未設定:2010/12/20(月) 17:13:00 ID:It+pnEk0P
RegexKitLiteが楽だお
453名称未設定:2010/12/20(月) 20:14:20 ID:stLDZfgX0
俺は鬼車使ってる。BSDライセンスなので商用でも問題ないし。
でも本来はもっと早くCocoaに入れてしかるべきものだ。
454名称未設定:2010/12/22(水) 16:06:24 ID:8aywJKl90
>>451
VJソフトでも作ってるんですか?
完成が楽しみですね
455名称未設定:2010/12/22(水) 21:27:59 ID:OtxWvAO30
>>451
ちなみに、-[NSView bitmapImageRepForCachingDisplayInRect:]は、試して見ましたか?
456名称未設定:2010/12/23(木) 04:52:49 ID:ghE1ZGxf0
正規表現使うときは TSRegularExpression 使ってたけど、NSRegularExpression は微妙に違うんだな。
457名称未設定:2010/12/29(水) 10:17:30 ID:3cjEv9Gc0
「荻原本改」読んでて連想参照と言うのを初めて知ったんだが、
これ面白いけど何に使われてるんだろ。

使い道はあるが、何か必要があって追加された機能だろうし。
458名称未設定:2010/12/29(水) 16:39:05 ID:eVUmGMw60
KVOかな??
Observされたオブジェクトとキーを保持するのに。
459名称未設定:2010/12/30(木) 02:45:15 ID:Wu7Bh5hI0
NSDictionaryのことだと思うよ
460名称未設定:2010/12/30(木) 05:08:13 ID:q7sz8V8h0
objc_setAssociatedObject() でやるアレのことだろ
461名称未設定:2010/12/30(木) 08:21:04 ID:2RcXTUf60
それそれ。ランタイムに追加された機能のこと。
462名称未設定:2010/12/30(木) 13:45:40 ID:40R2B7jC0
へー、そんなものが
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocAssociativeReferences.html

NSNotificationのuserInfoみたいに(って例えは違うかも)、何かしら付加情報を持たせておきたいときには便利だね。
乱用するとゴチャゴチャになりそうだけど、サブクラス化とかしなくて済むのは助かるな。
463名称未設定:2010/12/30(木) 14:00:08 ID:40R2B7jC0
あ、カテゴリ作るときにメンバ変数としても使えるかな
464名称未設定:2010/12/30(木) 20:29:57 ID:Wj58brCr0
>>459
NSDictionaryならobjc_setAssociatedObjectを使わなくても、普通にkey-valueを保存できるんじゃ?
465名称未設定:2011/01/02(日) 04:11:29 ID:Cmvj4k1z0
相変わらず大した進歩でもない昨日だな。
非マクの外の世界を知らなきゃ困る事も無いのだろうけど。
466名称未設定:2011/01/02(日) 11:59:11 ID:wMZvMluW0
非マクの外の世界w
467名称未設定:2011/01/04(火) 23:29:17 ID:UXvdYDcN0
お助けを・・・

NSViewAnimationのNSViewAnimationFadeOutEffectが、どうにも思ったように動かない。
フェードアウトはせず、タイムアウトするといきなり消えるだけ。

delegate側で実装しなくても、動くはずなんだよね?
- (float)animation:(NSAnimation *)animation valueForProgress:(NSAnimationProgress)progress
この中でsetAlphaValueをいじれば動くけど・・・

だれかボタンがフェードアウトするだけのサンプルを書いてみてはくれないか。
468名称未設定:2011/01/04(火) 23:43:52 ID:MGMwlm0l0
Happy Macintosh Developing Timeの赤いやつに載ってるよ。
469名称未設定:2011/01/05(水) 01:14:54 ID:O5BDWnmP0
まちがってiOSスレに質問してまったので、再投稿
タブ移動でコントロールのフォーカス
を動かすとき、なんでNSButtonオブジェクトにはフォーカスが
移動しないのでしょうか。これってCocoaの仕様かな。
オブジェクトのプロパティにはそういう項目ないようだし
もちろんrefuseFirstreponderにチェックは入っていない
470名称未設定:2011/01/05(水) 01:29:59 ID:+R+VVe4L0
NSWindow のフォーカス移動序列の再計算してみ。
471名称未設定:2011/01/05(水) 04:48:03 ID:xJPj3gV50
>>469
Macではデフォルトだと、Tabでボタンにフォーカス移動しない。
下記の設定をすると移動するんじゃない?
システム環境設定 > キーボード > キーボードショートカット > フルキーボードアクセス > すべてのコントロール
472名称未設定:2011/01/05(水) 10:31:17 ID:O5BDWnmP0
>>471
ありがとうございます。ここ見る前自分でも英語で具具ってやっとわかりました
MAC自体2ヶ月前はじめて購入し、MACアプリはXcodeとIB以外触っていない
これ調べるため5、6時間くらいは費やした
473名称未設定:2011/01/05(水) 10:34:19 ID:DHV/gxuO0
>>472
最後の2行で何を主張しているのだ?
474名称未設定:2011/01/05(水) 10:41:55 ID:GTi21GMV0
「自分は無能です」ってことだろ
475名称未設定:2011/01/05(水) 16:50:47 ID:O4kJ+OUI0
iPhoneアプリ作りはなんか楽しくて良いね
簡単なコードでちょいと動くものを作るだけでも
それがiPhoneで動くってことで付加価値がついたりする
不思議
476名称未設定:2011/01/05(水) 16:52:14 ID:O4kJ+OUI0
と、違う違う。
言いたかったのは、
だから、iPhoneアプリから入るのってMac の開発の入門にも良いかもね
ってことだ。
477名称未設定:2011/01/05(水) 22:20:14 ID:OpWuH9/u0
NSOutlineViewとNSTextViewで発狂しそうになる。
478314:2011/01/07(金) 20:21:24 ID:uqncWShS0
> でも、「AppStore公式経由以外のインストール全面禁止」ぐらいの話にならないと、
> わざわざ、MacAppStoreへ登録する理由がないなぁ。
>
> http://www.apple.com/jp/downloads/
> ↑このページが閉鎖になるなら、少しは考えるかもしれないけど

ダウンロードのページが本当に閉鎖になった(ぐはっ
479名称未設定:2011/01/07(金) 20:31:37 ID:O0SsstVv0
そのページの利用者存在してたんだ。
480名称未設定:2011/01/08(土) 02:39:40 ID:aV8QZ7MM0
>>479
昔TeXとかダウンロードしたことある
481名称未設定:2011/01/08(土) 04:38:12 ID:xAry2FP00
>>478
禿は金の亡者ですから。
482名称未設定:2011/01/08(土) 18:11:38 ID:ue0EXfrY0
ランダム
483名称未設定:2011/01/08(土) 18:50:08 ID:it4NUfl+0
先週、Macを買ってきたパソコン初心者です。
もちろんプログラミングというものはまったくやったことはありませんが、
iPhoneのアプリを作れるようになるために、
MacのCocoaというものを使えるようになればと聞きました。
ネットでいろいろ読んでいると、
C言語という言語とObjective-Cという言語とCocoaという開発環境というものを使うということは分かってきました。

こんな無知な私にオススメの書籍ってありますでしょうか。
MacのReederというアプリに感銘を受けましたので、ああいうアプリをいつか作れるようになればと思っています。
484名称未設定:2011/01/08(土) 20:29:34 ID:kO5BVONE0
答えになってなくて申し訳ないけど、
パソコン初心者な人がプログラミングはかなり無理あると思う。

小学生1年生が大学の卒業論文書くようなもので。

本屋のMacコーナーやiPhoneコーナーにCocoa関連の書籍がいろいろあると思うから
まずは眺めてみるのは。
485467:2011/01/08(土) 20:40:14 ID:qd5UvB3c0
原因が分かった。

CoreAnimationLayerを有効にした状態だと、NSViewAnimationのうち
NSViewAnimationEffectKeyが動かない。これは仕様というには酷い気がする。
NSViewAnimationStartFrameKey/NSViewAnimationEndFrameKeyは動くけど。

CoreAnimationのopacity(CATransaction)側でいじるしかないんだね。

NSAnimationとCoreAnimationって、いまいち相性悪いのかなぁ。
486名称未設定:2011/01/08(土) 21:42:46 ID:xTf8JGxZ0
<<483
書籍は古いものが多いので最新のXcodeとInterfaceBuilderに合わない部分が多い。
本当に熟練になりたいのなら、本家Appleのサイト英語のドキュメントから理解して作成できるようになるべき
MAC買えば、辞書もあるしあとはネット環境あればお金使う必要ない
これからも開発環境は変化はしていくと思われる。
AppleはたぶんMSDNのように日本語のドキュメントまで整備しないとおもわれ
487名称未設定:2011/01/08(土) 22:37:44 ID:xLbEPkXGi
ネットに何でも情報あるからね、無駄な金使わないようにするのは大事
488名称未設定:2011/01/09(日) 00:50:43 ID:WEILXcJJ0
アーキテクチャの変節が酷すぎて、日本語訳なんて
追いつきません><
489名称未設定:2011/01/09(日) 11:28:50 ID:gtOUGkU80
>>483
たのしいCocoaプログラミング
490483:2011/01/10(月) 00:12:53 ID:xrUmjNRT0
>>489

この土日、缶詰になって本とインターネットを熟読しました。

たのしいCocoaプログラミングは2回読みました
半分しか理解できませんでした
サンプルプログラムを打ち込んでうまく動きましたが
動く理屈はいまいちよくわかりません

ここも読みました
http://vivacocoa.jp/objective-c3e/chapter3b.html
C言語というのを知っている人向けっぽいです

ここのBecome An Xcoderも2回読みました
http://homepage.mac.com/nsekine/SYW/software/learnCocoa/index.html
6割理解できましたが残りは謎です

これも全部読みました
E-14までは完全に理解できましたが
E-15以降は書き方がはしょって意味不明でした
http://homepage3.nifty.com/mmgames/c_guide/

以上、今のところ、なんのプログラムも組めません
おそらくまだまだ読書が足りないと思います
他にオススメの文献はありますでしょうか

491名称未設定:2011/01/10(月) 01:23:16 ID:T4e2rXl80
>>490
理解しようという意識が無いんじゃね?
その状態ではいくら読んでも全く意味がない。
492名称未設定:2011/01/10(月) 01:56:08 ID:z1+b5HGs0
やってみた方が早く覚える。
簡単なサンプルを作ってみれ。
493名称未設定:2011/01/10(月) 01:56:30 ID:hmEd+CNY0
>>490
目的意識が低い。
もうそのレベルの知識でいいから、MacかiOSの開発の仕事取ってきてしまうとか、
作りたかったアプリ作り始めるとかすればいいじゃん。それが一番手っ取り早いよ。
494名称未設定:2011/01/10(月) 02:16:43 ID:z1+b5HGs0
えっ、仕事取って来ていいの?w
じゃあ、俺も取って来るw
495名称未設定:2011/01/10(月) 09:22:43 ID:T4e2rXl80
じゃあ俺も。
496名称未設定:2011/01/10(月) 14:35:02 ID:WHl39S2Y0
>>490
> おそらくまだまだ読書が足りないと思います

足りないのは、読書じゃなくて、コードを組むことだ
497483:2011/01/10(月) 23:11:59 ID:xrUmjNRT0
たとえば、
たのしいCocoaプログラミング
の12-5-1:クラスのインスタンス化と初期化という節で、

MyObject* object;
object = [[MyObject alloc] init];

これがクラスのインスタンス化の基本って書いてあるんですけど、

この文をどのファイルのどこに書くのかってのが書いてないんですよね。
クラスのインスタンス化のときに、これを書くのはわかるんですけど、
具体的にどのファイルのどの箇所に書けばいいのかがさっぱりわからないです。

この本、
いままでプログラムをしたことがない人も対象になってるようですが、
本当でしょうか?
498名称未設定:2011/01/10(月) 23:19:29 ID:Epjlh2UO0
>>497
http://hmdt.jp/books/enjoyCocoa/index.html
目次拾ってきたけど、Lesson 12ってそれをどこに書くとかいうところじゃないんじゃねーの。
こういう入門本は著者が「こういう風に進めたらいいと思う」っていう
思想があるから、それからそれたこと考えると時間の無駄にしかならんぞ。
499483:2011/01/10(月) 23:32:28 ID:xrUmjNRT0
>>498
それてないと思います
本のとおりにやってるので、
実際にプログラムを組んでクラスのインスタンス化を行いたいので、
その箇所にたどり着いたんですよ
そしてさきほど書いたように、
どう書けばよいかという説明はあるんですが、
それをどこに書けばよいかという説明が無いんですよね
ですのでどんどんプログラムを書いて練習したいんですけど
そのしょっぱなでつまづいています
500名称未設定:2011/01/10(月) 23:36:54 ID:T4e2rXl80
>>499
向いてないんだよ。諦めな。
501名称未設定:2011/01/10(月) 23:41:39 ID:5OPeAMRK0
>>483,497,499のレスは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用する書き込みなので、
関係者以外は書きこまないで下さい。

                         霊長類研究所
502名称未設定:2011/01/10(月) 23:46:03 ID:xrUmjNRT0
そうですか残念です

Macユーザーは排他的と言われますが、まさにそのとおりでした・・・

503名称未設定:2011/01/10(月) 23:47:18 ID:q/h0lXVs0
>>499
プログラムを組むには、言語やライブラリ(MACでいえばCocoa)
だけではだめで、OSのアーキテクチャも知らないと。
さらにCPUに関しても知っていたほうがいい。

どんな、言語やOSでもCPUが同じならそのCPUの命令の実行がされるが
OSが違えばOSがそのCPUの命令をメモリの管理、表示などのデバイスの
制御を担当してくれるのでOSのサービスを知らないとだめ。
さらにOSのサービスも膨大になっているので、ライブラリが
かなり手助けしてくれる。
多方面から読書をどんどんやると、ここで偉そうにコメントしている
やつらを馬鹿にできるようにもなるよwww
504名称未設定:2011/01/10(月) 23:51:55 ID:WHl39S2Y0
>>499
とりあえず、main()関数の中に書け
505名称未設定:2011/01/10(月) 23:54:20 ID:T4e2rXl80
>>502
「お前らのせいで俺様がプログラムを覚えられない」ってか。
お前もMacユーザーの仲間入りだね。
506名称未設定:2011/01/10(月) 23:59:35 ID:j0BnF/Yi0
Windows板だったとしても同じだろうな、この調子じゃ
507名称未設定:2011/01/11(火) 00:07:49 ID:xrUmjNRT0

たのCocoって
プログラミング経験が無い人も対象って書いてるけど
あの内容は未経験者では理解出来ない
かなりはしょってる

わずか16ページでメモリ管理のことを書ききってるが、
プログラム未経験者がたったそれだけのページ数の説明で理解できるはずはない

あくまでも経験者向け

つまり読む本を変えたほうがいい
508名称未設定:2011/01/11(火) 00:15:28 ID:ENutfv/f0
>>507
理解できなかった奴が偉そうに分析するんじゃねえよ。
509名称未設定:2011/01/11(火) 00:17:19 ID:S4Q/yQGx0
>>490,>>507
けっきょく、それが言いたかったのか
IDでばればれだぞ
510名称未設定:2011/01/11(火) 00:22:51 ID:6npO9h4A0
日が変わったからIDも変わったと思ったのかww
511名称未設定:2011/01/11(火) 00:24:09 ID:hBtQtcsL0
まぁ事実だとは思うけど。
前に誰かが言ってたけどhmdtの人は、人に教える文章の書き方が上手ではない。
つか、iPhone開発ならiPhone板の方がいいんじゃないの?
まぁやる気はあるみたいだし頑張れ。
ググったらこんな人もいるぞ。

312 :名称未設定 :2010/06/11(金) 23:20:25 ID:gh7QPA2M0 (1 回発言)
IEでヤフー検索してた俺。
プログラムのプの字も知らん素人が勉強始めて8ヶ月。

出た!
App Storeに俺の作ったアプリが。
で早速低いレーティング、、、、。みなさんのiPhone汚してすいません。

けどまぁこんなもんかと何か納得。
512名称未設定:2011/01/11(火) 00:29:55 ID:HON+0UgK0
>>502
くれくれ君はご遠慮ください。
513名称未設定:2011/01/11(火) 00:33:58 ID:ENutfv/f0
自分の非を認められないやつはiPhoneアプリ開発には向いてないと思うけどな。

覚えられないのは本の所為
うまく動かないのはOSの所為
レビューが低いのはユーザーの所為
売れないのはAppStoreのシステムの所為
結婚できないのは女の所為

こんなやつばかり。
514名称未設定:2011/01/11(火) 00:35:52 ID:d6iX/RGi0
>>483
> 先週、Macを買ってきたパソコン初心者です。
> もちろんプログラミングというものはまったくやったことはありません

http://hissi.org/read.php/mac/20110110/eHJVbWpOUlQw.html
> 昔、MSXのBASICでガリガリとプログラム書いてました
> winもmacも両方並行して20年以上使い続けている俺
515名称未設定:2011/01/11(火) 00:37:38 ID:ENutfv/f0
>>514
wwwwww
516名称未設定:2011/01/11(火) 01:08:08 ID:k5EjlRM10
>>507の発言ってIDが変わったものとして別人としての発言だよね?文脈的に。
もろ貶めるための自演じゃないかw
517名称未設定:2011/01/11(火) 01:17:12 ID:HON+0UgK0
>>514
そのスレで、MSX BASICがCと変わらんとか言ってる奴は
たぶん、MSXすらしらないんだろうな。
オレは不可能、専門の講習受けて3ヶ月かかるとレスしても
よかったが、そんな空気じゃなかったw

ソースファイルやオブジェクトも無い、コンパイルも無い、
型も無ければ関数も無い。そこからcocoaアプリ作成じゃ
理解は遠いだろうな。
518名称未設定:2011/01/11(火) 01:47:10 ID:X6+MQLAzP
マックピーポーのココアで遊ぼうから始めるがよろし。
519名称未設定:2011/01/11(火) 23:12:24 ID:KgoNtjuv0
今ファイラーを作っています。
ファイルを右クリックしたときに出るコンテキストメニューと同じものを
キーボードショートカットでも表示したいんですが、何かいい方法はないでしょうか?
NSMenuのライブラリの中をずっと探しているんですが、適当なものが見つかりません。
どなたかご存じでしたら教えてください。
520名称未設定:2011/01/11(火) 23:27:56 ID:5yZ7Fn8L0
>>519

+[NSMenu popUpContextMenu: withEvent: forView:]
+[NSEvent mouseLocation]
-[NSApplication mainWindow]
-[NSApplication currentEvent]
-[NSWindow contentView]
-[NSView hitTest:]

このへんを組み合わせるとできるかな? どうだろ?
521名称未設定:2011/01/12(水) 00:44:50 ID:5p/A60uM0

iPhoneの開発も、このスレでいいの?そもそも?
他に板とかスレあったっけ?
522名称未設定:2011/01/12(水) 00:49:34 ID:YymqeZqX0
>>497
アプリケーションの起動プロセスは理解してる?
UIApplicationDelegateのデリゲートメソッドを調べるといいよ。
起動した時に呼ばれるメソッドで初期化の処理を書けばいい。

最初はシンプルなWindowベースのテンプレートからはじめるといいよ。
どこにコードを書けばいいのかもテンプレのソースのコメントに書いてある。
ViewControllerは設計概念が分かってから手をだした方がいいです。
523名称未設定:2011/01/12(水) 01:05:31 ID:eQlXv57e0
>>521
ここは?初心者じゃなければご無礼

[SDK]iPhoneアプリ開発初心者質問箱11[touch][iPad]
http://hibari.2ch.net/test/read.cgi/mac/1291077369/
524名称未設定:2011/01/12(水) 01:06:50 ID:zkmoWxXs0
>>522
なんか色々ずれてる気がする。まず、たのココは Mac が対象だぞw
525名称未設定:2011/01/12(水) 01:17:28 ID:YymqeZqX0
>>524
あらw iPhone開発スレと間違ったw
526519:2011/01/12(水) 23:25:23 ID:2oKmFt2b0
>>520
情報ありがとうございます。そのあたり当たってみます。
527519:2011/01/13(木) 23:56:21 ID:JXqX06Ld0
520さんから頂いた回答と聞きたかった内容がちょっと食い違ってた気がします。
ファイルを右クリックすると
・このアプリケーションで開く
・ゴミ箱に入れる
・情報を見る
とかいう内容が表示されるんですが、この一覧を何とかして取得することはできないでしょうか、
ということが聞きたかったのです。すみません。
528名称未設定:2011/01/14(金) 00:52:05 ID:ZqEfk7rh0
>>527
そんなことして、どうするの?意味ないでしょ。
529520:2011/01/14(金) 00:56:49 ID:hrWHFN9h0
>>527
それはなんというか、


作らずにFinder使え
530名称未設定:2011/01/14(金) 02:19:17 ID:ujAVp6Gm0
Finderの機能を呼び出したいのなら
SIMBLプラグイン作ってハックしろ
531名称未設定:2011/01/14(金) 18:06:18 ID:tSXtZGAr0
こんにちは、Cocoa初学者です。
ボタンを押したらsayHelloというメソッドが発生して、テキストフィールドに文字を書くプログラムですが、
.hファイルで、
(IBOutlet) id textField;
として、
textFieldというインスタンス変数を設定していて、それを
.mファイルで

- (IBAction) sayHello:(id)sender
{
NSString *moji;
moji = textField;

[moji setStringValue:@"こんにちは"];
}

とすると実行はできてうまく動くのですが、

NSString may not respond to setStringValue

.mファイルに
という黄色いメッセージが出ています。
これはどういう意味で何が原因なのでしょうか?
mojiを使わずに直接
[textFiled setStringValue:@"こんにちは"];
ならば問題ありませんが、勉強のため教えていただければ幸甚です。
532名称未設定:2011/01/14(金) 18:11:28 ID:rtxpYKyb0
>>531
型を指定してないから、コンパイラがtextFieldを何なのか理解できていないという事。
idではなくNSTextField*で定義すればOK。
533名称未設定:2011/01/14(金) 18:27:23 ID:32yM807d0
つか、なぜ NSTextField を NSString につっこむんよ?
534名称未設定:2011/01/14(金) 18:28:21 ID:rtxpYKyb0
>>533
ほんまや。根本的に間違ってるなw
535名称未設定:2011/01/14(金) 18:36:02 ID:vIuC3bsSP
なんとなく文字列っぽいからじゃない?
536名称未設定:2011/01/14(金) 18:46:31 ID:tSXtZGAr0
>>533
>>534
すみません、まだ学習2日目なもので、たぶん根本的にわかってないと思いますが、
分かる範囲で組んでみました

>>532
.hファイルのid をNSTextFieldに変えるとさらにエラーが増えました

mojiという変数にsetStringValueを使いたい場合、どうすればいいのでしょうか。
537名称未設定:2011/01/14(金) 18:49:29 ID:/QwNxQoK0
面倒だから、プロジェクトzipで固めてどっかにあげれば?
538名称未設定:2011/01/14(金) 18:53:27 ID:tSXtZGAr0

あ、わかりました、こうですね。

.h

(IBOutlet) NSTextFiled *textField;

.m

- (IBAction) sayHello:(id)sender
{
NSTextField *moji;
moji = textField;

[moji setStringValue:@"こんにちは"];
}

これでエラーがなくなりました。
みなさん、ありがとうございます。助かりました。
また見守ってください。仲間入りがしたいです!
539519:2011/01/14(金) 20:11:25 ID:HC1TS8FA0
言われてみればその通りですね。
Finderのプラグインを書くことにします。
ありがとうございました。
540名称未設定:2011/01/14(金) 21:07:59 ID:0VR4Hjwo0
>>538
[textField setStringValue:@"こんにちは"];
でいいんじゃ?
541名称未設定:2011/01/15(土) 02:33:27 ID:NEZgRDeG0
>>540
教科書の元々のプログラムがそうなってたんですよ

で、勉強のためにもう一つ変数を作ってみようと、あえてmojiという変数を使ってみて代入してみました。
mojiというのもNSTextFieldクラスのオブジェクトとして宣言する必要があったわけですね。

今日で学習開始3日目。
初日はC言語という言語の教科書を2回ほど読みました。
2日目でObjective-Cの勉強を始めました。
なんとか10日以内にマスターしてオリジナルのアプリをひとつくらい完成できればと思っています。

542名称未設定:2011/01/15(土) 14:17:40 ID:rjoetR0a0
>>541
10日以内にマスターするか。
プログラマーもなめられたもんだ。
543名称未設定:2011/01/15(土) 15:26:52 ID:o7mRoMKX0
>>542
他人を舐めたわけじゃなくて
自分を買いかぶりすぎてるんだろうと思うよ

そういう若さを取り戻したいもんだ
544名称未設定:2011/01/15(土) 15:53:17 ID:wgOf79oo0
objective-cはともかく、cocoaとcf含めたらとても無理。
545名称未設定:2011/01/15(土) 16:48:51 ID:3zSIy6J50
だな
546名称未設定:2011/01/15(土) 17:11:28 ID:ARBpxd45P
いいじゃないの。
アドレス帳とか1週間ぐらいでで来たよ。
coredata使ったけど。
547名称未設定:2011/01/15(土) 17:22:21 ID:rjoetR0a0
>>546
それをマスターしたと言うのか?
548名称未設定:2011/01/16(日) 21:49:30 ID:1E12uNUP0
QuickTime Playerの全画面表示で出るような、マウス重ねたときだけ現れる
コントローラ、実際に書いてみたいのですが、とんと検討がつきません。

下にViewを置いて、上の透明ViewのRectに入ったときだけ表示、とかいう方
法になるのでしょうか?

どこか有用なサンプルをご存知でしたら教えてください。
549名称未設定:2011/01/17(月) 00:19:22 ID:EQVG+bde0
>>548
VLC
550名称未設定:2011/01/17(月) 00:33:16 ID:GBWLxRhY0
ドキュメントクラスとウインドウクラスに分けてアプリを作成した場合
ドキュメントクラスのメンバーにアクセスする場合どうしたらいいですか
通知とか複雑なことしたくないので、MFCでいうGetDocument()
みたいなもの用意されていないみたいだし
551名称未設定:2011/01/17(月) 01:00:36 ID:EQVG+bde0
File's Owner
552名称未設定:2011/01/17(月) 21:54:58 ID:GBWLxRhY0
>>551
ヒントどうもです
ウインドウコントローラー側のクラスで
IBOutlets NSPersitentDocument* m_pdocument;
を宣言し、IBで関連ずけをして
ウインドウコントローラー側では
MyDocument* pMydocument = (MyDocument* )m_pdocument;
propaty = [pMydocument get_propaty_method];
で取得できそうですね


553名称未設定:2011/01/17(月) 22:52:54 ID:vUOGG/7Z0
>>552
そういった場合、通常はFile's OwnerがNSWindowControllerになる。
で、NSWindowControllerにdocumentというメソッドがあるので、それでNSDocumentを参照できる。

ちなみに、MFCはDocument-Viewパターン、CocoaはMVCパターンなので、MFCと同じ構造になりにくいと思うよ。
554名称未設定:2011/01/18(火) 12:45:46 ID:LlD2UVfN0
>>553
thanksです
プロトタイプで最初テスト的にプロジェクトを作成しているときに
documentというのが自動で出てきた記憶があったのですが、いざ
作成をはじめたものにはなかったのでなぜだかわからなかったのですが
そういう理由だったのですね。
MFCのアプリも最初はいろいろとまどいながらそれなりの流儀にしたがって
作成していましたが、納得していたわけではないので作成しやすい、読みやすい
構造を追求していきたい。
555552,554:2011/01/21(金) 01:57:46 ID:GB5HMhJB0
>propaty = [pMydocument get_propaty_method];
だめだな。ビルド成功しても実行エラーになった。わからないので
結局extern MyDocument* のポインタでグローバル宣言で
初期化時にselfをセットしたらw出来たが。
NSWindowControllerでウインドウ生成するとIBと相性が悪くなった気がする
NSThreadでスレッド生成もパラメータのNSArrayは引き渡し時にかなり厳密に
チェックされているのでキャストみたいにごまかしてデータポインタ渡すことできないし
556名称未設定:2011/01/21(金) 08:38:29 ID:pDerP2910
>>555
>NSWindowControllerでウインドウ生成するとIBと相性が悪くなった気がする
使い方間違ってるだけだから

これ以降はチラシの裏に書いてね
557名称未設定:2011/01/21(金) 09:17:36 ID:5gZduV4A0
>>555
駄目だと途端に口調が変わるという
558名称未設定:2011/01/21(金) 20:28:56 ID:Z7Z5Jw1W0
>>555
この人、いったいどんなコード書いてるんだろ?

まあ、
IBOutlets NSPersitentDocument* m_pdocument;
MyDocument* pMydocument = (MyDocument* )m_pdocument;
propaty = [pMydocument get_propaty_method];
などと書いてる時点で、かなりあやしいわけだが
559名称未設定:2011/01/21(金) 21:11:40 ID:YqUainPm0
信者はノーチシケーションでself特攻かけるなり、型通りのカタブツは
NSValue系でくるむなりしてブンブン投げまくればいいと思うよ
560名称未設定:2011/02/09(水) 22:28:01 ID:EgXXV5Gx0
rangeOfData:options:range:
を使って実装したコードをLeopard互換にしなければならなくなってて悩み中。
NSDataはNSDataReadingMappedで読み出しているギガバイト単位の巨大ファイル。
検索はBackwardで行いたい。
地道にNSDataを分割してRangeで取り出して実装したとりあえず動くコードはある
んだけど、ファイルの中頃より前にある場合はrangeOfDataに比べるとかなりのろい。

なんかいい方法ないかな?
561名称未設定:2011/02/10(木) 00:18:59 ID:HsdbCiO20
NSFileHandle は?
562名称未設定:2011/02/10(木) 00:34:03 ID:mskrhmvk0
そこまで容量の大きなデータなら、普通にファイルからデータを読み出して行った方がいいんじゃない?
563名称未設定:2011/02/10(木) 00:50:59 ID:mskrhmvk0
ところで、そのデータの検索って、何な前提条件みたいなのってないの?
何もないなら、単純にファイルの頭から力技で検索するしか手段がないわけだが
564名称未設定:2011/02/10(木) 02:35:41 ID:A1sR8e3/0
NSFileHandleを使った実装ではパフォーマンスが出ませんでした。
http://developer.apple.com/library/mac/#samplecode/MapLargeFile/Listings/MapLargeFile_c.html
を参考にした、mmapを利用した実装で、strrchrを使って作成したものは
今の地道にNSDataを分割して調べていく(それも中ではstrrchrを使っているのだけれど)
方法とほとんど同じ速度で、rangeOfDataの倍ぐらいの時間がかかります。

前提条件はほぼありません。パケット形式のストリームデータでオーバーフロー
するカウンタ(増加値は一定では無い)があり、それを逆方向に任意の場所に辿っ
て行きたいのです。順方向はrangeOfDataに近い速度が出るのですが、、、
565名称未設定:2011/02/10(木) 02:43:23 ID:HsdbCiO20
CFDataFind のソース見てチョメチョメすれば?
566名称未設定:2011/02/10(木) 04:32:55 ID:MNarqgnt0
>>564
ヌルターミネートされた文字列なのか?strrchrは元々効率悪いんじゃないか?
567名称未設定:2011/02/10(木) 09:23:26 ID:A1sR8e3/0
ありがとうございました。CFDataFindがrangeOfDataの実装のようですね。
__CFDataSearchBoyerMoore
あたりのソースをちょっと当たってみます。
568名称未設定:2011/02/10(木) 21:49:18 ID:uo/khWDl0
それにしても、情報が断片的過ぎて、フォローのしようがない話だなぁ
まぁ、あとは自分でなんとかしてね
569名称未設定:2011/02/11(金) 00:30:01 ID:ulfelT040
>>564
・パケット形式のストリームデータである
 →パケット単位でデータを整理可能?
・オーバーフロー するカウンタがある
 →今回の検索と何の関係が?
・逆方向に任意の場所に辿る
 →なぜ逆方向?

軽く3つも出てきたんだ。前提条件がほぼないどころか、まだまだあるんじゃないのか?
パフォーマンスチューニングとは、こういったデータの特性に着目して、最適なアルゴリズムを探すような作業だ。
発想の転換が必要な場合もある。既存のライブラリに頼ってるだけじゃダメだよ。
そもそも、rangeOfData:options:range:だって、まだまだ遅かったんじゃないのか?
570名称未設定:2011/02/19(土) 15:57:30 ID:B7UA768K0
NSDocumentベースのアプリですが(MyDocument)簡単な設定画面を表示しようと思い苦戦です
画面自体は最前面に出ますが、フォーカスが後ろの画面のままです。
いろいろ調べるとDocumentベースでなければNibLoadingというサンプルで
別画面を出してフォーカスも移っています。(ThirdWindow.xibを最終的に
makeKeyAndOrderFrontで)同じやり方でDocumentベースだとだめですね。
ドキュメントサンプルでプリンタのPage settingsでは上から出てくる感じで
設定画面がでます。
どなたかそんなやり方をご存じの方ヒントでもお願いします
571名称未設定:2011/02/19(土) 16:31:10 ID:KnLrjZfT0
テキストフィールドなり最初のフォーカスを指定出来なかったっけ?
572名称未設定:2011/02/19(土) 16:42:56 ID:AXaEHtkp0
Windowと思っているものがNSPanelでutility(KeyWindowになれない)になってる
573名称未設定:2011/02/19(土) 19:41:10 ID:H8VrscWM0
QTMovie でmpgを再生しています。

通常、データの供給はmovieWithFileでファイルを指定しますが、
ファイルへのアクセスを自アプリ側で制御することはできないでしょうか?

例えばファイルが独自アーカイブの中にあるとか、ファイルがスクランブル
されているなどの状況で、アーカイブからの取り出しやスクランブルの
解除だけを自アプリ側で行い、そのデータを(いったんディスク上に書き
出したりしないで)直接QTMovieへ渡したいのです。

WindowsのDirectShowではストリームに自前のFileReaderみたいなのを
セットする手法が用意されていますが、似たような機構は無いでしょうか?
目的が叶えば他の手法でも問題ないです。

よろしくお願いします。
574名称未設定:2011/02/19(土) 20:27:43.67 ID:V/qIILm40
リファレンスを読めば良いかもね
575名称未設定:2011/02/19(土) 21:03:28.06 ID:vdX1Ak7+i
zipファイルの中身を直接読むフレームワークとか公開してるのがあったから
そういうのを使いたいってことかな?
ピクチャービューアのフリーウェアなんかたまに実装してるけど。
576573:2011/02/19(土) 21:45:15.82 ID:H8VrscWM0
>>575
多分そうかと思うんですが。

Javaだとinputstreamを継承してreadとかを上書きしちゃえば良いような話でしょうか。

ObjCというかCocoaではなんか流儀があるのか、とっかかりがイマイチわかんなくて…

577573:2011/02/19(土) 21:53:58.17 ID:H8VrscWM0
>>575
もうちょっと追記ですが、知りたいのは(仮に)Zipから読み込んだとして、それをQTMovieに流し込む方法です。

QTMovieが自分でファイルを読み込んでいるところをアプリ側にコールバックして欲しいんです。

578名称未設定:2011/02/20(日) 00:19:17.35 ID:WFdUw7nj0
zipからNSDataなりで読み込んでQTMovieを作成すればいいんじゃない?
QTMovieの作成はなにもファイルからだけじゃないよ。
579名称未設定:2011/02/20(日) 01:03:04.73 ID:NO+9sx990
QuickTime API直接叩けばできるんじゃないかな
って詳しいことは何も分からんけど
580573:2011/02/20(日) 11:27:48.27 ID:/7LVF9sy0
>>578
話がちょっとそれちゃうんですが、NSDataの話が出たので。

NSString *path = @"***.mpg";
NSError *err=nil;
[QTMovie movieWithFile:path error:&err];
上記は成功して、

NSData *data = [NSData dataWithContentsOfFile:@"***.mpg"];
NSError *err=nil;
[QTMovie movieWithData:data error:&err];
こちらは失敗してしまうんです。

errはNSOSStatusErrorDomainでcode=-2048
ぐぐると

Error Domain=NSOSStatusErrorDomain Code=-2048 UserInfo=0x10a2140 "The file is not a movie file."
って言われても…

[data length]は***.mpgの実ファイルの正確な長さを返すので、NSDataは正常だと思うんですが。
581名称未設定:2011/02/20(日) 17:12:03.98 ID:hMMVNg5X0
>>580
意味はわからんがこうしてみるとか。
NSData *data = [NSData dataWithContentsOfFile:@"***.mpg"];
NSError *err=nil;
id dataref = [QTDataReference dataReferenceWithReferenceToData:data name:@"a.mpg" MIMEType:nil];
id mov = [QTMovie movieWithDataReference:dataref error:&err];

同じくQTMovieについてなんだが、
QuickTime Playerなら再生できるMP4がQTMovieのmoveWithURLで開いても
Code=-2010 "The movie contains some invalid data."でエラーになるのはなぜ?
ファイルのコーデックはH.264、MPEG 4 High Efficiency AACとなってる。
582名称未設定:2011/02/20(日) 17:24:18.48 ID:YLDVq4R00
QT の Plugin を全部外して再生できる?
583573:2011/02/20(日) 17:43:15.20 ID:/7LVF9sy0
>>581
とりあえずそれでできました。ありがとうございます。

あとはNSDataを自前で用意できるか研究してみます。
584581:2011/02/20(日) 18:07:21.40 ID:hMMVNg5X0
>>582
~/Library/Quicktime/
/Library/QuickTime/
からcomponentファイルを退避させてみたけど、同じ様にPlayerなら再生できてQTMovieならエラーがでる。
退避させたことで、flvが再生できなくなったからプラグインが機能しなくなってると判断した。
flvファイルはプラグインが有効ならQTMovieでも問題無いんだよね。

プラグインはこんだけあった。
AppleintermediaCodec, AppleMPEG2Coder,
DivX Decoder, DivX Encoder,
Flip4MacWMVAdvanced, Flip4Mac WMV Export, Flip4Mac WMV import,
AC3MovieImport, Perian
585570:2011/02/20(日) 20:12:55.00 ID:9PW1gn2I0
半分は解決。メニューの「Page Settings」のダイアログは
[NSApp beginSheet:....]というAPIを使用すると同じように上から下りてくる
モーダルダイアログとなります。サンプルはIdentitySample
そのサンプルとの違いは表示しようとするリソースをNSWindowsControllerクラス
でinitWithWindowNibNameでロードしていたがNSWindowControllerのwindowメンバーでは
モーダル表示はだめ。メンバーにNSWindowを宣言しIBで関連づけたものを
使用するとうまくいく。前者ではNSApplication.mのどこかでASSERTIONとなる
586581:2011/02/20(日) 21:43:20.62 ID:hMMVNg5X0
>>585
NSWindowControllerのwindowとIBのNSWindowが繋がってないからnilになっているのでは?
xibファイルをシート専用で別に作るのなら、IBで開いてFile's OwnerのクラスをNSObjectからNSWindowControllerへ変えて、
File's OwnerのOutletのwindowとNSWindowを接続してみたら上手く行くかも。
さっきやってハマったのがシート用に用意したWindowのVisible At Launchのチェック外し忘れでおかしくなった。
で、どうせシート上のコントロールに対する処理が必要になるから、NSWindowControllerから派生したクラスを作成して、
File's Ownerをそっちに変更する。
その派生クラスのinitを
- (id)init {
if (self = [super initWithWindowNibName@"***"] ) {
}
return self;
}
にすれば上手くいくと思うけど、意図が違う?
587570:2011/02/21(月) 18:43:21.48 ID:wIGjcrly0
581殿
レスありがとうございます。nilでないかどうかは常にチェックしてやっています
NSWindowControllerから派生したクラスでモーダル表示関数を呼ぶと、gdbのメッセージに
モーダルウインドウが必要...みたいなメッセージがでるので、どうもNSWindowController
でロードしたウインドウはすでにモードレス属性がついているのかと疑っています
(そういう属性はInspectorではないのだが)
確かにシート上のコントロールに対する処理が必要なので、これはまだ未解決でした
File's Ownerの変更はやったことがないのでやってみます。
これからもよろしくおねがいします
588名称未設定:2011/02/21(月) 19:48:13.66 ID:8VP1en0V0
>>587
> NSWindowsControllerクラスでinitWithWindowNibNameで
> ロードしていたがNSWindowControllerのwindowメンバーではモーダル表示はだめ。
> File's Ownerの変更はやったことがないのでやってみます。

NSWindowControllerオブジェクトをinitWithWindowNibNameで生成しておきながら、
File's Ownerを変更していない辺りが、なにか変だと思うのだが。
589581:2011/02/21(月) 20:07:19.10 ID:mxq2Ndtc0
>>587
>派生したクラスでモーダル表示関数を呼ぶと
この文章が気になるが、俺はこんな感じのコードを書いてみた。
IB上でFile's Owner(NSWindowController)のwindowアウトレットとNSWindowを接続してないと、
sheetがnullになって"Modal session requires modal window"が出る。

#import <Cocoa/Cocoa.h>
@interface プロジェクト名AppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
NSWindowController *windowController;
}
@property (assign) IBOutlet NSWindow *window;
- (IBAction)showSheet:(id)sender;
@end

@implementation プロジェクト名AppDelegate
@synthesize window;
- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo {
}
- (IBAction)showSheet:(id)sender {
if (!windowController) {
windowController = [[NSWindowController alloc] initWithWindowNibName:@"MySheet"];
}
NSWindow *sheet = [windowController window];
NSLog(@"### : %@", sheet);
SEL endSelector = @selector(sheetDidEnd:returnCode:contextInfo:);
[NSApp beginSheet:sheet modalForWindow:self.window modalDelegate:self didEndSelector:endSelector contextInfo:nil];
}
@end
590名称未設定:2011/02/23(水) 20:01:21.90 ID:vdkmjbwk0
新規Mac OS X Cocoa Applicationプロジェクトを作成して、〜AppDelegateに以下を書いただけなんですが、
OpenPanelは一瞬チラッと表示してすぐ消えてしまいます。Handlerも呼ばれてません。
Bug Reportすべき?と思ってますが、バグじゃなくて何か間違ってますでしょうか?

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
[[NSOpenPanel openPanel] beginWithCompletionHandler: ^void( NSInteger result ){
NSLog( @"OpenPanel did end with %i", result );
}];
}
591名称未設定:2011/02/23(水) 21:21:16.27 ID:e8mDBIQt0
applicationDid...を抜けるとopenPanelがautoreleaseされて、消えてると思う。
ブロック内でオブジェクトを使うとretainされるから、そういうコードにしたら消えなくなる。
詳しく知らないのでblocksでググるか、他の人の回答に期待してくれ。

id panel = [NSOpenPanel openPanel];
[panel beginWithCompletionHandler:^(NSInteger result){
NSLog( @"OpenPanel did end with %i", result );
NSLog(@"%@", panel);
}];
592名称未設定:2011/02/23(水) 21:30:33.54 ID:vdkmjbwk0
Oh!なるほど言われてみればそうですね。
retain入れただけで消えなくなりました。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
NSOpenPanel* openPanel = [[NSOpenPanel openPanel] retain];
[openPanel beginWithCompletionHandler: ^void( NSInteger result ){
NSLog( @"OpenPanel did end with %i", result );
[openPanel release];
}];
}

ブロック内でのオブジェクトの扱いもちゃんとガイドライン読んでみます。
ありがとうございました。
593名称未設定:2011/02/23(水) 21:44:02.78 ID:e8mDBIQt0
>>592
retainは要らんよ。>>591見てもらえばわかるけど、ブロック内でアクセスしたら自動的にretainされるはず。
極端な話、ブロック内にopenPanel;書いておけばいいけど、普通は選択したファイル取得用に
openPanel.URLsとか書くよね。
594名称未設定:2011/02/23(水) 22:09:31.05 ID:vdkmjbwk0
すいません。だびだびありがとうございます。その通りです。

ただ、GCを必須にしてみると、>>591でも表示後しばらくすると消えました。
ブロック内の自動retainに依存せずに明示的に保持はしたほうが良さそうです。
595名称未設定:2011/02/23(水) 22:09:57.41 ID:vdkmjbwk0
×だびだび
○たびたび

ふう・・・
596名称未設定:2011/02/23(水) 22:37:52.09 ID:e8mDBIQt0
>>594
これは失礼。おっしゃる通り参照カウント方式の時だけ、retainするって書いてあった。
けどさ、GC環境だとretain,releaseは何も動作しないわけで、実際GC必須にしてやってみたとき
メインウィンドウをアクティブにすると、OpenPanelが消える。
明示的に保持するってのは、メンバ変数に保持したってこと?
597570:2011/02/24(木) 00:34:48.02 ID:iN0anFoN0
レスしていただいた方ありがとうございました。
「File's Ownerを変更していない辺りが」完全初心者でした。
Cocoaさわり始めたころしくみについて一度はつまずきながら試行錯誤で
解決したことがありましたが、今回は基本理解していないのが露呈されました
598名称未設定:2011/02/24(木) 01:33:54.79 ID:E0NDJpfO0
>>596
>明示的に保持するってのは、メンバ変数に保持したってこと?
そうです。もしくは
static NSOpenPanel* openPanel = [NSOpenPanel openPanel];
でも大丈夫なようです
説明不足ばっかりですいません。
599名称未設定:2011/02/24(木) 11:38:17.55 ID:QXpAv0eh0
pyobjcで質問です。
TestAにラベルをTestBのIBActionにボタンを繋げています。
class TestA(NSObject):
label = IBOutlet('label')
def applicationDidFinishLaunching_(self, sender):
self.hello('Hello')
def hello(self, sender):
print sender

class TestB(NSObject):
@IBAction
def world_(self, sender):
t = TestA.alloc().init()
t.hello('World')
は問題なく動くんですがhello()を
self.label.setStringValue_(sender)にすると'World'が反映されません。
というかlabelがNoneになってしまいます。
どこを直せばいいんでしょうか?
600名称未設定:2011/02/24(木) 11:50:38.21 ID:rNiiQoj20
Pythonスレで聞いたほうがいいかも。
601名称未設定:2011/02/24(木) 16:24:52.24 ID:0r204mCb0
まったく見当違いなレスしてるかもしれないが、

TestAはアプリケーション起動時に勝手に作られるはずだから新規にalloc().init()しちゃ駄目じゃね?
602名称未設定:2011/02/24(木) 17:02:01.08 ID:3FZ7BZq00
これ、Pythonの構文なの?

>>601
IBでTestAを配置してるなら起動時にTestAのインスタンスが勝手にできるよね。
603名称未設定:2011/02/24(木) 17:14:27.71 ID:0r204mCb0
というかIBActionをTestAの方に付けちゃえばTestB要らなくね?
あとsourceforgeのPyObjCのドキュメント見てるんだけど、
@IBActionになってるところは@objc.IBActionじゃないのかな。

class TestA(NSObject):
 label = IBOutlet('label')
def applicationDidFinishLaunching_(self, sender):
@objc.IBAction
def hello_(self, sender):
 self.label.setStringValue_("world")

こんな感じ?
604名称未設定:2011/02/24(木) 17:15:51.92 ID:0r204mCb0
ああ、>>603のコードだとapplicationDidFinishLaunching_も要らないな。

これでIBで全部繋げばボタン押した時にラベルが"world"になるんじゃないかな。
605599:2011/02/24(木) 22:51:31.81 ID:QXpAv0eh0
>>601,602
あ、alloc()しちゃダメなんですか?
これしないと怒られるんですが。
>>603
いやそれはそうなんですが別のクラスからラベルをコントロールしたいんですよ。

基本pythonでGUIだけIB使おうと思ったけど
やっぱObjective-C一から勉強しないとダメですね。
出直してきます。
606名称未設定:2011/02/24(木) 23:03:48.14 ID:Z3Tfrji80
>>605
手間を考えるとObjective-Cを覚えた方が早いぞ。
それほど難しくも無いし。
607名称未設定:2011/02/25(金) 04:09:47.84 ID:GDjDDuVz0
>>605
TestBからコントロールするならTestBにIBOutlet作ってTestAに繋げるとか。

IBActionで渡されるsenderは呼び出し元だから、勝手に自分のパラメーター入れて直接呼び出すのは行儀が悪い。
608名称未設定:2011/02/25(金) 04:18:56.75 ID:GDjDDuVz0
allocしないと怒られるのはIBでインスタンス作ってないとエスパー。

何年か前にpyobjcでCocoaアプリケーション組んだけど、Cocoaのドキュメントは殆どobjcだから、読める程度には勉強しておくと理解が早まると思う。

あと、cocoaruby(だっけ?)のドキュメントも役に立った。
609名称未設定:2011/02/25(金) 19:03:38.55 ID:DWTKkeHe0
タイトルバーの、緑の+ボタンは有効にしたまま、ウインドウの右下のリサイズの
掴むところを無効にしたいのです。

どうすればいいでしょうか? よろしくお願いします。
610名称未設定:2011/02/25(金) 20:03:03.10 ID:SPgLEIjB0
NSWindowのサブクラスを作る
611名称未設定:2011/02/25(金) 23:09:45.31 ID:DcXgtudu0
>> 609

[_window setShowsResizeIndicator:NO];
612名称未設定:2011/02/26(土) 10:38:39.77 ID:z6o7SiC30
>>611
インジケーターを隠してもウィンドウ右下を掴んでリサイズできてしまいます。サブクラスを作りましょう。
613611:2011/02/26(土) 13:38:13.19 ID:dWlvYZmP0
>>612

あ、そうか。隠すだけじゃ駄目だね。
だったらサブクラス化するかなぁ。

-(NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize

で同じサイズを返すって手もあるけど。
614名称未設定:2011/02/26(土) 13:52:03.93 ID:6JeiGBKe0
リサイザブルをオフにしてウインドウがアクティブになるたび「緑色のボタン」にsetEnabled:YESを投げるとどうなるんだろうと、今思いついたことを書き込んでみる
615名称未設定:2011/02/26(土) 14:37:10.29 ID:z6o7SiC30
緑のボタン(zoom)を有効にしつつドラッグでのリサイズ禁止なら
イニシャライザでminSizeとmaxSizeを同じにして、resizeIndicatorを隠して

- (void)performZoom:(id)sender {
 [self setMinSize:NSZeroSize];
 [self setMaxSize:NSZeroSize];
 [super performZoom:sender];
 NSSize curerntSize = [self frame].size;
 [self setMinSize:curerntSize];
 [self setMaxSize:curerntSize];
}

みたいにオーバーライドすればいいんじゃないかな。試してないけど。
これだとウィンドウメニューからの拡大/縮小も生きてるはず。
誰かTwitterにmac_dev_jp作ってよ。
616609:2011/02/26(土) 17:08:50.90 ID:+/fowfIQ0
ありがとうございます。

なんか一筋縄ではいかないようなので、とりあえず>>611氏の方法で隠しておきます。

自分の用途だと、非表示で掴めるというのは、それはありと言えばありなので、
これで十分かも
617名称未設定:2011/02/26(土) 23:49:30.42 ID:z6o7SiC30
えっ
618名称未設定:2011/02/27(日) 01:08:24.96 ID:gZaJGAFD0
>>615
> 誰かTwitterにmac_dev_jp作ってよ。

文字数制限あるとかえって不便じゃないか?
ソースコードとかどうする?
619名称未設定:2011/02/27(日) 07:09:57.25 ID:xxecSe490
>>616
ちょっと試してみたけど

window delegate で
- (void)awakeFromNib {
defaultSize = [window frame].size;
[window setShowsResizeIndicator:NO];
}


- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize {
return zooming ? frameSize : defaultSize;
}

- (NSRect)windowWillUseStandardFrame:(NSWindow *)window defaultFrame:(NSRect)newFrame {
zooming = !zooming;
return newFrame;
}
を実装すればできますよ。
lionでも、これでいけるのでは?

620名称未設定:2011/02/27(日) 10:18:12.45 ID:rlADheSo0
おおいけるね。素晴らしい。
621名称未設定:2011/02/27(日) 11:08:11.66 ID:svYlZ3n50
ウインドウリサイズのアニメーションって、皆さんどちらを使いますか?

- (void)updateWindow:(NSWindow*)theWindow frame:(NSRect)newRect animate:(BOOL)anim
{
if (NSEqualRects([theWindow frame], newRect)) return;

#if USEWINDOWANIMATOR
if (anim) [[theWindow animator] setFrame:newRect display:YES];
else [theWindow setFrame:newRect display:YES];
#else
[theWindow setFrame:newRect display:YES animate:anim];
#endif
}

10.6.6だと、後者のほうがスムースでゆっくり、前者は早くて荒い感じ。
ただ、後者はBlocking?みたいで処理待ちになる。
前者は中身のリサイズが最初に終わってしまうケースが散見されて・・・
イマイチなんですけど。

622名称未設定:2011/02/28(月) 11:44:43.43 ID:jxiDFIyv0
619です
zoom状態でresizeできてしまうというbugがあったので訂正します。

- (void)awakeFromNib {
currentWindowFrame = [window frame];
[window setShowsResizeIndicator:NO];
}

- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize {
return zoomed ? zoomedWindowSize : currentWindowFrame.size;
}

- (NSRect)windowWillUseStandardFrame:(NSWindow *)aWindow defaultFrame:(NSRect)newFrame {
NSRect resultFrame = zoomed ? currentWindowFrame : newFrame;
zoomed = !zoomed;
if (NSEqualSizes(zoomedWindowSize, NSZeroSize)) {
zoomedWindowSize = newFrame.size;
}

return resultFrame;
}

- (void)windowDidMove:(NSNotification *)notification {
currentWindowFrame = [window frame];
}

623名称未設定:2011/02/28(月) 12:38:48.35 ID:Ic+nM7ch0
モーダルダイアログを作ってます。runModalForWindow の実行前に×ボタンに
アクションを設定したいのですが(キャンセルの意味で)、IBでは×ボタンから棒を
のばして設定することは出来ないようです。

何かCocoaのAPIを使って出来ますか?
624名称未設定:2011/02/28(月) 13:07:07.16 ID:hvHT3uhh0
>>623
IBで設定できると思うし、NSButtonにaction,targetを
設定できる。

とおもったら、タイトルバーのxボタンか。
NSWindowのNotificationがいいかな。
- (void)windowWillClose:(NSNotification *)notification
625名称未設定:2011/02/28(月) 16:31:47.19 ID:kiMnwwIMi
ここで言うのもなんだけど(笑)、Javascriptを略して「ジャバスク」って言うのやめようよ。
「ジャバスクの〜」「ジャバスクが〜」「ジャバスク、ジャバスク」って格好悪すぎ。

最初はみんな略さないんだけど、1人が略し始めるとみんな言い出す始末。
626623:2011/02/28(月) 18:21:16.96 ID:Ic+nM7ch0
>>624

NSPanelのサブクラスを作ってwindowWillCloseを定義したのですが、呼ばれません…。

@interface OrePanel : NSPanel
//いろいろ部品とか
@end


@implementation OrePanel

//他の処理

- (void)windowWillClose:(NSNotification *)notification{
 //×ボタンでここが呼ばれることを期待している
 [[NSApplication sharedApplication] stopModalWithCode:0]; //ゼロを返すキャンセルボタンと同等のコード
}

@end


大まかなコーディングですが、なにか間違ってますか?
IBでデザインした他のボタンや部品は思った通りに動いているようです。

627名称未設定:2011/02/28(月) 19:59:49.13 ID:5A9QL/vC0
windowShouldClose
628623:2011/02/28(月) 20:13:20.00 ID:Ic+nM7ch0
>>627
それが呼ばれました。やりたいことが出来ました。
ありがとうございます。
629名称未設定:2011/03/03(木) 16:14:25.54 ID:GtS1LGBB0
NSURLConnection ってメインのイベントループじゃなくて、スレッド作ってそっちで呼び出したり、
あとポーリングでdidReceiveResponseが来るまで待つようなコードは不可でしょうか?

メインスレッドからのコネクション生成&ポーリングしない書き方でしかうまくいかないのですが…
630名称未設定:2011/03/04(金) 02:31:16.31 ID:8eY0D5Sj0
>>629
run loop に付いて調べて下さい。
ちゃんと理解できればどちらもできますし
(ポーリングは別スレッドからじゃなきゃダメだけど)、
理解しなければどちらも出来ません。

正直 run loop とか面倒だし汎用性ないし
お手軽に済ませる以上のことするなら
libcurl とか使った方が良いような気もする。
631名称未設定:2011/03/09(水) 12:26:14.58 ID:RV7/DnTC0
異なったサブメニュー項目の中のアイテムに、同じショートカットキーを割り当てられないのが
すごく不便・・・。

たとえばFileメニュー内のタブを閉じるにcmd+wを割り振ると、Windowメニュー内にcmd+wを
割り当てても有効にならない。

なんか勘違いしてますか?
632名称未設定:2011/03/09(水) 12:30:11.09 ID:sWh3ELjN0
えーと、なんとかレスポンダー
633名称未設定:2011/03/09(水) 12:51:01.15 ID:RV7/DnTC0
>>632
どっかかりどうもです。
調べてみます
634名称未設定:2011/03/09(水) 13:00:08.20 ID:ZiHTMMtN0
どっかかりって何ぞ?
635名称未設定:2011/03/09(水) 19:25:51.80 ID:TzlhOGov0
>>631
なんか勘違いしてると思うよ。
メニューを開かずに、あるコマンドを実行するのがショートカットなんだから。
同じショートカットに2つのコマンドが割り当ててあったら、どっちを実行していいのか分からないでしょ?
636名称未設定:2011/03/09(水) 21:03:27.29 ID:ZiHTMMtN0
>>635
FirstResponderになっているViewによってメニュー項目の文字を変えろ
という意味だろ。
637名称未設定:2011/03/09(水) 21:10:34.67 ID:TzlhOGov0
>>636
えーと、、、何の話?
ショートカットの話じゃなかったの?
638名称未設定:2011/03/09(水) 21:18:50.41 ID:ZiHTMMtN0
ごめん、俺の勘違いだ。
そもそも質問の内容がおかしいわな。
Macのメニューシステムを理解してない。
639名称未設定:2011/03/09(水) 22:43:45.36 ID:otin6WQE0
タブがあるWindowAでcmd+wはタブを閉じる。
別の単なるWindowBではWindowを閉じる。

ってことじゃないの?
だから、cmd+wで受けるアクションを乗っ取ればいいかと。
640名称未設定:2011/03/09(水) 22:58:24.69 ID:ZiHTMMtN0
>>639
俺も最初はそう思ったんだけど、>>631をよく読むと
同じショートカットキーを持つMenuItemを2つ作りたいという事らしい。
641名称未設定:2011/03/10(木) 10:16:56.58 ID:Q9fYfl6j0
すいません、教えてください。

キーボードの入力を受け取って、何か仕事をさせたいのですが…
ttp://www.yokada.net/blog/311
ttp://hmdt.jp/cocoaProg/AppKit/NSEvent/NSEvent.html#section02

ここらみたいに、キー入力した結果をNSLogに表示する、ってサンプルは
いくつか見つけまして、
猿マネですが作れました。あと、キーの種類を取得することも。

ところで、NSLogじゃなくて、ウィンドウ上のテキストボックス(というか、
自分のイメージでは単なる四角いマス目)に表示させようと思ったら、
あと何をしなきゃいけないですか?

ふつーにテキストボックスに直接入力する、ってことじゃないのです。
例えば、
aのキーを押したら、画面に「あああああああ」って表示される、とか。
もしくは音が鳴る、とか。


たのココはTiger版のを持ってます。
PerlとかPHPとかJavascriptやったらうちも知っといやすけど、
って感じです。
しょうもないこと聞いてんだろなーとは思いますが、やさしくしてください。
642名称未設定:2011/03/10(木) 10:29:58.51 ID:Z0Wckrj/0
>>641
IBOutlet NSTextField *myTextField;

を作って、Interface Builder で繋いで、

-(void)keyDown:(NSEvent *)theEvent{
...
[myTextField setString: @"AAAAAAAaaaa"];
...
}

上のが分からないのなら「IBOutlet」でググってみ
643名称未設定:2011/03/10(木) 11:28:55.00 ID:2dfxMgv20
>>642
わーありがとう!!
確定申告終わったら試してみる!!
644631:2011/03/10(木) 12:16:07.40 ID:82+nCDAm0
>>640
>同じショートカットキーを持つMenuItemを2つ作りたい
そうなんです。Winからのベタ移植にこだわろうとすると、そういうことも起こりえます。

その後に分かったんですが、Macのメニューでは、サブ項目にショートカットが割り振られないみたいで…
(IBではKey Equivの設定はありますが、反映しない?)

>>635
>同じショートカットに2つのコマンドが割り当ててあったら、どっちを実行していいのか分からないでしょ?
サブ項目にキーが割り振られていれば、F→OやE→Oなど区別がつくんです。

メニューを操作しないショートカットは、当然すべて違ったものにしないといけません。

Macだとメニューに割り当てるショートカットは考え方を変えないといけないようですね。
IBでメニュー項目に対して設定はしていますが、実質、Windowsの「メニューを操作しないショートカット」
に近いような気がします。
645名称未設定:2011/03/10(木) 12:46:46.69 ID:nLFG0mNf0
>>644
郷に入れば郷に従え
646名称未設定:2011/03/10(木) 13:17:00.85 ID:FGYN8vCQ0
それはWindows版Safariに対するアドバイスですね。
647名称未設定:2011/03/10(木) 15:17:57.25 ID:nLFG0mNf0
そんなにWindowsが好きならMacのアプリなんて作らなければいいのに。
648名称未設定:2011/03/10(木) 16:00:04.79 ID:DIPbjcmp0
仕事だから→仕事の質問を2chでするなよw→うるせーばか→お前こそうるせー→ばーかばーか
649名称未設定:2011/03/10(木) 16:04:35.08 ID:fRhyFY6x0
キーロガー作る気かよ
650名称未設定:2011/03/10(木) 16:37:12.81 ID:21wGlJW10
ツール→オプション→ユーザー設定→プロパティ→設定→カスタマイズ→詳細設定→最初に戻る。

これくらいの設定画面を平気で作れるようになれば、
君もWindowsプログラマとして一人前だよ。
651名称未設定:2011/03/10(木) 20:05:10.82 ID:lZOPd36a0
>>644
Windowsのメニューだと、[新規(N)...  CTRL+N] こんな感じだと思いますが。
この中で「CTRL+N」の部分がMacのショートカット相当。
「(N)」の部分に該当するものはMac にはありません。
652名称未設定:2011/03/11(金) 10:26:31.06 ID:99tR/hn6i
>>651
相当っていうかそれWindowsでもショートカットだから。
お前が質問したいのはキーボードアクセラレータだろ?

最初から Mac にはキーボードアクセラレータは
無いのかと聞けば無いよと4文字で済む話だった。
653652:2011/03/11(金) 10:29:15.58 ID:99tR/hn6i
書いたあとで不安になったけど、
>>651 は質問者じゃないような木もするので
「お前が」のくだりは取り消して謝罪します。
654名称未設定:2011/03/11(金) 12:56:14.92 ID:+jiaczaO0
質問者はとっくに逃亡しましたとさ。
655631:2011/03/11(金) 13:03:38.50 ID:/TG1RlLr0
逃亡してないです

Macのメニューのショートカットはむしろキーボードアクセラレータ的な動作だと
思います。
656名称未設定:2011/03/11(金) 13:29:50.67 ID:iVMvpUxT0
>>655
だから何?
657631:2011/03/11(金) 13:43:46.37 ID:/TG1RlLr0
>>651
お礼を言い忘れてた。
どうもありがとう。無いものはしょうがないですよね。
658名称未設定:2011/03/11(金) 13:48:31.30 ID:YxcV5U8z0
JAVA VMで動いてるアプリには付いてるから自力で実装は出来ると思うよ!
659名称未設定:2011/03/11(金) 19:56:06.83 ID:obW0/3RN0
>>655
> Macのメニューのショートカットはむしろキーボードアクセラレータ的な動作だと
> 思います。

とてもそうは思えませんが。
あなたが知っているMacのソフトって何?
660名称未設定:2011/03/11(金) 20:24:58.41 ID:obW0/3RN0
いちおう、Macでもキーボードアクセラレータらしきものはあります。
Control + F2 ( + fn) でメニューが選択されるので、メニューの名前をタイプすると、
インクリメンタルサーチのように、1文字打つごとに該当するメニューが選択されるので、
Returnでメニューを実行できます。
ただし、英語のメニューのみが対象です。

あとは、Command + ? (command + shift + / )でヘルプメニューが開くので、
そこでメニューの名前を入力すると、アプリ内の全メニューがSpotlight検索されます。
そのあとは、矢印キーで選んで、Returnで実行。
こちらは、日本語メニューも対象です。

いずれにせよ、ショートカットとは全く別の動作です。
661名称未設定:2011/03/11(金) 20:37:42.66 ID:Qum6DeUy0
キーボードアクセラレータなんて初めて聞いたよ。
ちょっと厨房っぽいネーミングだな。
662名称未設定:2011/03/12(土) 02:53:27.62 ID:2mWxQ3twP
間違ってるけどな。
Windowsだと、アクセラレーターが機能を直接実行するキー(ショートカットは俗語)で、
メニューやボタンにくっついてる(A)はアクセスキーとかニーモニックとか言う。
663名称未設定:2011/03/12(土) 03:10:27.65 ID:gfgSFChS0
俗語って言ってもMicrosoft自身も使ってるからなあ…
664名称未設定:2011/03/12(土) 04:33:08.81 ID:2mWxQ3twP
いやなんか、アクセラレーターとショートカットが別物みたいな話になってるからさ。
Windowsでも同じ意味だよと言いたかっただけ。
665名称未設定:2011/03/14(月) 16:45:45.33 ID:QD+YWihCI
NSFileManagerでファイルコピーするプログラムを書いていて、
root権限じゃないと書き込めないディレクトリにコピーしたいんですが、
(例えば/binとか)
Finderでやるみたいな、ユーザーによる権限昇格ってできないんでしょうか?
「NSFileManager root権限」とかでぐぐってもそれらしい情報を見つけられないんですが、
誰かご存知ないですか?
666名称未設定:2011/03/14(月) 16:50:31.36 ID:JtOYehO40
Authorization API?
667665:2011/03/14(月) 17:29:11.48 ID:qmdN8+pXi
>>666
情報ありです!調べて見ます。
668名称未設定:2011/03/17(木) 11:08:37.02 ID:8kNhhZk80
__threadキーワードが使えないみたいなんだけど、Cocoaではスレッドローカルストレージは
あきらめるしか無いですか?
669名称未設定:2011/03/17(木) 11:13:29.93 ID:7+TIKGjZ0
>>668
NSMutableDictionary *dict = [[NSThread currentThread] threadDictionary];
670名称未設定:2011/03/17(木) 11:50:44.68 ID:8kNhhZk80
>>668
要はスレッドIDを見てなんとかしろということですね。
了解です。THX
671名称未設定:2011/03/17(木) 11:51:19.82 ID:8kNhhZk80
>>669でした
672名称未設定:2011/03/17(木) 13:16:23.00 ID:7+TIKGjZ0
Cocoaで、だよね?
最悪[NSValue valueWithPointer:]使えば何でも入れておけるけど。
673名称未設定:2011/03/17(木) 22:00:17.14 ID:6JS4BRBO0
NSViewのサブクラスで、初期化処理を行うにはinitWithFrame:が使えますが、
awakeFromNibで行うほうが他のViewやWindowがそろっている状態なので便利、
というのが分かりました。

他方、ApplicationをQuitしたときにはNSViewのDeallocが呼ばれず、
windowをcloseしたときだけNSViewのDeallocが呼ばれるようです。
CustomViewのClean upを行う場合、通常どういった手法をとるのでしょうか?
674名称未設定:2011/03/17(木) 22:04:13.68 ID:3qbCra2A0
表示さんじゃなくて表示内容さんがNSApplicationWillTerminateNotificationを聞くんじゃないかな?
675名称未設定:2011/03/18(金) 14:07:35.61 ID:FzFTTFuh0
WinのCRITICAL_SECTIONみたいな、ネスト状態をスルーしてくれるロック機構はありませんか?
676名称未設定:2011/03/18(金) 14:58:07.69 ID:wiJfPr+M0
mail.appみたいな3ペインって、interface builderではどうやって作るの?
677名称未設定:2011/03/18(金) 19:38:04.33 ID:hBp65F/u0
スレの質問見てるとMacアプリ開発に新規参入した人増えてきてるみたいね
678名称未設定:2011/03/18(金) 20:32:35.56 ID:NASfhQAH0
異なる質問が同時に3件も書き込まれるなんてめずらしいな。

>>673
initWithFram:は、Objective-Cのオブジェクトとしての初期化処理。
awakeFromNibは、InterfaceBuilderでは設定しきれなかった、Nibファイルとしての追加の初期設定。
あと、ApplicationをQuitしたときに、Viewの後処理をやる必要があるの?

>>675
とりあえず、WinのCRITICAL_SECTIONの仕様を詳しく説明しないと、質問に答えられるMacユーザーいないと思うぞ。

>>676
複数のViewを選択した状態で、
InterfaceBuilderメニュー>Layout>Embed Object In>Split View
ただし、Mail.appと全く同じものは、NSSplitViewをカスタマイズしないと作れない。
679名称未設定:2011/03/18(金) 21:03:41.96 ID:LSDxpRPP0
>>678
676です。ありがとう!!

>Mail.appと全く同じものは、NSSplitViewをカスタマイズしないと作れない
って言われたから、ちょっと遊んでみた。

Vertical Sprlit Viewを置いて、StyleをThin dividerにして、
右側にHorizontal Split Viewをほりこむ

みたいにするとMailっぽくなった。
こんなやり方もアリ?


>677
アイホンアイホン言われてるウェブ屋さんが多いんじゃないかしらね。
私はMacのアプリが作りたいけど、
取引先の"パソコン良く分かんない系"社長にも言われたもん。
680名称未設定:2011/03/18(金) 21:35:06.95 ID:NASfhQAH0
いま気づいたのだが、Xcode4が600円で販売されている。
今までずっと無料だったのになぁ。
年間10000円ぐらい払ってる開発者には、無料らしいが。
Appleにとっては、開発者もビジネスターゲットなのか。
まあ、それでもWinよりは遥かに安いけど。
681名称未設定:2011/03/18(金) 21:39:46.48 ID:NASfhQAH0
>>679
Split Viewを入れ子で使うのは、ごく普通の技です。

NSSplitViewをカスタマイズするっていうのは、サブクラス化して自前でコードを書くっていう意味。
これで、幅1ピクセルの「区切り線」とかが作れる。
682名称未設定:2011/03/18(金) 22:18:32.41 ID:LSDxpRPP0
>>681
ふんふん…なるほど。
背景色とかも、そうやってやんのかな。
inspectorにいろいろいじるところがあるけど、それが全部じゃないってことなんだよね。
683名称未設定:2011/03/18(金) 22:27:38.77 ID:NASfhQAH0
>>682
> inspectorにいろいろいじるところがあるけど、それが全部じゃないってことなんだよね。

うーん、、、そういうイメージじゃなくて、元々存在していなかった機能を追加できるっていう感じ。

> 背景色とかも、そうやってやんのかな。

Split Viewの背景はほとんど表示されないと思うので、その背景色はSplit Viewの中にあるViewの色だと思うよ。
684名称未設定:2011/03/18(金) 22:44:16.77 ID:LSDxpRPP0
>>683
ありがとう!ざっくり把握した。
あとは作りながら悩んでみるよ。
また付き合ってね♥
685名称未設定:2011/03/19(土) 09:35:21.79 ID:q2XT+Ig10
>>678
673です。

3つのCustom Viewなのですが、cleanupでやろうとしているのは
・ドラッグを受け付けるViewで
 [self unregisterDraggedTypes];
・BezierPathを複数定義したVIewで
 パスのrelease
・マウストラックを定義したVIewで
if (trackingArea) {
[self removeTrackingArea:trackingArea];
[trackingArea release];
trackingArea = nil;
}
といったところです。

今の実装は、以下の流れです。
applicationWillTerminateを受け付けたら、Windowが閉じられているかチェック
Windowが残っていたら、windowShouldCloseを呼ぶ
windowShouldCloseのなかで各種Cleanup処理を呼ぶように書いています。

ApplicationをQuitさせる場合、なぜかwindowShouldCloseが呼ばれないので、こう
いう書き方にしたのですが、なにか間違っているような気がして、質問しました。
686名称未設定:2011/03/19(土) 14:20:57.71 ID:DWkL7HI20
>>685
アプリケーションの終了時ということなら、無意味なCleanUpなのでは?

アプリケーション終了時は、確保された全てのメモリが解放されます。
個々のオブジェクトをreleaseする必要もないでしょう。
解放される直前のメモリにtrackingArea = nil;と値を書き込んでも無意味です。
[self unregisterDraggedTypes];や[self removeTrackingArea:trackingArea];も、結局はメモリ上の値を書き換えてるだけでしょう。

applicationWillTerminateでCleanUPが必要なのは、主にI/Oに関するものだと思います。例えば、
未保存のデータをファイルに書き込むとか。
ネットワーク上のサーバーにセッション終了を送信するとか。
687名称未設定:2011/03/19(土) 16:39:14.67 ID:i3WOOGSAP
Windowを開いた時に作るオブジェクトなら、
むしろWindowを閉じた時とかに解放するほうがよいのでは?
688名称未設定:2011/03/19(土) 17:12:26.15 ID:BfIbCJgG0
>>685
Cocoaは終了処理がかなりあれなのでそんなものですw
状態保存をする場合などはなるべく変化があった時点で保存しちゃうようにしてください

>686さんが言うようにオブジェクトの解放だけなら必要ありません。
Cocoa自体が終了を受けたらメインループ内でexit()を呼んで後始末せずに終了しちゃうぐらいですからw
689名称未設定:2011/03/20(日) 12:31:24.25 ID:0oDhgZ/p0
ファイル選択画面などで使われる,あのウィンドウの上からニューッと出てくるやつはなんていう名前なのでしょうか?
690名称未設定:2011/03/20(日) 13:19:32.67 ID:nEJlJIRL0
>>689
シートダイアログ
691名称未設定:2011/03/20(日) 13:54:23.23 ID:foaaY8Yl0
673です。

>>686
>>688
ありがとうございます。助かりました。
というか、そういうものなのですね。

>>687
Windowのcloseでは直帰正しくcleanup出来るのです。
Applicationをquitすると、windowShouldCloseが呼ばれないので
悩んでいました。
692名称未設定:2011/03/20(日) 15:32:26.50 ID:0KH9KWYO0
>>691
後始末なら、windowShouldClose:じゃなくて、windowWillClose:だと思います。
あと、ウインドウを閉じることが、NSWindowオブジェクトの解放に繋がるとは限らないので、
このタイミングでViewオブジェクトを解体するのはよくないかと。
693名称未設定:2011/03/20(日) 17:21:37.88 ID:NnqomCa80
それを気にするよりはSudden Terminateに対応するように書いた方がみんなの幸せだしね。
694名称未設定:2011/03/20(日) 22:41:06.70 ID:0oDhgZ/p0
>>690
助かりました。ありがとうございました!
695名称未設定:2011/03/22(火) 02:21:15.59 ID:1ZpeH3fR0
NSWindowのサイズを画面サイズより大きくするにはどうすれば?
setFrameだと高さが画面サイズで最大になるんだが。
696名称未設定:2011/03/22(火) 02:40:17.00 ID:1ZpeH3fR0
>>695
自己レス。IBでCurrent SizeとMinimum Sizeを大きくして回避。
697名称未設定:2011/03/29(火) 17:34:29.76 ID:wdyrxs+x0
NSEventでマウスカーソルの位置をセットすることはできませんか?
mouseLocationで取得はできるみたいですが、逆がわかりません。

CGEventSetLocationというのは見つけたんですが、NSだけでできたらいいなと。
NSとCGは上下の座標系が違いますし。

よろしくお願いします。
698名称未設定:2011/03/29(火) 19:58:20.01 ID:z6Glcrq60
>>697
それって、物理的にマウスカーソルの位置を移動させたいっていう事?
それとも、NSEventオブジェクトを構築したいっていう事?
699名称未設定:2011/03/29(火) 20:16:18.15 ID:wdyrxs+x0
>>698
カーソルを動かしたいのです。
CG系をごちゃごちゃ組み合わせれば出来るようなんですが。
700名称未設定:2011/03/29(火) 20:23:26.53 ID:z6Glcrq60
>>699
たぶん、Cocoaではできません。
CGDisplayMoveCursorToPoint()でも使ってください。
701名称未設定:2011/03/29(火) 21:25:57.55 ID:t/AthQ0yP
つーかそもそも安易にマウスカーソルを動かすのはやめて欲しい。
702名称未設定:2011/03/29(火) 22:17:53.93 ID:eBbN1qKC0
Windowsからの移行組じゃない?
そもそもマウスを勝手に動かすとかAppleのガイドラインに合わないだろうし、
だから、そのためのメソッドも無いかと。
703名称未設定:2011/03/30(水) 04:26:52.14 ID:tmsPaUx60
カーソルを画面の両端でワープさせるアプリとかあるだろ。
移行組とか言い出す謎発想に驚いた。
704名称未設定:2011/03/30(水) 04:38:22.97 ID:yWSCyW8f0
なんでもいいけど、マウスを勝手に動かすのは個人的には好かん
705名称未設定:2011/03/30(水) 06:57:34.51 ID:BTv6DeTH0
>>702
MSXからの移行組です。アセンブラで組んでる
706名称未設定:2011/03/30(水) 08:46:06.90 ID:0laOd79n0
>>703
SetCursorPos()
707名称未設定:2011/03/30(水) 12:00:02.63 ID:EHOHqfAx0
>>697です
みなさんどうも。NSでは出来なさそうということで、CG系でやります

マウスカーソルの位置を自前で制御したい用途はそこそこあると思いますが・・・
 範囲選択の矩形をビューからはみ出させない
 ボタンや選択肢へ移動

>>702
Appleのガイドラインにそんな事項があるんですね
今後の参考にします

ありがとうございました
708名称未設定:2011/03/30(水) 14:53:05.13 ID:S25rFhiN0
マクのgui自体が古いからな。
まだ液晶タブ想定の操作系でもないし。
ファイルシステムもまだssdをサポートしてない(単なるhddとして使っている。
709名称未設定:2011/03/30(水) 15:27:32.99 ID:+qQAxnjO0
何かピントがずれてるな。
開発者じゃないんだろうな。
710名称未設定:2011/03/30(水) 15:29:11.61 ID:TEAux3II0
ファイルシステムとSSDに何の関係が?
711名称未設定:2011/03/30(水) 16:11:56.92 ID:v5DSTfMj0
Macにケチを付けるつもりが、とんだ無知を晒したってわけだ。
712名称未設定:2011/03/30(水) 20:25:06.26 ID:3j9C7lXD0
>>707
> 範囲選択の矩形をビューからはみ出させない
> ボタンや選択肢へ移動

だから、それが使いづらい。
マウスカーソルはユーザーの手足です。
行動を制限されたり、強制的に移動させられるのは、精神的苦痛です。

ビュー内部のみを選択対象にしたいなら、マウスじゃなくて、選択範囲矩形に制限をかけろ。

押して欲しいボタンがあるなら、ボタン自身にアピールさせろ。
713名称未設定:2011/03/31(木) 00:44:36.59 ID:3ROqnHs40
Blender とか使ったこと無いか? 無いか。
714名称未設定:2011/03/31(木) 01:03:27.05 ID:0dgOdIrp0
ない!
運転手の意図に反して曲がるハンドルなど
もってのほか。
プログラマの自己満足以外のなにものでもない!

なんてね。
715名称未設定:2011/03/31(木) 04:27:03.04 ID:jkO7D66b0
>>707
>>範囲選択の矩形をビューからはみ出させない
普通マウスじゃなくて矩形表示を制御するんじゃね?
ということで>>712に同意
716名称未設定:2011/03/31(木) 09:15:36.82 ID:tczq06350
言わばここで他者から反論されている事も、投稿者の意思に反して起きている事です。
そして、投稿者は自分の意思通りにならない事にストレスを感じています。

マウスが勝手に動く、制限されるという事もユーザーにとって同じ事です。
717名称未設定:2011/04/04(月) 03:31:54.20 ID:AJJxgRJk0
2chでこの手のUX系の話もっとしたいな。
718名称未設定:2011/04/13(水) 13:54:26.63 ID:fPWKX7Up0
オブジェクトに実装されてるメソッドまたはインスタンス変数の一覧を
取り出すメソッドか関数ってあります?
719名称未設定:2011/04/13(水) 13:57:46.71 ID:LLYW3TS40
ありますよ
objc/runtime.h
かな?今は違ったっけ?
まあ、この辺からたぐれる。
720名称未設定:2011/04/13(水) 13:58:21.04 ID:fPWKX7Up0
>>719
ありがとう。探してみます。
721名称未設定:2011/04/13(水) 21:45:02.08 ID:x4QqtIYp0
>>718
単純に、インスタンス名やメソッド名を見たいだけなら、そのクラスが実装されているライブラリ・ファイルに対してnmコマンドを使うのも手だよ。
722名称未設定:2011/04/13(水) 22:17:16.96 ID:NRYqzPZX0
class-dump
723名称未設定:2011/04/13(水) 23:00:41.35 ID:x4QqtIYp0
$ which class-dump
class-dump: Command not found.
724名称未設定:2011/04/13(水) 23:55:14.65 ID:DKMnlVQm0
>>723まさかとは思うがネタだよな?
725名称未設定:2011/04/14(木) 00:07:57.71 ID:3trvcQXg0
標準装備じゃない、と言いたかっただけ
726718:2011/04/14(木) 00:10:28.00 ID:B7REDTDI0
>>721
いや、自分で作ったクラスのインスタンス変数かメソッド(アクセッサのみ)を
プログラム中で取り出して、名前からセレクタを生成して、インスタンス変数の
値を自動で取り出したいだけ。ハードコードするのはうっとおしいし、ダサいしね。
727名称未設定:2011/04/14(木) 00:22:42.94 ID:3trvcQXg0
>>726
名前が判明したら、valueForKey:でいいのでは?

728718:2011/04/14(木) 09:28:08.90 ID:3bePTU950
うん。その手もあるね。アクセッサ(宣言プロパティ使ったけど)すら書く必要も
ないか。
729718:2011/04/14(木) 11:23:14.37 ID:3bePTU950
結局、インスタンス変数名をclass_copyIvarList()とivar_getName()で
取り出すことにしてそれはうまくいったんだけど、class_copyIvarList()で
取られた領域の後始末はどうやって付ければいいの?

それらしい関数はないので、free()でやっちゃっていいのだろうか?
今のところ落ちることはないのだけど。
730名称未設定:2011/04/14(木) 11:41:12.90 ID:TkNlSlBU0
731718:2011/04/14(木) 11:42:10.61 ID:3bePTU950
ありがとう >> 730
732名称未設定:2011/04/16(土) 12:19:25.34 ID:sLHbuUrq0
WindowがDockに格納されたときに発生するイベントはありませんか?

格納された瞬間に負荷のかかる処理を停止して、Windowがデスクトップに
戻されたら再開するようなことをしたいのです。

よろしくお願いします。
733名称未設定:2011/04/16(土) 13:17:30.23 ID:op/hOwkV0
NSWindowDidDeminiaturizeNotification
NSWindowWillMiniaturizeNotification
734名称未設定:2011/04/16(土) 13:37:48.31 ID:sLHbuUrq0
>>733
ありがとうございます
735名称未設定:2011/04/17(日) 15:43:22.04 ID:PXQRx/Na0
ふと気付いたんですが、NSTextFieldに対して、コピペが出来ません。
IBでどこかチェックするところがあるでしょうか?
Xcodeは3.2.6です。
よろしくお願いします。
736名称未設定:2011/04/17(日) 15:48:24.33 ID:PXQRx/Na0
追記ですが、キーボードからの文字入力はもちろん可能です。
737名称未設定:2011/04/17(日) 23:06:37.53 ID:/x2zdQpY0
>>735
それって、コピーができないの? ペーストができなの? それとも両方?
操作は、Command + C? それとも、メニューでコピーを選択?
738名称未設定:2011/04/18(月) 00:19:15.22 ID:xjaQCJk80
>>737
言われて初めて思い至ったのですが、試してみたところ、メニューでは出来ました。

どうもキーボード操作を受け付けないようです。Command+XCVが全部利きません。
739735:2011/04/18(月) 09:56:40.57 ID:xjaQCJk80
その後も調べていますが、なんとなくパターンが分かりました。

プロジェクトの雛形生成の状態から、デフォルトにあるエディット項目を
削除すると、キーボード操作のコピペが出来なくなるようです。
(右クリックのメニューからはコピペ可能)

どうやらコピペのショートカットって、(ダイアログのNSTextFieldでも)アプリ本体の
メインメニューのエディット項目のショートカットが使われているようですね。

アプリのメインメニューにエディット項目がない場合に、ダイアログのテキスト関係だけでも
コピペのショートカットを生かす方法ってありませんか?
740名称未設定:2011/04/18(月) 12:33:06.73 ID:RWqduvl00
>>739
あるけど、なぜそんな事をしたいのかが分からん。
編集メニュー付けとけばええやん。
741名称未設定:2011/04/18(月) 12:59:20.38 ID:LCU1zYVP0
>>739
編集メニューのコピー、ペースト類の動作を理解してからもう一度ご質問下さい。

あと、メニューに無いショートカットとか平気で作る時代になったんだなあ、と。
ユーザーはどうやってそれを見つけるんだろうか?
もしかすると、ショートカットを探すのが目的のアプリなのかな?
742735:2011/04/18(月) 13:27:11.46 ID:xjaQCJk80
>>740
アプリ本体はゲームなので編集メニューは必要無いのです。
ただ、ダイアログでセーブデータのコメントを編集することは出来るので、一般的なXCVのキーボード操作が出来ないとけっこう不便に感じたので。

743名称未設定:2011/04/18(月) 13:32:23.94 ID:RWqduvl00
>>742
>一般的なXCVのキーボード操作が出来ないと
それはメニューをキーボードから操作してるという事なのだが。
メニューが無いのに操作だけできるという事に不自然さを感じない?
744名称未設定:2011/04/18(月) 13:35:29.48 ID:iz1Y2/Pg0
透明なボタンを作って、cmd+cvxを割り当てれば
とりあえず動くと思う。
745735:2011/04/18(月) 13:44:25.81 ID:xjaQCJk80
>>743
あまりそういう理屈にはこだわってないです。キーボードの操作がメニューを制御していようがどうしようが、
プレーヤーには関係ありません。(そんなことを意識して指を動かしているユーザーがいるかどうか…)

問題は、誰もがテキスト入力時に期待しているだろう、XCVのデファクトな操作が出来ないことによる不便さです。

>>744
どうもありがとう。とりあえずそれで試してみます。


746名称未設定:2011/04/18(月) 14:45:15.39 ID:3LTmDfdp0
OSが提供する仕組みを無視して作るってのも笑える話だね。
確かに全画面のゲームなどのネームエントリーでショートカットでコピペが
出来るのはあるけど、それはメニューを隠してるだけで
基本はちゃんと守ってるんだよね。

どう作っても自由だけど、キチンと基本を抑えておかないと、今後辛くなってくるよ。
747735:2011/04/18(月) 15:10:27.32 ID:xjaQCJk80
>>746
すみませんが、そこまでおっしゃるなら、基本をちゃんと
守ってメニューを隠す方法を教えていただけませんか?

やろうとしてるのはネームエントリー云々と合致しているところです。

OSの提供する仕組みを無視したいとは思ってないです。
748名称未設定:2011/04/18(月) 15:16:40.66 ID:9SnrX3Pq0
749名称未設定:2011/04/18(月) 15:17:56.12 ID:pDkiM4QK0
>すみませんが、そこまでおっしゃるなら、基本をちゃんと
>守ってメニューを隠す方法を教えていただけませんか?

10.6ならNSApplicationに
それ以前ならCarbonにあるよ!
750735:2011/04/18(月) 15:52:13.38 ID:xjaQCJk80
>>746
ちょっと確認ですが、その全画面のゲームをウインドウモードで動かした時に、
メニューバーにXCVの項目(を含んだサブメニュー)があるんでしょうか?

隠したいのはメインメニューバー全部ではなく、エディット項目なので。

メインメニューバーにはゲーム中に必要な項目があるので、エディットを隠すためだけに丸々削除はできません。
751名称未設定:2011/04/18(月) 16:16:55.46 ID:RWqduvl00
>>750
コピペが必要という事は、お前の「編集メニューは必要無いのです」という主張が正しく無いだけの話だろ。
大人しく編集メニュー追加しろよ。
752735:2011/04/18(月) 16:26:06.14 ID:xjaQCJk80
>>751
ゲーム中には必要ないのです。

それにキーボード操作でのコピペは要るけどメニューにするまでもないという用途はあると思いますが。

ないと言い切れるなら、あなたがそういうソフトしか作って来なかっただけではないでしょうか?
753名称未設定:2011/04/18(月) 17:06:37.67 ID:pDkiM4QK0
まあ、普通はNSResponderとかその辺の話
Cocoa Event Handling Guideとか
754名称未設定:2011/04/18(月) 17:16:35.87 ID:rY2KSabu0
ええ、無いねえ。
メニューにないショートカットがあるなんていう破綻したUIの俺様プログラムなんて、
作ったことも無いし作りたくも無いな。

公開するならなおさら。

755名称未設定:2011/04/18(月) 17:31:04.89 ID:pDkiM4QK0
NSTextViewのemacs key binding disってんの?
756名称未設定:2011/04/18(月) 17:36:38.46 ID:xjaQCJk80
そもそもショートカットってのは特定の機能への簡便なアクセス手段を提供する
ものであって、別にメニューが必須の概念ではないと思うのですよ。

たとえばデスクトップのタスク切り替え(Command+tab)のメニューなんか見当たりませんが、
それも破綻したUIなんですかね? もしかしてどこかにメニューがある?
757名称未設定:2011/04/18(月) 17:48:57.00 ID:6MMrKvsw0
まあいいさ、好きなように作りなよ。
世の中にはショートカットを知らずに、メニューからしか
操作しないユーザーもいるって事に気付くのはもっと後だろうから。
758名称未設定:2011/04/18(月) 17:49:07.47 ID:pDkiM4QK0
レスポンダーチェインにいる誰かが
-[NSResponder keyDown:]
-[NSApplication sendAction:to:from:] // toがnilならfirstResponder
759名称未設定:2011/04/18(月) 17:55:37.58 ID:xjaQCJk80
>>757
>世の中にはショートカットを知らずに、メニューからしか 操作しないユーザーもいる
そんなことはとっくに知っていますよ。今回の例では、知っている人のいらつきを
押さえるための措置で、コピペが無くても文字入力は出来るのですから、この機能を
否定する理由は無いはずです。

さらに、通常ゲーム中に全く機能しないエディット項目をメニューに置くことと
秤にかけたら、メニューなしのキー操作も十分にありだと思うのです。
760名称未設定:2011/04/18(月) 18:01:03.25 ID:pDkiM4QK0
メニューにないと絶対にダメだよ派の人はさ
NSTextViewとかNSPanelとかNSSavePanelとかは使わないの?
NSPanelがコマンド+.で閉じるなんてメニューのどこにもないし、
コマンド+Dで「保存しない」になるなんてメニューのどこにもないよ?
一般的だからとかなら、それこそコピー、カット、ペースト、全て選択の方がより一般的だよ?
761名称未設定:2011/04/18(月) 19:00:04.13 ID:wdI/PkjHi
アホか。メニューだってボタンだって
マウスで操作出来る。
それをキーで操作出来るようにしただけ。

Cocoaのやり方を曲げる必要があるよう
には思えない。
オレオレアプリ作りたきゃすきにすれぱ。
762名称未設定:2011/04/18(月) 19:33:46.49 ID:8oDuEgmW0
なんつーか、windows的な人ね。
あっちって、メニューバーは必須じゃないから。
メニューバーが無いアプリで、ctrl+Cとかすごく違和感あったけど、
winプラットフォームに合理性とか一貫性とか深く求めちゃいかんと思って見ないふりした。

command+tabとかはホットキーっつって、ショートカットキーとはまた別の概念。
こっちはアプリやビューに基本依存しない。

NSButtonに割り当てられたショートカットの扱いがどうなのかは、ちょっと勉強不足で分からん。


ゲームの場合また特殊だから、どうなんだろう。
ゲーム独自のUIをウインドウ内に描画されることが多いけど、
OSのUIとゲーム内のUIを明確に分けておかないと、まずい気がする。
そもそも、メニューバーを隠さないのなら編集メニューをわざわざ消す必要は無いと思う。
763名称未設定:2011/04/18(月) 19:37:05.16 ID:xjaQCJk80
>>761
すまんが何を言いたいのかわからん。

コピペは右クリックのメニューから操作できるし、
メインメニューバーにエディット項目が無いからといって、XCVのインターフェースを作ることのどこがCocoaの流儀を曲げているのか。

あんたの解釈こそオレオレCocoaの流儀なんじゃないの???
764名称未設定:2011/04/18(月) 19:37:09.25 ID:RWqduvl00
>>760
インターフェイスガイドラインを読んだ事無いだろ。
765名称未設定:2011/04/18(月) 19:40:18.63 ID:RWqduvl00
>>763
お前もガイドラインを読んでから物を言え。
ルールを守らなくてもアプリは作れる。
だが、ほとんどの人間はルールを守る。
なぜだか考えてみろ。
766名称未設定:2011/04/18(月) 20:28:52.77 ID:IwpZA61b0
そういう時は、スコア登録用メニューバーを用意して入れ替える
767名称未設定:2011/04/18(月) 20:29:54.50 ID:8oDuEgmW0
Menu関連とKeybordShortcut関連のHIGはこれ。
うまく繋がらなかったらADCにログインしてから開いてみて。

http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGMenus/XHIGMenus.html
http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGUserInput/XHIGUserInput.html

コンテクストメニューは、選択対象について実行可能な、本当に良く使うメニューバーのコマンドだけをおさめるもので、
コンテクストメニューだけしかないような実装はするなと。

ツールバーもキーボードショートカットもコンテクストメニューも、
基本的にメニューバーありきのものなんだよ。
command+C押したら、編集メニューが点滅するでしょ?


逸脱した独自UIやその実装の仕方は、いわゆるユーザーエクスペリエンスを損なうから
なるべく避けるべきだと思うよ。
768737:2011/04/18(月) 21:16:06.28 ID:yt5NecTI0
# ちょっと見ないうちに30件も書き込みが増えててビックリだ
# それだけ、ツッコミどころが多いということか・・・

今回のケースは、そのソフトが「ゲーム」である、というところがポイントだと思うよ。

Cocoaはゲームを想定したフレームワークじゃないし、AppleのUIガイドラインもゲームを想定してる訳じゃない。
ゲームの構造やUIは特殊だから、それらは単純に当てはまらないと思います。

ゲーム内に、「メニューバー」があるとのことですが、それは「メニューバーに良く似た」ユーザーインターフェースであって、「メニューバー」ではないという位置づけになるのだとおもいます。

結論としては、Cocoaの内グラフィックの描画やキー入力などOSの機能を呼び出すAPIな部分だけを利用して、MVCを形成するフレームワークな部分をバッサリ無視してソフトを作れば良いかと思います。
全てのキーイベントは、NSApplicationのsendEvent:をオーバーライドすれば捕捉できると思うので、好きなように処理すればいいです。
769名称未設定:2011/04/18(月) 21:55:53.05 ID:yt5NecTI0
でも、メニューバーから編集メニューを削除したい理由が「普段使わないから」だけで、「編集メニューがあってはならない」という事でもないなら、編集メニューを実装してしまうのがいいと思いますけどね。
Cocoaには、その時点で使えないメニュー項目を自動的にグレー表示にする機能があるので、sendEvent:をオーバーライドして自前でcommand+cを実装するより楽だしね。

ちなみにこれは、Cocoaの流儀に従えという意味ではなく、利用できる物は利用しようという話です。
770名称未設定:2011/04/18(月) 22:12:52.27 ID:tqITResx0
アッペルにだまされてるよw
Safari, iTunes等のナウい人気アプリは民意をくんで、よきに計らってるよ
今時、「カーボン」という言葉を使ったり未だに思考の中にあること自体が
ちょっとナウくないなw
771名称未設定:2011/04/18(月) 22:36:36.63 ID:RWqduvl00
>>768
編集メニューを入れたく無いという変なこだりがあるくせに、
標準のメニューバーを使うという意図もよく分からない。

こだわるのなら、フルスクリーンにして全部独自のUIでも使ってれば良い。
772名称未設定:2011/04/18(月) 23:32:10.80 ID:SXrQHPk30
ゲームなんかは全部独自GUIでいいと思うし、逆にゲーム内のGUIの操作に
アプリケーション標準メニューのコピーペーストを(見えないようにしておいて)使うという発想はクレイジーな感じがする。
773名称未設定:2011/04/19(火) 06:57:49.23 ID:TwXxpKEM0
そもそも人の意見を聞き入れられない性格なら
人に教えなど請うなって話だな。
774名称未設定:2011/04/19(火) 08:12:48.92 ID:VaV65a1l0
>771に一票。
このケースならフルスクリーンな
やり方が落とし所だね。
775名称未設定:2011/04/19(火) 08:18:54.91 ID:50DFcN+TP
よーわからんけど、ゲームでも「フルスクリーン/ウィンドウモード切り替え」と「終了」ぐらいは
通常メニューにあってもいいんでないの。
776名称未設定:2011/04/19(火) 10:20:22.84 ID:TwXxpKEM0
>>775
終了するためにファイルメニューを入れられるなら、
編集メニューぐらい入れても差し支えないだろ。
恐らく質問者はその類いの項目を入れたく無いという事なんだと思う。
これでファイルメニューは入っているとかだったら大笑いだが。
777名称未設定:2011/04/19(火) 10:37:37.97 ID:ji+NS75s0
ユーザーからしたら、ガイドラインを意地でも守って、あげくフルスクリーンを
強要されたらそんなのただのクソアプリ
778名称未設定:2011/04/19(火) 10:52:37.32 ID:50DFcN+TP
>>777
だよなあ。
俺は、編集できるシーンでのみメニューを入れ替える案が妥当とは思う。

>>776
いや終了はアプリ名メニューでいいじゃん。
779名称未設定:2011/04/19(火) 11:37:47.32 ID:TwXxpKEM0
>>778
ごめん、おれ15年前からタイムスリップしてきんたんだorz
780名称未設定:2011/04/19(火) 12:06:37.89 ID:Fr6wsX2+i
次世代のUIを目指すなら、もうショートカットのみなんだよね(笑)
CTRL+XCVなんて説明するまでもなく、パソコンユーザーなら
もう知ってて当たり前なんだから。
781名称未設定:2011/04/19(火) 12:39:38.45 ID:JTTOKo+B0
まだやってたのか。
>>756に対して>>762がホットキーだからと返しているのは感心。
782名称未設定:2011/04/19(火) 12:43:13.66 ID:ji+NS75s0
ユーザーから見たら、使わない編集メニューがぽつんと残っているのはすごく未完成というか
いい加減な仕事に見える。

サンプルのゲームにそういうのあるけど、サンプルだからそれでいいってだけで、完成品として
どうかと思うね。あれ見て何も感じなかったり、別にいいじゃんと思えるなら、センスは無い方
だと思うよ。
783名称未設定:2011/04/19(火) 13:22:54.16 ID:TwXxpKEM0
>>782
>>778でFAだろ
784名称未設定:2011/04/19(火) 20:03:01.43 ID:fOE39DFF0
>>782
なんかその話だと、メニューバー自体が不要な感じだな
785名称未設定:2011/04/19(火) 21:28:46.66 ID:TwXxpKEM0
少なくともMacのゲーム作ってる時点で商売センスは無いに等しいな。
786名称未設定:2011/04/19(火) 22:24:22.72 ID:N0llr9Fn0
もうCocoaと関係ないじゃん。いつまで続けるの。
センスがどうとか何様?HIG守る必要がないって思うなら、勝手に作ればいいでしょ。
787名称未設定:2011/04/19(火) 22:40:22.40 ID:5hEa0qq9i
10.7で完全に使えなくなるクラスってどこかにありますか?
788名称未設定:2011/04/19(火) 23:04:20.23 ID:+sXF7DAI0
developer.apple.com見ろよ
789名称未設定:2011/04/19(火) 23:10:30.51 ID:TwXxpKEM0
>>786
2chで何様とか
790名称未設定:2011/04/24(日) 15:18:09.16 ID:fx0M+1Aei
Xcode のプレースホルダのように、NSTextView の中に NSTokenField と同様のトークンを表示させるにはどうすればよいでしょうか?
791名称未設定:2011/04/24(日) 16:59:02.09 ID:vMPIyGdX0
動画のような大きなデータを処理する必要があるのですが,
データ生成プロセスと描画プロセスに分けてから,メモリ上にデータを共有して
描画部が自分のウィンドウ内に書けばいいと考えたのですが,
こういうアーキテクチャはおかしいでしょうか(もっと良いやり方ってあります)?
Mac OS Xでは,どうやってプロセス間でメモリを共有するのが普通でしょうか?
792名称未設定:2011/04/24(日) 17:27:18.06 ID:N0ZkVCrF0
>ユーザーから見たら、使わない編集メニューがぽつんと残っているのは
>すごく未完成というか いい加減な仕事に見える。
俺はこれは逆に感じるな
こいつMacのことよくわかってないみたいだから
他の場所もいい加減な実装してるかもしれないぞ
と思う
793名称未設定:2011/04/24(日) 17:28:36.04 ID:f8B4S+/JP
>>791
プロセス分けると遅いよ?threadでいいやん。
794名称未設定:2011/04/24(日) 17:30:04.18 ID:f8B4S+/JP
どうしてもということであればshm_open。
795名称未設定:2011/04/24(日) 17:42:02.20 ID:vMPIyGdX0
>>793
スレッドだと,どこかがクラッシュするとアプリごと落ちません?
>>794
ありがとうございます!ぐぐってみます。
796名称未設定:2011/04/24(日) 18:01:47.22 ID:YEjQ5IMh0
OSXのposix shared memory APIは制限がきつく設定されてるのでお勧めできない。
http://support.apple.com/kb/HT4022?viewlocale=ja_JP
自分がお勧めなのはここで紹介されてるmmap使う方法
http://mike.kronenberg.org/?p=40
tmpファイルを複数プロセスからmmapしてしまえばshared memoryとして使える。
使ってるAPIもunixでは普通の物なので移植性も高い。ばかでかい領域確保しても
バッキングストアが用意されてるのでVMに負荷もかかり難い。
797名称未設定:2011/04/24(日) 19:16:39.02 ID:RT9Yt/OD0
>>795
・動画データを生成したい
・動画データを描画したい
・上記の処理を同時進行させたい
・片方の処理がクラッシュしても、もう一方の処理が道連れにならないようにしたい。
ということですか。

サーバー/クライアントみたいなモデルはどうですか?
メモリ共有というよりは、ソケット通信になりますが。
798名称未設定:2011/04/24(日) 20:23:11.89 ID:4CALTvxo0
>>796
>OSXのposix shared memory APIは制限がきつく設定されてるのでお勧めできない。
>http://support.apple.com/kb/HT4022?viewlocale=ja_JP

あれ、kern.sysv.ほげ って名前通りSysV系API用のパラメータなんじゃ
ないのかな? もしかしてPOSIX系のAPIも同じメモリプールを使っている??
799名称未設定:2011/04/24(日) 20:26:20.03 ID:elQfZaNM0
>>782
金を払って消させればいい
>>792
ぐだぐだ言ってないで普通に全テストさせればいい、他の人にw
800名称未設定:2011/04/24(日) 21:04:20.75 ID:p/fAsMkH0
MacOS Xクライアントはデフォルト4MB以上の共有メモリブロック取れないんだな。
http://www.spy-hill.com/~myers/help/apple/SharedMemory.html

tmpファイル作ってmmapして、のほうが良い気がする。
801名称未設定:2011/04/24(日) 22:28:43.36 ID:IHGAioNyP
Chromeなんかはタブごとに別プロセスだよね?どうやって通信してるんだろう。
普通にNSProxyかな。
802名称未設定:2011/04/25(月) 08:33:39.02 ID:2nbJ78gt0
>>791
CocoaベースならDistributed Objectで共有するのが楽とは思う。
803名称未設定:2011/04/25(月) 15:48:14.44 ID:/n5GxP85P
QTKitも64bitはプロセス間通信だね。Mach port通してるとは思えない。
804名称未設定:2011/04/25(月) 17:13:07.33 ID:9KzYMbQD0
>>803
Mach portを通す方はプロセス間通信ではないんですかそうですか

ちなみにQTKitの話に関しては、QuickTimeがぐだぐだになっててそんな風に
なっているのではないかと邪推。
805名称未設定:2011/04/25(月) 17:41:13.64 ID:fnrFsgnD0
ノード間とプロセス間をちゃんぽんにするのは
実にUnixらしいよなw
806名称未設定:2011/04/25(月) 18:30:00.47 ID:/n5GxP85P
>>804
Shared memoryって、実データはport通してないよね?
807791:2011/04/26(火) 00:12:21.24 ID:GbS/zpUy0
>>796
ありがとうございます!mmap,すごくよさそうなので試してみます。おそらくこれでいけそうです。
ところで,Objective-CってVM上で動いているのを意識していませんでした。。。
>>797
ソケット通信だとNSConnectionとかを使うということでしょうか。
こちらのほうはCocoa風ですね。

しかし,mmapで共有メモリを確保した後,子プロセスにはどうメッセージを伝えるべきでしょうか?
どちらからも読めるのはわかるのですが,「読め」という指令をどう出して動かしたらいいのか…
それとも,子プロセスが常にどこかを監視すべきでしょうか。
たびたびすみません。
808名称未設定:2011/04/26(火) 00:34:22.13 ID:ap1Efx5JP
VMって仮想メモリマネージャのことでは
809名称未設定:2011/04/26(火) 06:33:26.33 ID:dLXn0KLI0
マルチプロセスの通信はきちんと確保した上で、データのやり取りに共有メモリを
併用する、っていう考え方でいいんじゃね?
810名称未設定:2011/04/26(火) 09:14:31.56 ID:TcgK00v00
>>807
mmapは知らんが、データがストリームになるなら
ソケットやパイプの方がいいのでは。
共用メモリだと、書き出したバッファサイズがわからんぞ。

昔あったQT Streaming Server()ならデータ生成だけやれば
あとは不要だと思うが。
811名称未設定:2011/04/26(火) 12:29:24.62 ID:9cigYCNs0
>>810
>ソケットやパイプの方がいいのでは
どうしても無駄なデータのコピーが発生するよ。Mach IPCは大きなデータは
mmapしたバッファに詰め込んでプロセス間で参照するけど、この場合でも
ローカルからバッファへのコピーが必要
>共用メモリだと、書き出したバッファサイズがわからんぞ
共用領域の大きさ=データ長でも良いし、領域大き目に取ってサイズ等含めても良い。
質問者はフレームバッファみたいなのを共用するつもりの様だから、Core数分の
領域用意して複数フレーム同時にレンダリングするのが、性能最大に発揮する設計
812名称未設定:2011/04/26(火) 17:17:19.24 ID:WjMNRy5g0
誰か >>798 の答えを知りませんか?
やはり自分で調べるしかないのかw
813名称未設定:2011/04/26(火) 18:27:46.58 ID:TcgK00v00
>>812
同じと認識してるけど。
$sysctl kern.sysv.shmmax
kern.sysv.shmmax: 4194304
4MBしかないなー。
814791:2011/04/26(火) 18:46:00.30 ID:GbS/zpUy0
タブを復元する機能って,難しいんでしょうかねぇ…
815791:2011/04/26(火) 18:50:21.73 ID:GbS/zpUy0
うわ,誤爆してしまいました…
すみません。
>>808,810,811
ありがとうございます。
そうするとmmapでデータを共有し,NSProxyなどで制御メッセージを送るということになるでしょうか。
これなら共有領域の大きさは制御メッセージの方に含めておけば解決可能ですね。
816名称未設定:2011/04/28(木) 01:05:53.50 ID:caja+Ieh0
NSTableViewにカスタムセルを追加して、画像とテキストを書き込む処理を行っています。単純に
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView*)controlView
をオーバーライドして、その中でNSTextFieldをaddSubviewしているのですが、
どうやらcellの再描画がかかるたびに新規でNSTextFieldが表示されてしまうため、
cellの中がTextFieldだらけになってしまっています。

NSTextFieldを使っている理由は、
drawInRect:(NSRect) withAttributes:
ではLineBreakModeを指定できなかったためなのですが、
・TextFieldだらけにしない方法
・LineBreakModeを指定してNSStringを表示する方法
のどちらでもいいのですが、何か良い方法はないでしょうか?
817名称未設定:2011/04/28(木) 03:25:18.14 ID:8VQ81Cm90
今あるセルが追加するセルと同じでない時にそれをaddの前に一度削除、同じじゃない時だけadd。
818名称未設定:2011/04/28(木) 06:37:09.24 ID:lqCFEzjo0
>>816
Apple sample code
PhotoSearch -> ImagePreviewCell
819名称未設定:2011/04/28(木) 08:50:07.02 ID:CX0zWyKo0
NSAttributedStringでいろいろしていできなかったっけ?
820名称未設定:2011/04/28(木) 19:51:11.36 ID:kqNbLLZ00
>>816
そこはNSTextFieldじゃなくて、NSTextFieldCellを使うところじゃないのか?
821816:2011/04/29(金) 11:29:21.73 ID:OmupNpPb0
>>817, 818, 819, 820
教えて頂きありがとうございます。
お返事が遅れてしまいすみません。
教えて頂いた内容を調べてみます。
822名称未設定:2011/05/05(木) 23:25:00.92 ID:MRUd1ofk0
以前、モーダルダイアログやドキュメントで質問したことのある者です。
だいたいの基本的機能が完成し公開にむけての作業(これもかなり大変そう)
にとりかかりつつあるのですが、プロジェクトの設定で質問です。
開発環境はSnow Lepard 10.6.6で、x86_64で動作検証していますが、
サポートもx86_64だけでいいかなと考えています。i386も有効なアーキテクチャーに
いれておけば少し古いOSにも対応できるということだと解釈していますが
それで正しいでしょうか。最初に作成したプロジェクト設定が他にも
ppc,ppc64〜ppc970までありますがこれはプロジェクト設定からはずしても
大丈夫でしょうか。Releaseモードでリンクしたら他のstaticライブラリが
同じアーキテクチャーがないとReleaseではリンクエラーとなって、追加したら
オブジェクトサイズが3倍(staticライブラリの)になったもので。
助言をお願いします
823名称未設定:2011/05/06(金) 00:20:41.88 ID:k4ADvsvH0
>>822
i386は”少し古いOS”じゃなくて、”少し古い機種”ですね。
MacOSX10.6は普通にi386をサポートしてます。
ということで、i386 + x86_64のユニバーサルバイナリで良いかと
MacOSX10.6以上でしか動かないアプリなら、ppcは対応外です。
824名称未設定:2011/05/06(金) 15:16:55.50 ID:55ESQeYW0
>>823 ありがとうございます。ppcをはずしてリンクしてみます
825名称未設定:2011/05/06(金) 20:55:49.79 ID:cSE9pSqG0
@implementationと@endは常に1回だけ書くものですか?
あと、初期化するメソッド
- (id)init
{
self = [super init];
if (self) {
・・
}
return self;
}
を@endの前に置いても問題なくビルドできたんですが記述する順番は
関係ないのですか?
826名称未設定:2011/05/06(金) 21:00:11.58 ID:5D7agvk80
>>825
後に置いたら動かないよ
827名称未設定:2011/05/06(金) 21:29:16.93 ID:Zz+xItWy0
// aaa.m
#import "aaa.h"

@implementation hoge

@end

@implementation fuga

@end

@implementation hage

@end
828825:2011/05/06(金) 21:48:27.33 ID:cSE9pSqG0
http://developer.apple.com/jp/documentation/japanese.html
の初級編の電卓ですが動いてます。
コメントアウトしても動いてます。あれ?
x10.6.7xcode3.2.6に勝手にやってくれる機能とかあります?
とりあえず826,827で覚えときます。
さんきゅうー
829名称未設定:2011/05/06(金) 23:00:58.87 ID:rGDZdh/t0
>>828
init 関数はもともとNSObjectクラスで定義されている関数。
なくてもビルドは通るし、今回の場合はinit関数でやっているのが
単なる初期化だから問題ないだけ。

まずはオブジェクト指向を少し勉強したほうが良いのでは?
830名称未設定:2011/05/07(土) 03:05:33.79 ID:HpuVpcpA0
プロトタイプ宣言も出来ない子はC言語勉強してね。
831名称未設定:2011/05/07(土) 12:14:37.58 ID:fyaUkgqw0
Cocoa以前の話だな
832名称未設定:2011/05/07(土) 12:16:26.38 ID:+TqJR+RWP
じゃBASICからだね。
833名称未設定:2011/05/07(土) 13:03:02.74 ID:y8o3o7Zf0
basicで何か得られるとは思えない
834名称未設定:2011/05/07(土) 14:30:45.77 ID:9BhJSgYh0
beep 1
835名称未設定:2011/05/08(日) 11:15:31.85 ID:wddB1BJQ0
プロトタイプ宣言とか面倒だよな。
コンパイラがもっと賢くなればいいのに。
836名称未設定:2011/05/08(日) 11:25:38.66 ID:1xlwXUMa0
VBでもやってろ
837名称未設定:2011/05/08(日) 14:27:20.47 ID:Nfj5+8w90
822,824の者ですが、xibファイルの英語対応ですが、やはり対応すべきでしょうか
もちろん対応するからにはヘルプのファイルまたはWEBもあるていど英語圏むけに
対応しないといけないし。ソフトがどういった種類かにもよるのでしょうけど
国内しかターゲットにしなければ対応必要ないので、そもそもxibファイルを
複数作成しないのでしょうけど。みなさんはどうしてますか
838名称未設定:2011/05/08(日) 17:19:36.60 ID:ngDsfMb20
基本英語で。余力があれば日本語ドキュメントまで整備するけど。
839名称未設定:2011/05/08(日) 18:16:26.85 ID:aGKIK18Y0
Kihon Eigo de.
Kore Joshiki.
840名称未設定:2011/05/08(日) 18:20:02.95 ID:7GihvVfRP
起動時と終了時にウザい「Buy Now」ダイアログを出すとなお良し。
841825:2011/05/08(日) 19:36:52.37 ID:kHcFSXfb0
>>829
例えばどんな不具合が考えられますか?
842名称未設定:2011/05/08(日) 20:14:54.06 ID:LYavn8gg0
>>837
英語と日本語のリソースは両方用意してますね。私は。
英語でドキュメント書けるほど英語得意じゃないので、ドキュメントは日本語だけですが。
843名称未設定:2011/05/08(日) 20:37:33.97 ID:pUT1KGC80
>>841
そんなの作るプログラムによって違うし
そもそもそんなコーディングしないから。

通常は初期化時に持っておきたい情報を持たせる処理を書くから
それが実装されないということは、その処理がおこなわれないだけの話。
844名称未設定:2011/05/08(日) 22:34:50.74 ID:7GihvVfRP
init時に独自のクラス変数とか定義する場合、外に書いたらダメなんじゃないかな?
845名称未設定:2011/05/08(日) 22:39:36.09 ID:LTUGefOX0
Oh My God!基本英語ですか・・・想定外
Windowsアプリはけっこう日本語onlyとか多かった記憶あったので MACは英語文化か
みなさん、ありがとうございます。英語リソース,時間かけて用意します。
ところで、動作確認はOSの言語変更してやるのでしょうかね、具具ってみます
846名称未設定:2011/05/08(日) 22:52:26.26 ID:7GihvVfRP
アラートメッセージとかソースコード中に日本語書くのはあれだし。
言語設定はビルドしたアプリファイルの情報画面から変更出来たような。
(iTunesを無理矢理英語板にする人とかいたような)
847名称未設定:2011/05/08(日) 23:17:29.88 ID:UmjazuBz0
別に日本語でも問題ないよ
848名称未設定:2011/05/08(日) 23:27:30.01 ID:LYavn8gg0
>>845
> ところで、動作確認はOSの言語変更してやるのでしょうかね

”OSの言語”じゃなくて、”ユーザーの言語”だよ。
システム環境設定の「アカウント」でアカウントを1人作って、「言語とテキスト」環境設定で英語に設定すれば、英語ユーザーの出来上がり
849名称未設定:2011/05/08(日) 23:42:09.52 ID:LYavn8gg0
そういえば、Windowsって昔、日本語版Windowsと英語版Windowsが別々にリリースされてなかったっけ?
だから、日本語版Windows用に、日本語専用ソフトがあっても違和感がなかったんじゃないかと。

MacOSXの場合は、最初から全世界グローバルなOSだったから、日本だけじゃなく、世界を意識して作らないとならないよね。

私も昔、日本語リソースだけのソフトをリリースしたら、「英語リソースぐらい用意しろよ!」っていう内容の英語で書かれたクレームをメールで受け取ったことがあります。
ちなみに、そのメールには英語のリソースが添付されていました。
850名称未設定:2011/05/08(日) 23:59:45.70 ID:UmjazuBz0
今でも日本語版Windowsって別にリリースされてない?

AppleはOSに限らず、すべてグローバル仕様よね。
アクセサリーにしても必ず全言語で書かれた説明書の類いが入っているし。
851名称未設定:2011/05/09(月) 02:21:24.85 ID:xyG3vC3G0
>>849
めっちゃいい人やん
852名称未設定:2011/05/09(月) 10:17:34.39 ID:0cr+58Mu0
>>848 thanks
>>846 >アラートメッセージとかソースコード中に日本語書くのはあれだし
これやっちゃっているんです。Windows版はリソースにすべて定義するのですが
どうやってますか?>ALL
853名称未設定:2011/05/09(月) 13:03:54.85 ID:0xSaA8vm0
854名称未設定:2011/05/09(月) 17:03:53.00 ID:oma/c2z6P
英語と日本語でiTunesプラグイン出したら、中国語やドイツ語などのnibをユーザーが送ってくれたよ。
855名称未設定:2011/05/09(月) 21:48:17.62 ID:oh5wWng60
俺のアプリは勝手に中国語版が出回ってたよ。
856名称未設定:2011/05/09(月) 22:12:06.30 ID:pR2mQuFl0
狐のアラビア語版はいろいろ楽しかった。
857名称未設定:2011/05/10(火) 12:55:52.35 ID:YgUInEoe0
Win7はしらないけどXPは確かにそう
職場には英語版Windowsと日本語版Windowsが混在している
普段使う分には違いはわからないけどパッチが英語版と日本版では違うので
ローカルのサーバーからパッチを配布するときに困る
(なにか方法があるのかもしれないけどWindowsに詳しくなりたくはないw)
858名称未設定:2011/05/10(火) 13:42:42.32 ID:Sb7+s9De0
WindowsはOSに基本的な多言語機能は備わってるけど、多言語パッケージ付いて来るのは
Ultimateエディションだから2万〜3万円余分に払わないとOSX同等にはならない。
普通売ってるマシンに付いてるのってHome Premiumだけど、メモリの上限が16MBとか
他にも色々制限あるよ。
859 忍法帖【Lv=17,xxxPT】 :2011/05/10(火) 13:46:07.33 ID:l/rF+uGP0
>メモリの上限が16MB
いつの時代だw
860名称未設定:2011/05/10(火) 13:46:27.85 ID:Sb7+s9De0
16MB→16GBね。orz
861名称未設定:2011/05/11(水) 03:30:46.61 ID:z/37qhaz0
先生、メモリを増設したのに
8Mまでしか認識されません!
862名称未設定:2011/05/11(水) 09:35:04.25 ID:nvCxhmJD0
Mode32か32bit System Enablerを入れなされ。
863名称未設定:2011/05/11(水) 20:49:07.92 ID:iIFphgJD0
たんにマクはそれぞれの言語ごとに作る余裕無いから全部入りなだけ。
ウィンドウズで言う言語ファイル(language files)みたいなものだ。

マクだと省電力機能にも対応できてない。今年の夏は終わってる。

ウィンドウズPC自動節電プログラムについて
ttp://support.microsoft.com/kb/2545427/ja
ttp://go.microsoft.com/?linkid=9772041
864名称未設定:2011/05/11(水) 21:20:11.49 ID:5WSoRGqCP
(;゚Д゚)
865名称未設定:2011/05/11(水) 22:05:38.61 ID:U9bCcZiH0
それぞれの言語ごとに作ることがアホで無駄なことだと最初から言っているのに…。

あと省エネルギー環境設定の存在も知らないんだな…。
866名称未設定:2011/05/11(水) 22:15:25.41 ID:KR/TLWnJ0
867名称未設定:2011/05/11(水) 22:31:47.44 ID:pydQufiP0
各スレで突っ込まれてるな
868名称未設定:2011/05/12(木) 00:02:07.50 ID:LmxlAiUD0
微妙なスレばかりだなw
ibookとか
869名称未設定:2011/05/12(木) 00:47:56.75 ID:5C9KTvLR0
よほどコンプレックスがあるのだろう
870名称未設定:2011/05/12(木) 12:02:34.84 ID:nOMOzRe60
スレですか、ああそうですか
871名称未設定:2011/05/12(木) 15:45:05.75 ID:cI/2jg3U0
国際化の手法についてご教授してくださった方、まつわるエピソードなど
ありがとうございました。xibは比較的簡単に複製しましたが、ソース中の
NSLocalizedStringは2週間はかかりそうですがデバッグの意味も含めて
ゆっくり作業しようと思います。アプリのテストは言語設定変更しアプリの
再起動ですぐ確認できる(ログアウトまで必要ない)ということでWinより
簡単と思われますね。
話はメモリ管理の話になりますが、スレッド中はすべてNSAutoreleasePoolで
個別にはreleaseしないようにしていますが、(個別にやるとNSAutoreleasePoolの
解放時にシグナル発生するか不安定となる)メインとの共通で使用されるサブ関数が
あるとメインスレッド時には確実にReleaseしたいし、スレッド実行時には
解放したくないし、パラメータで厳密に制御すべきか、そんなことで悩んだ方
おられますか?
872名称未設定:2011/05/12(木) 19:07:52.17 ID:sKp/YPyD0
今度は、スレッドとメモリ管理の問題ですか。
なんかリリース間近と聞いた気がしたけど、先は長そうだなぁ
873名称未設定:2011/05/12(木) 19:37:21.20 ID:5C9KTvLR0
メモリ管理の根本的な所を理解してない雰囲気だな。
874名称未設定:2011/05/12(木) 20:07:08.94 ID:sKp/YPyD0
>>871
で、そのスレッドは、なんのためのスレッドなの?
マルチコアを活かしてパフォーマンスが欲しい?
バックグラウンドで常時処理し続けるデーモンみたいなのがある?
上記以外?
それによって、戦略が変わってくると思うんだけど。


> NSLocalizedStringは2週間はかかりそうですがデバッグの意味も含めて
よく見ると、デバックもまだだったのか...
875名称未設定:2011/05/12(木) 20:35:39.87 ID:/UB0xAe70
え、NSAutoreleasePoolの理解が間違い?
もしかして、個別にリリースしても問題ないはずか、とりあえず
処理はもちろんテストしてある程度まで(10回くらい)動作は確認している
もちろん50回くらいスレッド生成-終了テストしたいが、これは自信ないというか
時間も限度があるので問題が出たときの追求は後回しということで
オプション設定が多いのでそういうテストケースは一通りやってますよ
スレッドの理由は処理中もユーザーの操作ができるようにしたいからで
まあ、個人出品なのであまり厳しく追及しないでね
876名称未設定:2011/05/12(木) 20:44:32.52 ID:V5izOdvC0
877名称未設定:2011/05/12(木) 22:20:51.68 ID:sKp/YPyD0
>>875
> スレッドの理由は処理中もユーザーの操作ができるようにしたいからで

「処理を子スレッドで行う」ことと、「親スレッドと子スレッド間でメモリ管理の問題が発生する」ことの繋がりが、まだよく分からないのですが。

また、「メモリ管理に問題がある」ことと、「一通りのテストを行って問題ない」ことの繋がりも、よく分かりません。

878名称未設定:2011/05/13(金) 00:00:06.36 ID:b4/4ySHi0
>>877
875ですが、まず。子スレッド開始時その先頭でNSAutoreleasePoolを生成し
そのスレッド終了時に解放します。これはスレッド処理をやるとわかるのですが
このNSAutoreleasePoolを使用しないと大量のメモリリークワーニングが
デバッガ上に表示されます。メインスレッドではそのようなメッセージが出ることはない。
(子スレッド上では個別に解放処理をしてもこのメッセージを完全に消すことは
できない。これはググレばいくつかのサイトで解説している事項ですし
アップルのサンプルにもあったと思います)
それで、ここからは自分がデバッグをしていて勘違いしたのかもしれないですが
NSAutoreleasePool解放時にシグナルで落ちることがありまして、いろいろ
ソースを検証していた結果個別にオブジェクトをreleaseしている箇所がありまして
ためしにそれらをコメントにしたところNSAutoreleasePool解放時に
落ちなくなりました。ただこれは自分のソースでの経験上ですので
確実にそうかどうかはわかりません。ただスレッド内の処理をどんどん追加していくなかで
またreleaseをくせで入れてまたスレッド最後に落ちるということがあり
再びrelease部分をコメントにしたらNSAutoreleasePoolの解放時に落ちなくなった。
これは動作を何度もやるなかで、(releaseのコメントをふたたびはずしてみたり)
かなり確信に近いものがあったので)、871のようなことを書いてみたわけです
879名称未設定:2011/05/13(金) 00:21:29.71 ID:RGY57Zjs0
プログラミングはできてて、Objective-cのメモリ管理に慣れてないだけみたいだから
これ読むかGCを有効にしてみてはどうでしょう。
たぶん、releaseしちゃイケナイものをreleaseしてるから、自動解放プールで問題が出てるのでは?
http://developer.apple.com/jp/devcenter/ios/library/documentation/MemoryMgmt.pdf
880名称未設定:2011/05/13(金) 00:22:14.96 ID:pjhfKall0
>>878
単にautoreleaseオブジェクトをreleaseしてるんだろ。
881名称未設定:2011/05/13(金) 00:49:06.35 ID:rst7hOtw0
読みにくいレスだなぁ
882名称未設定:2011/05/13(金) 10:09:55.21 ID:qGOErdOw0
ソースコードをベタっと貼られて、デバッグしてくれとなる予感
883名称未設定:2011/05/13(金) 21:46:40.36 ID:IZocTdRZ0
>>878
GCを使わないなら、NSAutorelesePoolが無い環境ではObjective-Cは動作しない。ぐらいに考えてもらっても過言ではないですよ。
メインスレッドの場合は、main()関数の中のNSApplicationMain()でNSAutorelesePoolが作られています。
だから、自分で子スレッドを作るなら、自分でNSAutorelesePoolを作らないといけません。

で、子スレッド内でallocしたオブジェクトを子スレッド内でreleaseするだけなら、通常どおりのやりかたで問題ないはずなんですが。

884名称未設定:2011/05/14(土) 03:13:14.27 ID:5OVymauX0
>>883
なるほど、ありがとうございます。通常のreleaseが問題ないということなので
そもそもreleaseタイミングが悪いか、allocではなくてreleaseしてはいけないAPIの戻り値をrelease
して問題がおきていたか。もう1回検証して、問題点がわかったら報告します。
autorelease宣言の箇所はとても少ないのでそれをreleaseはしていないはず。
CocoaさわってというかMAC Book Proはじめて買って半年たちましたが、ようやく
メイン画面と3つ設定画面があり通信機能も動作するものが出来上がりました。
まだ各種アラート、英語と日本語の動作検証は必要ですが。
このデバッグもアラートダイアログを出すだけで限界値とかオプションの設定を変えたりテストケースを
ある程度網羅していくことになるのでもう一度デバッグがてらという表現だったんですけど
>>882
前にも書いたとおり、現在はエラーで落ちることはないように自己解決しているし、動作も問題ない。
よりメモリ管理を完全にしたいという意味で書き込んだわけです。
理解不足はありましたが文面を読めばデバッグをお願いすることなどありえないことが
理解できないですかね。そこまで言うならCocoaの熟練度を教えてもらいたい。
885名称未設定:2011/05/14(土) 03:19:18.98 ID:5OVymauX0
あ、すみません
884で「このデバッグもアラートを出すだけで〜デバッグがてらという
表現だったんですけど」は>>883の方に対してではなくて
>>874
>よく見ると、デバックもまだだったのか...
の方に対してのレスでした
886名称未設定:2011/05/14(土) 06:04:47.56 ID:UB5dtiSa0
>>884
何を偉そうに書いてるか分からんが、
簡易コンストラクタで生成したオブジェクトをreleaseして落ちてるんだろ。
とりあえず落ちない=安全というわけではない。
不要なオブジェクトが溜まり続ければ、いずれアプリは落ちる。
887名称未設定:2011/05/14(土) 11:28:09.07 ID:IGOdPVfx0
- initはretain
+ hogeWithArg 系はautorelease
CF系もretain
自分でretainしたら自分でrelease、他人のretainには干渉しない
NSArray,NSDictionaryの中身のretain(add/setObject)には干渉しない
メソッド抜けたらautorelease
dealloc内でretainしたインスタンスをrelease
poolをreleaseしたらそれまでのautoreleaseされたもの全部自動release

この辺の法則守ってれば、凡ミスでもない限り二重解放とか起こらないと思うんだが。
888名称未設定:2011/05/14(土) 13:37:42.56 ID:TaQv/s2v0
>>887
スレッドの問題は残るな。
889名称未設定:2011/05/14(土) 14:58:41.88 ID:u5Uy2lo80
>>885
874と883は同一人物なので問題ないよ。

ちなみに、デバックとはバグを取り除くといく意味です。つまり、バグが既に発見されているという前提条件があります。

> NSLocalizedStringは2週間はかかりそうですがデバッグの意味も含めて
> ゆっくり作業しようと思います。

バグを発見していたのに、まだコードを修正していなかったのか。と思いました。
890名称未設定:2011/05/14(土) 16:28:05.37 ID:/gL8wvpFP
まあ、あまり言葉尻に突っ込む事もないかと。
891名称未設定:2011/05/14(土) 19:46:44.30 ID:6A6cHdhU0
流れを遮ります。
ローカライズで、Xcode3とXcode4で互換性が無い箇所を見つけました。

designableDisplayPattern が ibShadowedDisplayPattern に変わってしまい、
Xcode 3で動いていたxibの書出しスクリプトが、
Xcode 4では動かない状態になっています。

まだ環境は行ったり来たりする必要があるのですが、うまい対処方法がありませんでしょうか。

//

Xcode 3.2.6のibtoolで抽出
/* Class = "IBBindingConnection"; designableDisplayPattern = "%{value1}@ / %{value2}@"; ObjectID = "872"; */
"872.designableDisplayPattern" = "%{value1}@ / %{value2}@";

/* Class = "IBBindingConnection"; designableDisplayPattern = "%{value1}@ / %{value2}@"; ObjectID = "873"; */
"873.designableDisplayPattern" = "%{value1}@ / %{value2}@";


Xcode 4.0.2のibtoolで抽出
/* Class = "IBBindingConnection"; ibShadowedDisplayPattern = "%{value1}@ / %{value2}@"; ObjectID = "872"; */
"872.ibShadowedDisplayPattern" = "%{value1}@ / %{value2}@";

/* Class = "IBBindingConnection"; ibShadowedDisplayPattern = "%{value1}@ / %{value2}@"; ObjectID = "873"; */
"873.ibShadowedDisplayPattern" = "%{value1}@ / %{value2}@";
892名称未設定:2011/05/14(土) 20:38:29.71 ID:lCrHH3rp0
>>887
CFもCopy, Createは所有権ありだけど、
Getは無しだから、Get時にCFReleaseしたら二重解放になるんじゃ?
893名称未設定:2011/05/17(火) 23:05:29.79 ID:fz8KcyTo0
884ですが、検証しました。スレッド最後にNSAutorelesePool解放時落ちるということで
コメントにしていたreleaseは理由をコメントに書いてコメント化していたので
再度のテストはすぐできました。コメント化していた部分はすべて明確にallocで、1つはretain宣言もしていました。
すべてコメントを外しreleaseを再び行うようにしましたが、時間をかけ動作確認しましたがなぜか問題なし。
大変お騒がせし申し訳ありませんでした。推測ですがデバッグ当時、メモリ破壊がありそもそも動作が不安定だったことが原因だと思われます。後でバッファサイズが足りず修正した記憶がありました。
(一部Widnowsで使用していたコードそのままでメッセージがUTF8になっていること考慮していない個所を見つけたのでそれが原因か)
大変失礼しました。
894名称未設定:2011/05/18(水) 00:55:15.61 ID:4jRhL1Tq0
>>893
allocしたものをretainしてるの?
本当にメモリ管理のことを何も分かっていないんじゃ…
895名称未設定:2011/05/18(水) 01:04:02.48 ID:W4F8CkTo0
自分のブログにでも書いててくれもう
896名称未設定:2011/05/18(水) 09:28:21.03 ID:3zZDiSCs0
メモリ管理はプログラムの基本中の基本だぞ。
897名称未設定:2011/05/18(水) 11:13:20.67 ID:1CcqoRP50
initとallocはどんな時に行うものですか?
ポインタで宣言してallocでインスタンス化してinitで初期化すると思ってたんですが
必ずしもこの手順を踏んで無いようにも思います。
898名称未設定:2011/05/18(水) 11:24:34.47 ID:kYe6BVXr0
踏んでない例のコードを。
899名称未設定:2011/05/18(水) 11:52:50.58 ID:1CcqoRP50
- (void)windowControllerDidLoadNib:(NSWindowController *) aController
{
[super windowControllerDidLoadNib:aController];
// 書類のURLを取得します
NSURL* fileURL;←←←←
fileURL = [self fileURL];
if (!fileURL) {
return;
}
// テキストファイルを読み込みます
NSData* data;←←←←
NSString* string;←←←←
data = [NSData dataWithContentsOfURL:fileURL];
string = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
if (!string) {
return;
}
// テキストビューにテキストを設定します
[textView setString:string];
}
「←←←←」箇所ですが
stringはallocのみしてますがalloc,initはしなくても良いんでしょうか?
900名称未設定:2011/05/18(水) 12:29:43.82 ID:rdX1/aeH0
901名称未設定:2011/05/18(水) 12:41:08.48 ID:rdX1/aeH0
あれ、規制が解けてた。
with〜で始まる初期化はautoreleaseが自動で組み込まれている。
それそろテンプレに入れてもいいんじゃないか、これ。
902名称未設定:2011/05/18(水) 12:41:36.26 ID:y2oTKMp1i
((((;゚Д゚)))
903名称未設定:2011/05/18(水) 12:49:37.11 ID:pi4FN9w40
コンビニエンス コンストラクタ
904名称未設定:2011/05/18(水) 12:56:26.33 ID:1CcqoRP50
モヤモヤが解消されそうです
ありがとうございました
905名称未設定:2011/05/18(水) 13:09:15.08 ID:VY83TaXRi
initWithなんたら:initしているので手動でreleaseまたはautorelease
なんたらWithなんたら:alloc init autorelease全部入りのお得パック
906名称未設定:2011/05/18(水) 15:18:39.13 ID:vizGITGh0
何でややこしくする

自分がオーナーシップを持つものは不要になったときリリースしなければならない

オーナーシップを持つものとは
1、+allocしたもの (+newも含む )
2、-copy, -mutableCopyしたもの
3、-retainしたもの
である。

リリースする方法は
1、 -release する
2、 -autorelease する
の2通りの方法がある


オーナーシップを持たないものは決してリリースしてはならない
907名称未設定:2011/05/18(水) 15:45:47.52 ID:MXbBC9VN0
どっちがややこしいかは↓が判定
908名称未設定:2011/05/18(水) 16:09:51.48 ID:3zZDiSCs0
自明である。と
909名称未設定:2011/05/18(水) 16:27:38.22 ID:aFKBVZIC0
UIView *okView = [UIView alloc] initWithFrame:CGRectMakeうんぬんかんぬん] ];
[self addSubView:okView];

この場合、okViewのほうで
[self removeFromSuperView];
[self release];

とやっちゃ駄目なんですか?
910名称未設定:2011/05/18(水) 16:39:07.19 ID:Ey9jluUA0
>>891
確かXcode 4でもibtool 3は利用可能ですよね? (自分は環境を消しちゃってチェック
不可能) というわけで同じバージョン系列のibtoolを使い続けるとか?
ibtoolも3と4ではこれ以外にもいろいろ互換性がなさそうだし...
911名称未設定:2011/05/18(水) 17:24:30.08 ID:vizGITGh0
>>909
原則としてはダメです
作成者は-addSubview:した後それが不要なら-releaseすべきです

つまり、このような(>909)方法が必要ない実装にすべきです


ただし、コンパイルが通る以上、絶対にダメというわけではありません。
リーク/オーバーリリースしないように細心の注意を払い続けるのなら問題ないでしょう
もちろん、お奨めしませんが。
912名称未設定:2011/05/18(水) 17:51:24.36 ID:aFKBVZIC0
>>911
なるほど、ありがとうございます。
913名称未設定:2011/05/18(水) 18:11:29.58 ID:4jRhL1Tq0
>>901
嘘書くなよ
914名称未設定:2011/05/18(水) 18:14:44.59 ID:l0tJEtJl0
Cocoaのスレで、なんでObjective-C2.0の話してんの?
915名称未設定:2011/05/18(水) 18:23:38.34 ID:pi4FN9w40
AppKitも関係するからかと。
916名称未設定:2011/05/18(水) 20:31:17.34 ID:tYDlQG5Z0
Objective-Cの話を避けながら、Cocoaの話をするのって難しいと思うよ。
917名称未設定:2011/05/18(水) 21:27:43.60 ID:3PyPS5j30
いいかげん、>>2の関連スレと合体すればいいのに
918名称未設定:2011/05/18(水) 21:52:41.63 ID:rUtEy5Qr0
たしかにVisualStudioとかもプログラム板にあるのに、
なんでマックのプログラムスレは新mac板にあるんだろ?
919名称未設定:2011/05/18(水) 21:57:16.63 ID:OX2dR0zv0
じゃあ次スレからは移動します?
920名称未設定:2011/05/18(水) 22:22:32.77 ID:EELonN3I0
弊害しかないと思うよ
ム板のSubversionスレなんてTortoiseSVNの話ばっかり
正直Windows板でやってくれって思う
921名称未設定:2011/05/18(水) 22:34:53.24 ID:tYDlQG5Z0
スレの名前だけ変えれば?
もっと広域的に「Mac Developerはさっぱり!!!」とか
922名称未設定:2011/05/19(木) 03:05:48.90 ID:l0yEAjLA0
ここでいい
923名称未設定:2011/05/19(木) 08:13:27.37 ID:C90dlVNF0
ム板にあるスレ

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

Objective-C [ObjC part:5];
http://hibari.2ch.net/test/read.cgi/tech/1279730299/
924名称未設定:2011/05/19(木) 20:33:39.84 ID:kj5X+Sv10
そもそもマクのシェアが低いからな。
925名称未設定:2011/05/19(木) 20:39:48.89 ID:dy/tUm+H0
あひーっ!
926名称未設定:2011/05/19(木) 20:43:14.76 ID:BArwDZZ/0
じゃあ、このスレいらないじゃない
927名称未設定:2011/05/20(金) 00:37:45.80 ID:SZ7wtlUp0
まあ移って悪いわけはないと思うが
むしろなぜ今まで移らなかったかだな
928名称未設定:2011/05/20(金) 01:02:26.12 ID:9LdvIFBB0
映ってもマクを買わないとそもそも必要無いから意味が無いw
929名称未設定:2011/05/20(金) 01:17:56.03 ID:tL7IfkdZ0
ハードウェア
ソフトウェア
プログラム

この辺りのPC関連スレは、OSがWindowsであることが暗黙の了解
プログラムはLinuxとかもあるだろうけど。

15まで続いたスレを放棄して、今更移る意味がない。移って何か変わるの?
930名称未設定:2011/05/20(金) 06:45:37.98 ID:PhubaXOO0
>>928
なにこの「Mac買ったら負け」みたいなやつ
931名称未設定:2011/05/20(金) 07:10:37.93 ID:Up3Kimrw0
スレ見て違いが分からないやつはどこでも好きなとこへ行けばいい
もともとMacのプログラム系はゆったりとした流れだったんだし、最近のiOS系で沸いてきた人らとスレは飽きたら好きなところへ移ればいい
このスレはこのままで良し
932名称未設定:2011/05/20(金) 08:00:35.82 ID:6fbKwKjy0
933名称未設定:2011/05/20(金) 13:13:31.52 ID:7SUrR57S0
森永〜♪
934名称未設定:2011/05/20(金) 15:57:05.97 ID:63NHMuYM0
そろそろ、Cocoaはやっぱり!を知らない世代も増えてきただろうな。
更新も止まってるし。
935名称未設定:2011/05/20(金) 17:51:04.66 ID:ja/Op1Ys0
知らないも何も、テンプレにリンクあるじゃん。
移転してるから、次スレでリンクを変えた方がいい。
トップページ http://sitearo.com/
直接 http://sitearo.com/cocoa/index.shtml
936名称未設定:2011/05/22(日) 15:09:53.56 ID:Jn7joOvyP
次のタイトルは

「苦しいCocoaプログラミング[Lion対応版] version.16」になる?
937名称未設定:2011/05/22(日) 15:22:26.54 ID:y4QhCeMW0
990過ぎてから考えようぜ。
過疎スレだし。
938名称未設定:2011/05/25(水) 17:20:20.36 ID:YOnaJaiw0
ああああ嗚呼、変数名変えてええぇ
変数名だっさあぁぁい
置換めんどくせえぇぇ
メソッドの引数とかもめんどくせえぇ
しかも既にある変数名を別に変えてからその名前にするとか死ねるぅぅ
939名称未設定:2011/05/25(水) 17:48:21.63 ID:dAHHpVpL0
さっさと氏んでいいよ
940名称未設定:2011/05/25(水) 18:14:33.05 ID:N4AKlej50
Xcodeのリファクタリング使えばいいじゃん
941名称未設定:2011/05/29(日) 14:37:36.52 ID:uXqAZa1k0
ココアの関数名長過ぎとは思う。
cfなんとかとかnsなんとかとか長過ぎ。
みんなヲレ関数で包んで短く使いやすい様に工夫してたりするの?
942名称未設定:2011/05/29(日) 14:41:46.27 ID:XIWFLLXM0
Xcodeで補完されるので長くても問題ない。POSIX系の省略されすぎた
関数名の方が嫌。
943名称未設定:2011/05/29(日) 15:04:35.67 ID:4xFKjnqa0
長いとも思わんし、不都合とも思わない。
944名称未設定:2011/05/29(日) 15:26:45.45 ID:Jztq2Vwk0
最近はstrとかlenとかcpyとか省略された名前に違和感を持つよ。
945名称未設定:2011/05/29(日) 17:35:17.86 ID:1TiUoZyA0
まあ、読んで意味が分かればどっちでも良い。
946名称未設定:2011/05/29(日) 19:46:04.71 ID:xnIYwdaj0
オレも意味不明に短い方が辛いなぁ
947名称未設定:2011/05/29(日) 20:07:26.10 ID:gGzp9ZAN0
C言語のライブラリとか、省略しすぎててAPI眺めるのも嫌になるね。
しかもまともなコメント書かれてなかったりするし。
948名称未設定:2011/05/29(日) 20:09:58.90 ID:M/Dge0C/P
今時、cpyとstrのような省略形を使うのって、自動車のECUとか、itronつかっているような
コテコテの組み込みだけだと思う。
949名称未設定:2011/05/29(日) 20:23:51.79 ID:XIWFLLXM0
大昔のメモリとかストレージが高価だった頃の名残だろうね。
950名称未設定:2011/05/29(日) 22:00:20.49 ID:f30b1j3g0
手でシコシコ入力する訳じゃないしな
951名称未設定:2011/05/29(日) 22:11:20.04 ID:HojKfQZj0
NSStringがNSStgとか、
NSMutableURLRequestがNSMURとかなら
余計にわかりづれえべよなw
952名称未設定:2011/05/29(日) 22:46:14.65 ID:eyq9b12j0
名前空間があればStringだけでいけたかもな。
まぁ関数って言ってるんでapplicationDidFinishLaunchingとかの話なんだろうが。
onLaunchでええやんと言われると、まぁそれでいい場合ならそれでいいかもなと、若干答えが面倒になる。
953名称未設定:2011/05/29(日) 23:47:17.29 ID:7qcl1endP
型なしOOPLだとメソッド名はグローバルな存在だからなあ。
衝突しないようにしようとすると長くなるのはしょうがない。
954名称未設定:2011/05/30(月) 14:23:51.48 ID:B9CRm/B00
質問です。
WebKit?でインストールされているSafariのユーザーエージェント名を取得する方法はありますでしょうか?
NSMutableRequestで取得したユーザーエージェント名をセットしたいのです。
(とあるサイトにリクエストをする時に、ユーザーエージェント名を省略したら
うまく動かず、固定文字を入れたら動いた。)

よろしくお願いします。
955名称未設定:2011/05/30(月) 15:31:49.01 ID:ovwv1ouf0
>>954
SafariのバンドルリソースにUserAgents.plistてのがあるから
そっからとればいんじゃね?
956名称未設定:2011/05/31(火) 07:23:25.89 ID:8yD/GCme0
957名称未設定:2011/05/31(火) 17:56:30.05 ID:emO+Y9V+0
RFC 2616のUser-Agentの規定から言うと、「勝手に」他のアプリケーションのUAを使うのは勧められないんじゃね?
とりあえず、アプリなんだから自分独自のUAを規定して、偽装しなければ受け入れてくれないサービスにアクセスしたいなら、
せいぜいSafariの「開発」メニューみたいにユーザーに選択させるぐらいにしとくのが良いと思う。
Safariが一個しか入ってないとは限らないしね。
958名称未設定:2011/05/31(火) 18:26:37.92 ID:eNgpGYWz0
webkitってそれが未設定なら勝手にAppleWebKit/hogehoge とかいうUAセットするんでないの?
959名称未設定:2011/06/02(木) 17:28:03.81 ID:fZT0eeLKi
>>955-958
いろいろありがとうございます。
試行錯誤で取れるようになりました。

// ロードされていないとかなんとかエラーになる
//NSBundle *bundle = [NSBundle bundleWithIdentifier:@"com.apple.Safari"];
NSBundle *bundle = [NSBundle bundleWithPath:@"/Applications/Safari.app"];

NSString *filePath = [bundle pathForResource:@"UserAgents" ofType:@"plist"];
NSArray *userAgents = [NSArray arrayWithContentsOfFile:filePath];
NSLog(@"userAgents=%@", [userAgents description]);
960名称未設定:2011/06/02(木) 18:04:11.19 ID:RIDWtkHI0
>>959
自分や身内だけで使うならいいけど、
もし公開するアプリならなんか嫌w

Safariを削除した人がいるかもしれないし、
UserAgents.plistってその人の環境に依存
しない決め打ちのUAのはず。
ならはじめから決め打ちのUAでいいかとw

Safariの様な開発メニューを作るにしても
独自にplistを用意したほうが良いよ。

CPUとOS、webkitのバージョンを取得して
NSStringを作る方法を模索してみては?
961名称未設定:2011/06/02(木) 18:12:06.99 ID:IvTUR2Zr0
>>960
もちろん、取得できない場合やSafariのバージョンからの判定、
取れない場合の代替え処理は追加しています。
962名称未設定:2011/06/02(木) 18:47:31.26 ID:6fTuImIT0
>>959
うちはApplicationディレクトリの中身相当変えてるわ。
たぶん無理だと思うw
963名称未設定:2011/06/02(木) 20:02:54.18 ID:RIDWtkHI0
>>961
どうもこっちの言い方が悪かったかなw

わざわざSafariのリソースから読み取る必要は
無いと思うんだけどw

SafariのUserAgents.plistと同じようなものを
自分のアプリ内に入れておけばいいだけじゃね?

ま、いいやw
964名称未設定:2011/06/02(木) 20:28:23.98 ID:ZEt1IxYMi
「あれー、Safari6にあげたんだけど、
このアプリ5までしかねえや。だっせぇの。」
965名称未設定:2011/06/02(木) 21:05:55.42 ID:RIDWtkHI0
>>964
理由付けとしては無理があるw

おれのFirefoxは4.0.1だけど、
Safariの開発メニューに出る偽装UAは3.6.1以下
だけど、だっせぇにはならんw
966名称未設定:2011/06/03(金) 16:12:04.59 ID:B5MCNKqq0
NSArrayの全要素を、可変個の引数のメソッド/関数に渡すにはどう書けばいいでしょう?
NSArrayの全要素が @"A",@"B",@"C" だとした場合、
NSLog( @"〜〜〜", @"A",@"B",@"C" );
となるようにしたひ
967名称未設定:2011/06/03(金) 17:26:10.07 ID:5iqy3HrM0
無理。
968名称未設定:2011/06/03(金) 17:29:15.93 ID:xZ0tijPK0
@implemenation NSArray (hoge)
- (NSString *)hoge
{
NSString *hoge = @"";
for(id obj in self) {
hoge = [hoge stringByAppendingFormat:@", %@", obj];
}
return hoge;
}
@end
969名称未設定:2011/06/03(金) 17:36:58.69 ID:XewF5SVY0
>>966
関数が相手なら、アセンブラでできる。
メソッドが相手なら、NSInvocationでできる。
970名称未設定:2011/06/03(金) 18:38:00.10 ID:ShyUNR9A0
受け取った先で展開すればいいんでないの?
NSLogとかは[array decription]で中身は見れると思うけど。
971名称未設定:2011/06/03(金) 18:57:48.03 ID:B5MCNKqq0
すいません。NSLogは例えとして書いただけです。
確かにNSInvocationならできそうですが、
どうしてもNSArrayの要素は巡らなくちゃですね。
ありがとうございました。
972名称未設定:2011/06/03(金) 21:37:21.03 ID:t1DgjV1k0
前書き込んだ者だが、英語のNSLocalizedStringも終わり、PackageMakerの作成しながら
今説明のWEBも日本語、英語、両方用意しようとしているところですが、なかなか作業は大変だ。
AppleStoreの申請はいつになることやら。Google翻訳は賢いね
973名称未設定:2011/06/03(金) 22:12:05.87 ID:Pe++6HWG0
>>972
日記はmixiにでも書いてろ
974名称未設定:2011/06/03(金) 23:18:20.43 ID:6lvltdFJ0
AppStore経由なんだ。
売れるといいね。
975名称未設定:2011/06/03(金) 23:41:12.40 ID:Pe++6HWG0
AppStoreじゃなくてAppleStoreらしいけどな。
976名称未設定:2011/06/04(土) 00:08:08.53 ID:K7JENvya0
>>973 前はブログにでも書けと言った人かな mixiもブログもやってない・・
>>974 まあとにかくやってみたいので、Appleの承認という壁もあるのでそれも覚悟しています。
1回目は差し戻されても2回目には承認されたいけど、目標ということで
977名称未設定:2011/06/04(土) 00:24:16.05 ID:W1PeZZnt0
>>976
交換日記にでも書いてろ
978名称未設定:2011/06/04(土) 01:17:16.85 ID:shq+9SVL0
チラシの裏だろ
979名称未設定:2011/06/04(土) 06:17:37.48 ID:/t8C+j7r0
>>976
mixiもブログもやらないのは勝手だが2chを日記スペースにするな。
お前みたいなやつが2chを広告スペースと勘違いして叩かれるんだよ。
980名称未設定:2011/06/04(土) 07:27:37.94 ID:xRrbsN5R0
掲示板は共有スペースだからな。
ブログに日記を書いて人に見にきてもらうのと、人が集まって見ているところへ日記を書き込むことの違いを分かって欲しい。
端的に言うと迷惑。
981名称未設定:2011/06/04(土) 13:44:24.22 ID:1uDUrmAL0
次スレ

Cocoaはさっぱり!!! version.16
http://hibari.2ch.net/test/read.cgi/mac/1307162542/
982名称未設定:2011/06/04(土) 16:16:48.75 ID:temOE8Txi


ネタがない時は雑談ネタで進むのもいいと思うけど。
なんでもかんでもすぐにスレチを叫ぶのは公務員的で嫌い。
983名称未設定:2011/06/04(土) 16:27:38.83 ID:Dzf11Qvn0
2ch はお前の落書き帳だからな。
984名称未設定:2011/06/04(土) 17:08:24.62 ID:0mhj0eR80
公共の場で「◯◯(公序良俗に反しない)するな」っていう方がおかしいし、
それを守らせたかったら、それこそ自分のサイトにでも場を作って
自分のルールを押し付けるのがいいよ。
985名称未設定:2011/06/04(土) 17:20:08.66 ID:Dzf11Qvn0
自己言及的なレスだな。
986名称未設定:2011/06/04(土) 17:41:33.03 ID:ioFQuSQE0
>>984
「なんでもかんでもすぐにスレチを叫ぶな」
こう?
987名称未設定:2011/06/04(土) 18:36:28.72 ID:rhugmqpK0
ルールが気に入らないなら他所へ行けばいいのに。
988名称未設定:2011/06/04(土) 20:14:44.12 ID:xRrbsN5R0
>>984
公序良俗に反するかどうかじゃなくて一般常識とかネチケットぐらいの次元で考えた方が良い。
989名称未設定:2011/06/04(土) 23:51:59.76 ID:iN2GuDrF0
自分の気に入らない相手にヲレルールを主張するのもどうかと思うけどな。
そんなだからウィンドウズに勝てない。
990名称未設定:2011/06/05(日) 00:37:15.52 ID:1lqPdnr00
知らない奴の糞の役にも立たない日記を
どうやって気に入れと?
991名称未設定:2011/06/05(日) 00:45:02.29 ID:gGFdrsoI0
埋めますか

>>989
1行目と2行目が乖離してますよ。まるで、お隣の民族みたい。
「竹島問題を教科書に載せるな!じゃあ、対馬はウリのものニダ」

と煽ってみるテスト
992名称未設定:2011/06/05(日) 01:10:55.03 ID:sItcs/He0
気に入らなきゃスルーしろ。
993名称未設定:2011/06/05(日) 09:14:17.22 ID:g3QqcX7y0
>>989
2行目、意味あんの?
この板やスレだけ日記は書いてもいいの?

わけわかんねw
埋め
994名称未設定:2011/06/05(日) 09:27:22.91 ID:1lqPdnr00
>>984
お前が掲示板を作って「チラ裏日記も大歓迎」って書いとけよ。
995名称未設定:2011/06/05(日) 12:11:59.96 ID:VKQTGFpDi
あーあ、こりゃMacのソフトウェアが衰退した理由がよく分かるよ。
開発者がここまで幼稚だとはね。
996名称未設定:2011/06/05(日) 14:03:25.03 ID:pMbjja5n0
他所で全く潰しがきかないからな。
ガラパゴス諸島に取り残された進化の止まった存在がマカ。
997名称未設定:2011/06/05(日) 14:29:02.70 ID:cDvF/ezy0
幼稚と潰しの効かないは別問題なのだが。
なんだ、スレチと荒らしてたのはドザか。
998名称未設定:2011/06/05(日) 14:46:23.83 ID:GgF/6Hbv0
アホな推論ktkr
999名称未設定:2011/06/05(日) 15:00:49.20 ID:UTLaBUOS0
言語なんざ手段に過ぎん。
重要なのはそれで何を実現するかだ。
1000名称未設定:2011/06/05(日) 15:01:52.16 ID:xmZfcrjd0
世界で展開しているMacが、日本のしかも2chのここ数レスだけで
衰退した理由となるとは2chもなかなか凄いな。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。