【Cocoa】Macプログラマのスレ【Objective-C】

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2008/06/23(月) 17:06:37
Apple Developer Connection
http://developer.apple.com/jp/

関連スレ
Macでプログラミング{8}
http://pc11.2ch.net/test/read.cgi/mac/1195385771/

Objective-C [ObjC part:3];
http://pc11.2ch.net/test/read.cgi/tech/1186543111/

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

Cocoaはさっぱり!!! version.X(10)
http://pc11.2ch.net/test/read.cgi/mac/1211290055/

Xcode part6
http://pc11.2ch.net/test/read.cgi/mac/1201693264/
2010/08/13(金) 09:36:05
>>102
リッドクローズで使うんだ。(マテ
2010/09/03(金) 11:01:23
HMDT本って、Amazonのレビューを読むと3は2の続編らしいんだけど、3冊全て読んだ方が良い?
2010/09/03(金) 11:32:10
3は CoreData の解説がよい。CoreData 触るつもりならお勧め。
とりあえず、買って損はない内容。1飛ばして 2, 3 でもいけるかも。
2010/09/03(金) 20:43:23
というか2は1のただの改訂版だから2, 3だけでいい
2010/09/06(月) 10:44:16
>>105-106
ありがとうございます。2と3を買って勉強します。
2010/09/16(木) 02:36:34
配列に入れてるNSString*型の文字を取り出したくて、descriptionを使ったのですが、
NSLogで見ると文字化け?してしまいます。どうしたら元のまま取り出せるでしょうか?

NSArray* arrayTemp = [NSArray arrayWithObjects:@"A",nil];
NSString* stringTemp = [arrayTemp description];
NSLog(@"stringTemp is %s",stringTemp);

2010-09-16 01:50:24.925 if==[1940:207] stringTemp is `_?≠
2010/09/16(木) 10:10:00
NSLog(@"stringTemp is %@", stringTemp);
で幸せになれる。%s はC文字列、%@ はObj-C obj。
NSLog(@"arrayTemp is %@", arrayTemp);
でも幸せになれるであろう。
2010/09/16(木) 10:20:18
%sじゃなくて、%@じゃない?
2010/09/16(木) 11:29:46
Descだとマルチバイト文字はU+なんたらにエンコードされるんだよ。
112108
垢版 |
2010/09/16(木) 17:13:03
>>109
>>110
ありがとうございます。

しかし%@で取り出すと、次に
if (stringTemp == @"A")
が真にならないという事が起きました。

自分の用事はただ単にobjectAtIndexで取り出せばよかったと言う大ボケでしたが、
(それは配列objのままで抜き出してしまうと勘違いしてた)
%@で判断して無視された後にNSLogで%@で見るとちゃんと"A"が表示されるので混乱しました。

>>111
ありがとうございます。
実はエンコードは色々試したのですが、私の見たものの中では無かったです。
良ければどんなメソッドで戻せますでしょうか教えて下さい。
2010/09/16(木) 17:37:47
>>112
> if (stringTemp == @"A")
> が真にならないという事が起きました。

ポインタの比較してどうする。
内容の比較するなら isEqualString: 使えよ。
2010/09/16(木) 18:00:33
NSLog(@"%d", [stringTemp length]);
NSLog(@"%d", [@"A" length]);
2010/09/16(木) 18:37:13
>>112
>113フォロー、-isEqualToString: (NSString なら isEqual: と同じ)ね。
Cでも、char *strA = "A"; char *strB = "A"; strA == strB は偽になるでしょ。
strcmp() で比較するように、isEqualToString: で比較する。

>>114
何が言いたいのかさっぱり分からん。
NSLog(@"%p %p", stringTemp, @"A") ならまだ理解できるが…
116114
垢版 |
2010/09/16(木) 18:45:10
9と1が表示されます。
117114
垢版 |
2010/09/16(木) 18:55:57
>>115
追加で、真になりました。環境依存?
const char *strA = "A";
const char *strB = "A";
if (strA == strB ) {NSLog(@"true");}
else {NSLog(@"false");}
2010/09/16(木) 19:06:20
>>116
分かった。stringTemp = [arrayTemp description]; のつもりなのね。
>112 に「objectAtIndex: で(ry」とあるので、たぶん取り出したんだろ。
ま、確かにもうちょっと分かりやすく書いて欲しいね。
「%@で判〜」のところは何言ってるのか分からんしw
2010/09/16(木) 19:13:49
>>117
コンパイラ賢いな。ごめん、うちもなったw じゃあこれ、
char strA[2] = "A"; char *strB = "A"; これで比較したらならないはず…
120114
垢版 |
2010/09/16(木) 19:41:08
>>119
それだとこっちの環境でも偽になりました。strcmpは0の等しいを返すし。
2010/09/16(木) 19:51:52
>>114
ポインタ比較やってるからそれで正しい。strcmp は値である「文字列」を比較している。
NSString * でも、同じこと。どうやら君は「ポインタ」の理解が足りてないようだ。
122114
垢版 |
2010/09/16(木) 20:36:08
>>121 アンカーが114になってますけど、>>120の内容についてってことでいいです?
>>120についてなら、書いてあることは理解できるけど、
>>114についてだとちょっと理解できないので、補足していただけるとありがたい。

ポインタは難しい。
2010/09/16(木) 21:17:27
>121 は >120 の内容についてでおk
もしかして >121≠ >108 なのか?もうわけわからん…
124114
垢版 |
2010/09/16(木) 21:28:55
>>123 == >>121だろうw。
>>114 != >>108ですよ。
2010/09/16(木) 22:29:00
なんというアンカの嵐w
126108
垢版 |
2010/09/16(木) 23:06:52
つまり、ポインタ変数のアスタリスク無し表記は、
内容を指したアドレス値を表していると思えば良いのですね。

で、演算子は内容を参照する機能はないと言う事ですね。
127121, 123
垢版 |
2010/09/17(金) 10:06:12
>>114
混乱して途中から>108 = >114 だと思ってたよ、すまない。
しかも>123でアンカミスしてたのねorz IDでないと分かりにくいなぁ
メモリ確保の領域が違うからね、その辺調べるといいよ>char strA[2] = "A", *strB = "A";


>>108
だいたいあってる。けど、ちゃんと書籍などでポインタを理解した方がいいよ。
「C言語ポインタ完全制覇」って本が定評。
ポインタの差す先の値をとってくる間接参照演算子(*)というのもある。
128108
垢版 |
2010/09/18(土) 13:31:47
>>127
ありがとうございます。ここですね。
http://kmaebashi.com/programmer/pointer.html
129108
垢版 |
2010/09/18(土) 13:35:40
また質問なんですが、
参照カウントの勉強にサンプルを書いて色々な所でretainCountをNSLogに出してみたのですが、意外な結果ばかりでます。

まずNSString*の変数ですが、それをretainCountするとメチャクチャな数字が出ました。

NSString* string = @"baka";
NSLog("%d",[string retainCount]);

仕方がないので、自前でクラスを作りました。

呼び出し側クラス
MyClass* myClass = [MyClass alloc];
myClass = [myClass?xA0;myMethod:myClass];

呼び出され側クラスのメソッド
- (MyClass*)myMethod:(MyClass*)myClass;{
?xA0;?xA0;return myClass;
}

例えば、allocの行の下に
NSLog("%d",[myClass retainCount]);
を仕込みますと、当然1が出ますが、
myMethodのreturnの上の行にそれを置くと、-1と出ました。
自分の理解では合成される毎にretainCountが増えると思っていたのですが。。

どう考えたら良いのでしょうか?
130108
垢版 |
2010/09/18(土) 13:51:30
すいません
xA0;
と言う意味不明暗号が表示されているかもしれませんが、
それはスペースと読み替えてください、、。
2010/09/18(土) 14:08:17
retainCountなんてただの飾りです

そして、-1を返すのは正しい実装です。
(まあ、実際はNSUIntegerなので-1じゃなくてNSUIntegerMaxなんですけどね)
2010/09/18(土) 14:14:53
これだけじゃ不親切か

オブジェクトにはあなたが期待するとおりretainCountが変動するものと、そうでないものがあります
NSStringオブジェクトはretainCountが期待するとおり変動しないオブジェクトのひとつです
133仕様書無しさん
垢版 |
2010/09/18(土) 23:56:33
>129
なるほど。
そうすると、同じ仕組みで解放されないクラスを作成することができそうですね。

2010/09/19(日) 16:14:49
>>133
シングルトンクラス(開放されないオブジェクト)の作り方は、
Cocoa Fundamental Guide の Cocoa Design Patten にのってる。
あとメモリ管理ガイド(iPhone dev で日本語版あり)を読んでおくといい。
135108
垢版 |
2010/09/21(火) 16:15:00
>>132
ありがとうございます。
実はobjective-c入門の本を読んでもメモリ全然分からない、、。
2010/09/21(火) 20:38:13
萩原本を読み返しつつ、Analyze して出た警告を対処していったり、Instruments が拾う Leak を逐一解消していったら作法が分かる。
2010/09/21(火) 21:16:22
使ったこと無いけど、GCで解決な気が。
2010/09/22(水) 09:38:48
GCに頼っていたらiPhoneアプリが作れないからダメだ。
2010/09/22(水) 15:51:56
今すぐiPhoneアプリ開発するならそうだけど、
悩んで進まないくらいなら、GC使ってさっさとアプリ作った方が楽しいと思うけどな。
140108
垢版 |
2010/09/24(金) 20:25:48
>>136
立ち読みしました。ピンクの入門の本より全然わかりやすいです。
要はcopyとかnewとかallocとか書いてるメソッドで生成させたのだけをreleaseすれば良いんですね。セッター絡みの作法も良くわかりました。後ここのpdfもわかりやすかったです。
http://iphone-dev.g.hatena.ne.jp/tokorom/20091213/1260723681
2010/09/24(金) 21:01:03
>立ち読みしました。ピンクの入門の本より全然わかりやすいです。
良かったなら買ってやれよ。
142108
垢版 |
2010/09/24(金) 22:09:11
>>141
ピンクの入門を買ってしまった事がそれを微妙に躊躇させます、、。
ピンクも上での基本を押さえれば、外人の文章によくある、含みのある表現も理解出来ました。
2010/10/19(火) 09:37:50
すいません、switch文で定数と比較したいのですがエラーになります

#define aaa 15;
...

switch (bbb) {
case aaa: NSLog(@"yes"); break;
}

144仕様書無しさん
垢版 |
2010/10/19(火) 09:47:58
そのセミコロンはなんだ?
145143
垢版 |
2010/10/19(火) 10:40:58
defineの;いらないんですね!エラー出なくなりました。
基本的な事ですんません tks
2010/10/19(火) 11:05:28
新構文かと思った。
147仕様書無しさん
垢版 |
2010/10/28(木) 07:32:19
質問です。
NSOpenGLViewの乗っかったNSWindowで透明をやりたいのですが
(ウィンドウの向こうが透けている)失敗しています。

まずNSWindow。
[window setBackgroundColor: [NSColor clearColor]];
[window setOpaque:NO];
これでウィンドウは透明に出来た。多分これでいいのかと。
しかし、NSOpenGLViewでつまづいてます。

-(void) drawRect: (NSRect) dirtyRect {
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

}
でビューが真っ黒に。glClearColorのアルファ=0.0なんだけど。
ちなみに、アルファ=0.5でも真っ黒ですね。
NSOpenGLViewの段階で、ビューの向こうが透けて見えるように
するには、どうしたらいいのでしょう?
2010/10/30(土) 20:27:11
iPhoneでNSHTTPStorage setCookieでNSHTTPCookieを保存しようとするんですが、ログに吐き出しても反映されていないようです。
使い方間違っているのでしょうか?
2010/11/03(水) 01:57:15
UIWebViewのUser-Agentを変えたいんだが。
2010/11/03(水) 08:04:59
好きにしろ
151仕様書無しさん
垢版 |
2010/12/01(水) 23:29:41
NSDataのなかの特定の範囲のバイト列を取り出して、32ビットのint型に
変換したいのですが、どのような方法がありますでしょうか?

subdataWithRange:NSMakeRange(3,4) のようにしてバイト列を
取り出すと思うのですが、このあとどうすればよいかわかりません。
152151
垢版 |
2010/12/01(水) 23:51:16
これ↓でやりたいことはできそうなのですが

int32_t datasize;
[data getBytes:&datasize];

できれば、JavaにあるByteBufferのgetIntのような感じで取得したいのですが
そういう方法ってありますか?


153Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/04(土) 14:54:38
OS8,9時代をしらないガキマカはしね
154仕様書無しさん
垢版 |
2010/12/04(土) 15:12:40
わーい
久しぶりにおかしな人が来たw
どうして死なないといけないの?w >おじいさんw
2010/12/05(日) 11:10:11
8,9程度でイキがってんじゃねえよハゲ
せめて7
2010/12/05(日) 21:43:10
>>155
ああ、おにぎりな。
E電並に定着しなかったが、中身は進化したね。
157Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/06(月) 00:07:06
俺は8,9時代を謳歌したからな

Macコミュも制覇してきたし

今ではハッカーとして落ち着いてきてるしな

ハゲはてめえだろハゲ

Objecitve−Cだろこら いまじゃMacつかってねえからな

またやろうかな
Macアプリ作りたかったんだけどな なんていうかiphoneだらけだったしな
さすがにMacアプリなんてあれだろ
だからPerlにしたんだけどな

昔のマックはお正月に あけましておめでとうとか出たしな
プラチナサウンドの響きがここちよくてな うざくなってきたけど
酒井さんのゲームなどハピネス 侍道 オレバス...etcなどいろいろやってたけどな

ど素人がわめいてんじゃねえよこら
2010/12/06(月) 00:09:22
ごめん
それ自称上級者(≒素人に毛が生えた程度)の発言にしか見えんわ
159Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/06(月) 00:10:22
自称じゃなくて上級者だからな

知ったかぶりすんなよ
160Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/06(月) 00:11:35
マカーって独特の反論があるよな

単芝つけてきたり

すばやい応答 暇人ニートの巣窟だからなゴミマカは

ワインやブランデーなどの酒の画像とかアップしてるカスマカ多いわ
2010/12/06(月) 00:12:05
コレはひでぇw

って相手してもらえるのが嬉しいだろうなこのハゲ
162Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/06(月) 00:12:32
てめえも所詮カスマカ

マカーから脱皮できないごみ

ターミナルかちかちいじってるゴミだよ

ポートでぶちこんでる低能 とりあえずosx進めてる低能
お前らみたいなごみな

ゴミはしねな
死ね
163Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/06(月) 00:14:18
マカーの限界ってしってる?

製品などでわめいてるだけ、だからお前らは新作製品でわめくことしかできないんだよ
マカコミュでアップル製品について熱弁してればいいよ

プログラミングもできねえごみw

Perlやってるやついたなクソマカに、大してできてねえごみみたいだったけどw
ログ編集してる程度のカスw
164Perl忍者 ◆M5ZWRnXOj6
垢版 |
2010/12/06(月) 00:18:48
hapyer cardとかもそんなもん知ってるしな
あの絵本みたいなやつだよな 白黒の

Macのこと+コミュならほぼ知り尽くしてるよ

ほぼ知ってるし

低レベルなんだよお前ら
2010/12/06(月) 00:28:20
つか俺マカじゃないんで
サーセンwwww
166仕様書無しさん
垢版 |
2010/12/07(火) 09:53:02
意外に礼儀正しい良い人で笑ったw

おじいさんとか言ってごめんなさい
2010/12/08(水) 10:22:28
iphoneの開発ツールでObject-C使わなくてもC++で出来るってフリーソフトがあるんだけど
それで作ってる人おらぬ?
2010/12/10(金) 18:04:05
>>167
kwsk
2010/12/12(日) 19:24:43
>>167
XcodeっていうフリーソフトがCでもC++でも
iPhone用にプログラム組めてお勧めだよ。
2010/12/17(金) 15:05:36
すべてCのみで作れる?いっさいObject-無視して純Cのみで
2010/12/19(日) 02:09:42
当たり前じゃん。
2010/12/19(日) 21:32:46
エントリポイントがC、後はどうすればいいか、わかるでしょう
173仕様書無しさん
垢版 |
2010/12/24(金) 03:42:39
Interface Builderで、UILabelなんかを斜めに配置する事ってできないのかな。
今はコードでtransformプロパティでちまちまやってるんだけど、数が多くて発狂しそう。

どなたか知ってる方おられたら教えてください。
2010/12/24(金) 05:11:38
自分でIBプラグイン作れば。
175仕様書無しさん
垢版 |
2011/01/18(火) 12:57:59
@interdace
....
@end
をクラス宣言としてヘッダーに記述しますが、
クラスはmまたはmmに
@implements
...
@end
ですが、
この部分をソースファイルを2つ以上に分割できますか?
やってみたら、ヘッダーに@propatyがあるので、@synthsizeも
同様に記述しないとすべてワーニングとなります
2011/01/18(火) 14:45:30
突っ込みは全部置いとくとして、「カテゴリ」でググれ
177仕様書無しさん
垢版 |
2011/01/18(火) 17:07:02
>>176
にゃーるほど、非常thanks
こんな言語仕様があったとは
178仕様書無しさん
垢版 |
2011/02/05(土) 12:22:55
NSLogに日本語を表示するとき、
NSString* nsstr = @"漢字abc";
NSLog(@"%@", nsstr);はもちろん可能ですが
std::string str = "漢字abc";
NSLog(@"%s", str.c_str());
は表示されない。STLでもただ"漢字abc"ではなくて"abc"
だけなら表示される。
これはなぜなのかがわかりません。
2011/02/07(月) 00:48:02
文字コードが違う
180仕様書無しさん
垢版 |
2011/04/19(火) 12:16:43.29
int hoge[100];
って感じで配列を宣言したときって
自動でメモリは確保されるのでしょうか?

関係ない処理をしている間に内容が変更されてしまうので困っています…
2011/04/19(火) 12:49:13.34
お前はナニを言ってるんだ。記憶クラスって知ってる?
2011/04/19(火) 19:57:44.11
初心者にありがちなメモリ破壊
2011/04/20(水) 10:07:05.03
BSSなのかスタックなのかにもよるが
2011/04/20(水) 10:18:24.97
自動変数のアドレスを呼び出し元の関数に返していた新人を思い出した。
2011/04/21(木) 04:14:40.82
Server用途でないJavaとは速度差はなく、生産性は、携帯機器で優位なメモリ占有の少なさがある。
C++と比べると、遅いのは分かってること。驚く必要なし。生産性、習得の用意さもあり、適度なスピードもあり、バランス取れてるから問題なし。
186仕様書無しさん
垢版 |
2011/04/28(木) 13:46:39.46
iOSのCOREDATAって使いやすいの?
例えば1000個くらいの固定された商品データ管理とか、XMLからオブジェクトに読んでやるより
CoreData使った方がいいんかな?
2011/04/29(金) 10:09:40.86
un
188仕様書無しさん
垢版 |
2011/04/30(土) 01:41:03.17
網羅性維持のためだけに存在しているインターンのバイト学生が書いたような
地雷クラスメソッドを踏まないようにすればいいだけ。
若き「老害」を生まないためにも本物の窓際おじいちゃんはどうせ暇だろ
ちゃんとフォローしといてね
2011/07/09(土) 09:58:17.61
これで独立できる

売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl .com/43xmk7m
http://tinyurl .com/3mopkfy
2011/07/19(火) 19:26:06.07
ここもだろうね。キモチワルイ。
191仕様書無しさん
垢版 |
2011/09/29(木) 21:47:06.19
JavaScriptでwindow.open()を実行した時

-(WebView *) webView:(WebView *)sender
   createWebViewWithRequest:(NSURLRequest *)request

requestが0x0でとれません。

URLを知るにはどのようにしたらよいのでしょうか?


2011/11/12(土) 01:06:46.36
Macは開発しやすい
193仕様書無しさん
垢版 |
2011/11/12(土) 01:07:14.38
開発しやすいのか?
2011/11/20(日) 05:59:06.77
char *str;
2011/12/26(月) 17:30:15.77
すみません
皆さんDBクライアントって何使ってらっしゃいますか?
例えばMySQLとかPosgreとかを操作するアプリです。GUIアプリ使ってますよね??
2011/12/26(月) 18:38:41.31
スレチ
2011/12/29(木) 19:04:55.23
コマンド覚えろ方が楽
2012/01/09(月) 19:27:01.24
コマンドを憶える気はほとんど無いから Navicat の Lite 版
2012/02/15(水) 00:39:47.44
アプリのappバンドルのパスをアプリ自身が実行時に取得する方法があれば教えてください。
よろしくお願いします。
2012/02/15(水) 00:53:55.61
[[NSBundle mainBundle] bundlePath]
そのまんまやんけっ
2012/02/15(水) 00:54:30.28
実行ファイルは argv[0] な
202199
垢版 |
2012/02/15(水) 13:14:47.48
どうもありがとうございます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況