【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/
2008/12/05(金) 10:03:25
どこの誤爆か知らんが、小さい女性は好きだ。
39仕様書無しさん
垢版 |
2008/12/07(日) 17:29:53
>>37
 Z
  z
  z
 <⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
2008/12/19(金) 01:32:30
Objective-Cよくわからんけど、書いてみたら見た目綺麗だな
ポインタって使えるんかな
2008/12/19(金) 01:39:19
もちろん使えますがな。
2008/12/22(月) 11:39:00
Cでできることは全てできますがな
43仕様書無しさん
垢版 |
2009/02/19(木) 13:22:27
プログラミング未経験で、これからObjective-Cを覚えようと思うのですが、
いきなり入り込んでも大丈夫なのでしょうか?
それともC言語を先に勉強しないと理解できないのでしょうか?
2009/02/19(木) 14:25:35
理解できないっていうか、ObjCはCの拡張だから先にCを使えるようになってれば覚えることが少なくて済む
2009/02/19(木) 14:43:33
>>44
覚える事が少なくて済むという事は、必ずしもCから先に勉強しなくても良いという事ですね?
2009/02/19(木) 14:46:57
>>45
うn
2009/02/19(木) 14:53:58
>>46
ありがとうございます!
参考書やサイトを見ながら勉強してみます!
48仕様書無しさん
垢版 |
2009/02/27(金) 00:36:59
iphoneのプログラムもここで良い?
iphoneでプログラム実行中に
homeボタン押した時に処理させたいんだけど
どうやれば良いの?
2009/02/27(金) 00:58:23
は?
2009/02/27(金) 01:28:41
マルチスレッド?
2009/04/21(火) 16:44:02
iMacを買って、たのしいcocoa本でプログラミングを始めたばかりの者です。
たのしいcocoaプログラミングのP.82のアウトレットとアクションの接続について質問さ
せて下さい。
App Controlerのインスタンスを選択してcontrolキーを押しつつドラッグ、線が伸びて
テキストフィールドにドロップすると、アウトレットを表示する黒いウィンドウが出る、と
あるのですがその黒いウィンドウが出ません(青い線は伸びます)。
アクションの接続でも同様です。
試しに「Say Hello」のボタンからテキストフィールドにcontrolでドラッグドロップしてみ
ると黒いウィンドウは出まして、
App Controller、テキストフィールド、ボタンを単体でcontrolキーを押すと黒いウィンド
ウは出ますが、AppControllerからテキストフィールドだと出てくれません。
やり直してみたのですが黒ウィンドウは出ず、ググってみてもそれらしき原因が分かり
ません。
情けない質問で申し訳ありませんが、原因またはアドバイスをいただけないでしょうか。
2009/04/21(火) 17:40:01
>>51
そのApp Controllerのクラスがアウトレットを持たなければ黒いウィンドウは出ないはずです。
これはスタブをもとに自分で実装しているクラスのインスタンスなのでしょうか?
それだったらクラスのインスタンス変数宣言のところで
IBOutlet id outletObj;
のように、IBOutletをつけないとInterface Builderでアウトレットとして認識されません。
こういう内容はここよりも新mac板の Cocoaはさっぱり スレで聞く方がいいです。
http://pc11.2ch.net/test/read.cgi/mac/1231853172
2009/04/21(火) 19:24:45
>>52
了解しました。
Cocoaさっぱりスレで聞いてみます。
ありがとうございました。

54仕様書無しさん
垢版 |
2009/04/26(日) 17:22:22
今、Apple Developer Connectionにログインできないのは俺だけか?
ドキュメントを読みたいんだが。
5554
垢版 |
2009/04/26(日) 18:11:00
ログインできた。一時的なサーバー不調だったっぽい。
2009/05/26(火) 22:59:14
ADC Selectに会社で加入してOrientation Kitが届いたんだけど、
小さいパンフとTシャツが入っているだけでした。
こんなもんですか?
2009/08/10(月) 15:22:07
他に何が欲しいんだ。
ジョブズのアクションフィギュアとか?
58仕様書無しさん
垢版 |
2009/08/23(日) 18:13:47
初心者なんですが質問いいでしょうか。
ターミナルを使って(Xcodeも入れてます)C言語を勉強してるんですが、
gcc(空白)→ .cファイルを挿入→ -oで場所やファイル名変更をしようとすると、
なぜかコンパイル失敗することが多くて困っています。

しぶしぶホーム→a.outでやってるのですが、ひとつ作るたびに削除しにいくのが面倒で・・・。
場所と名前変更で失敗しないコツ、ソースコード(?)をひとまとめにする方法
教えてください。宜しくお願いします。
5958
垢版 |
2009/08/23(日) 18:32:02
すいません追加で質問です。
場所&名前変更で成功した場合でも、ターミナルから./(ファイル名)で
実行しようとすると必ず失敗してしまいます。(./a.outならできます)
原因がわからず困っています、分かる方宜しくお願いします!
2009/08/23(日) 18:47:32
エラーメッセージ
6158
垢版 |
2009/08/23(日) 19:09:01
>>60
ファイル名はhello world.outで、 ./hello world.out と./hello\ world.out
両方試してみても(後者はターミナル内のファイル名でなぜか\が付加されてたので試してみました)
-bash: ./hello world.out: No such file or directory
というエラーがでてしまいます。
格納フォルダ名もファイル名も合っているのですが・・・。
2009/08/23(日) 19:20:30
ここってプログラムスレじゃなくてプログラマスレだよね
2009/08/23(日) 19:27:37
>>61
./hel*.out
ってやってみたらどうなる?
2009/08/23(日) 20:33:00
>>62
申し訳ないです、プログラムスレがあったの知りませんでした。
次回からそちらで質問します。

>>63
-bash: hel*.out: command not found
となってしまいました。なんでできないんですかねえ…
2009/08/23(日) 21:27:37
どうでもいいけどファイル名にスペース入れるな
アンダースコアかなんかで代用しろ
2009/08/23(日) 22:16:08
>>65
知りませんでした、教えてくれてありがとう。
2009/08/24(月) 03:15:28
./hello¥ world.out
でうまくいくが?
2009/08/25(火) 03:19:16
>>67
何度も試しましたが無理でした。
使用PCが海外仕様(キーボードにかな表記ないやつ)なのが原因なのかもしれません。
2009/08/25(火) 06:03:17
んなこたぁない
2009/08/25(火) 09:20:18
ディレクトリが違っているとか・・・
2009/08/25(火) 15:15:48
ここで書かれている\は円記号であってバックスラッシュではない
ひねりが加わっているが "hello\ world.out" も円記号とスペースを含むファイル名である。

つまり、、、、
2009/08/25(火) 19:56:33
shellの挙動になれるまでは無理にファイル名にスペースいれないほうがいいと思うんじゃが
2009/08/26(水) 09:01:46
>>68
疑り深い奴だなぁ。ほれ。
$ cat hello¥ world.c
#include <stdio.h>
int main(int argc,char *argv[]) {
printf("Hello World¥n");
return 0;
}
$ cc hello¥ world.c -o hello¥ world.out
$ ./hello¥ world.out
Hello World
$
2009/11/03(火) 17:09:55
複数のページを持つ PDF ファイルから、各ページのサムネール画像を生成したいと思っています。生成する画像フォーマットは GIF か JPEG を考えているんですが、面倒でしょうか?
PDFkit ってのがるみたいで、そいつを利用したら簡単にできるかなと思っています。

普通に Windows で組むと Adobe のデベロッパライセンスが必要なみたいなんで…

これが可能なら、Mac で作ろうと思っている状態です。
2009/11/08(日) 12:50:08
>>面倒でしょうか?

面倒か面倒でないか、何を基準におまえにアドバイスすればいいんだ?
2009/11/08(日) 14:48:59
今、PDFkitのリファレンスをざっと眺めたんだけど、
ページのイメージを画面に表示するとかプリンタに出力するとかはあるんだけど、
画像ファイルとして書き出すのは無いっぽいな。
77仕様書無しさん
垢版 |
2009/11/08(日) 15:37:17
NSPDFImageRepってのがあるからできるんじゃね?
2009/11/09(月) 01:42:23
NSImageではなくCGImageを使った方がいいらしい。
http://stackoverflow.com/questions/1298632/pdf-to-jpg-conversion-in-cocoa
79仕様書無しさん
垢版 |
2010/01/28(木) 16:38:24
学習のためだけにいちいちWinで読み込んでからMacで使うのが煩わしいので
WinにあるアプリケーションをMac用に個人的に移植するにはどうすればいいのでしょうか?
2010/01/28(木) 20:17:45
VMWare Fusion でも Parallels でも BootCamp でもなんでもご自由に
2010/01/28(木) 20:55:19
すまんそのようなソフトがあるのはもち知ってる
おれはWinのアプリをMacで使うためにとは聞いてないんだ
作ってみたかったから聞いてみたんだがスレ違いなんかな・・・
82仕様書無しさん
垢版 |
2010/01/28(木) 21:01:10
Xcodeでフルスクラッチで書けばいいんじゃないかな。
2010/01/29(金) 10:45:27
俺もフルスクラッチって書こうとした
2010/01/29(金) 16:06:29
まず、該当ソフトのソースコードを入手します。
次にソースコードを解析します。
そしてMac用に組みなおします。

簡単ですね。
2010/01/29(金) 18:30:42
81にかかればお茶の子さいさいだな。
86仕様書無しさん
垢版 |
2010/03/09(火) 21:13:59
@interface MyList : NSMutableArray
{}
@end

っつうクラスを作ったんだけど、NSMutableArrayのメソッドを呼出せないのは何故でしょう.
下記のコードが実行時に例外で死にます。

int main( int argc, char* argv[] )
{
MyList* list = [ [ MyList alloc ] init ];
[ list addObject: [ NSString stringWithFormat: @"%d", argc ] ];
}
2010/03/09(火) 23:12:01
あのな、NSArray, NSMutableArray ってのはクラスクラスタ、ちゅーやつでやな、
そのまま継承しても、実体を伴わんのや。中身を用意したらんとあかん。
ちょっとめんどいで、ええか?難しゅう言うとな、必須のメソッドと、データ構造を
持ってないと、NSArrayとして機能せんのや。よーリファレンスを読んでみ、その辺
ちゃーんと書いてあるわ。まぁ簡単に言うとな、NSArray にいるメソッドは、 count,
objectAtIndex:, lastObject, の3つや。Mutableはさらに、addObject:, insertObject:,
removeLastObject, removeObjectAtIndex, replaceObjectAtIndex:withObject:
の…ひの、ふの、…まぁ、ギョーサン実装せなあかんちゅうこっちゃ。
その代わりや、こいつらさえ実装しとけば、中身のデータ構造がどないやっても、
外から見たら配列になっとる、ちゅー訳や。まぁ、面倒くさかったらな、
@interface MyMutArray : NSMutableArray {NSMutableArray *hoge;}@end
@implementation
- (NSUInteger) count { return [hoge count]; } // 以下、色々略
みたいにしとけばええわ。あとはcontentArrayがよろしうやってくれる。
2010/03/09(火) 23:21:18
大阪弁でありがとうございます。
2010/03/10(水) 09:37:02
>>87
大門社長の声で脳内で再生された
90仕様書無しさん
垢版 |
2010/03/14(日) 01:59:54
webからデータを収集するアプリを作って遊んでいます。
しかし、

NSData data = [ NSData dataWithContentsOfURL: url ];

を連発すると、ポートを使い果たしてしまい、プログラムが終了してしまいます。
対処法を教えて下さい。
2010/03/14(日) 02:09:26
まずはアスタリスクが必要かなあ。
2010/03/14(日) 02:16:25
お前ニキビができるとイジクリまわすだろ。
2010/03/14(日) 02:45:01
  ∧∧ コイヤァァァァ!!
 (д´*)
 (⊃⌒*⌒⊂)
  /_ノωヽ_)
2010/03/14(日) 03:21:13
君の使い古したポートに用はないのだよ。

[ NSData dataWithContentsOfURL: url ]

がポートを食い尽くす問題に答えてやってくれ。
95仕様書無しさん
垢版 |
2010/03/14(日) 15:05:21
[ NSData dataWithContentsOfURL: url ]

でurl毎にコネクションを張って、ガベコレ時に行われるポートの解放が追いついていないと推測。
コネクションを自分で管理すればいいんでないか。おれはやり方判らんけど。
2010/03/15(月) 12:03:34
If you need to know what was the reason for failure, use dataWithContentsOfURL:options:error:.
俺ならとりあえずこれを使ってみるかな。
ダメなら、エラーが分かればそれに沿った対応するけど、分からないので、signal(3)系統を使う。
2010/04/05(月) 12:29:21
ここあはやっぱりもりなが
98仕様書無しさん
垢版 |
2010/05/04(火) 17:17:15
Windows用のコンパイラーとかありますかい?
2010/05/05(水) 01:38:30
>>98
Objective-C のコンパイラはある。
Windows 版の Cocoa は無い。
2010/05/05(水) 10:50:15
誰かCocotronでなんか作った香具師いる?
2010/08/09(月) 11:32:49
HyperCardのスタック作者が集うスレはここですか?
2010/08/11(水) 16:07:10
プログラミングごとき13インチMBPで十分と思ったが、画面狭すぎてXcode使いにくいナリ・・・
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で解決な気が。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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