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


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

Objective-C [ObjC part:6];



1 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 10:47:48.04 ]
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より)

Objective-C [ObjC part:5];
hibari.2ch.net/test/read.cgi/tech/1279730299/

Objective-C [ObjC part:4];
pc12.2ch.net/test/read.cgi/tech/1239721860/

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

Objective-C
ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/

Objective-C
ttp://pc5.2ch.net/tech/kako/990/990574267.html

2 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 10:49:46.41 ]
*** プログラム技術板 ***
【マック】Macintoshプログラミング質問箱
hibari.2ch.net/test/read.cgi/tech/1113058054/

*** 新・mac板 ***
Cocoaはさっぱり!!! version.16
hibari.2ch.net/test/read.cgi/mac/1307162542/

Macでプログラミング{10}
hibari.2ch.net/test/read.cgi/mac/1248682344/

iPod touch/iPhone ネイティブアプリ製作 ver.16
hibari.2ch.net/test/read.cgi/mac/1312723856/

3 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 10:51:19.50 ]
*** 本家 ***
Objective-C 2.0 プログラミング言語
ttp://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/

Introduction to The Objective-C 2.0 Programming Language
ttp://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

そのほか英語
ttp://developer.apple.com/documentation/Cocoa/ObjectiveCLanguage-date.html

*** 書籍 ***
荻原本
amazon.jp/dp/4797346809

HMDTダイナミック本
amazon.jp/dp/4861006414

4 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 10:52:45.16 ]
ダイナミック Objective-C サイト
journal.mycom.co.jp/column/objc/

Apple のランタイムのソースコード (10.7)
www.opensource.apple.com/source/objc4/objc4-493.9/

英語のサイト
Objective-C 入門

cocoadevcentral.com/d/learn_objectivec/
Objective-C Style 1, 2 (変数名のつけかた等)
cocoadevcentral.com/articles/000082.php
cocoadevcentral.com/articles/000083.php

Mike Ash さん(Audio Hijack の中の人)のブログ、 Obj-C のランタイムの話が良く出る
mikeash.com/?page=pyblog/

C++ と Objective-C の文法の比較
ktd.club.fr/programmation/objective-c.php

5 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 23:54:46.01 ]
民主党web-site  www.dpj.or.jp/
民主党「生活が第一」チャンネル  www.youtube.com/dpjchannel?gl=JP&hl=en


6 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 02:40:17.98 ]
*** 警句 ***
汝、retainCountを数える事なかれ
そは、理を知り真理に触れし者のみが振える御技
汝、オーナーシップの本質を見よ
そは、相反する一対の調和を守る事也
allocにはreleaseを。copyにはreleaseを。retainにはreleaseを。

アーメン

7 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 09:15:33.20 ]
objcはgtagsできないわけ?

8 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 21:53:48.84 ]
Objective-Cの言語的な面白さや美しさってどこですか?

9 名前:デフォルトの名無しさん [2011/08/26(金) 07:12:02.43 ]
age

10 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 20:51:58.43 ]
円高なんとかしろよ、このヤロー!



11 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 08:10:15.25 ]
うるせーバカヤロー!

12 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 21:28:11.38 ]
SpeedMailerのこうなごさんのサイトがインドネシアのハッキンググループにハックされたままになってもう1週間以上。だれか教えてあげてw
kounago.jp/

13 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 23:53:03.55 ]
>>3
それ古すぎ。こっちが最新。
*** 本家 ***
Objective-C 2.0 プログラミング言語
developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf

14 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 23:55:35.51 ]
これもObjCか?
Blocksプログラミングトピックス
developer.apple.com/jp/devcenter/ios/library/documentation/Blocks.pdf
並列プログラミングガイド - GCDとか
developer.apple.com/jp/devcenter/ios/library/documentation/ConcurrencyProgrammingGuide.pdf

こっから
developer.apple.com/jp/devcenter/ios/library/japanese.html

15 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:43:49.51 ]
すごいバグ発見したのだが。。。。
配列の要素の入れかえでNSMutableArrayのexchangeObjectAtIndex:withObjectAtIndex:って
メソッドが壊れていることに気づいた。
下のコード実行してみてほしい

NSMutableArray *dataSource = [[NSMutableArray alloc] init];
// 10個の要素を持つ配列を生成
for (int i = 0; i < 10; i++) {
 [dataSource addObject:[NSString stringWithFormat:@"%d", i]];
}
// 変更前の配列の中見を確認する
NSLog(@"%@", dataSource);
// インデックス0の要素とインデックス2の要素を入れ替える
[dataSource exchangeObjectAtIndex:2 withObjectAtIndex:0];
// 変更後の配列の中見を確認する
NSLog(@"%@", dataSource);

16 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:47:13.81 ]
>>15
2011-09-02 00:46:40.895 gomi1[12097:707] (
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
)
2011-09-02 00:46:40.897 gomi1[12097:707] (
2,
1,
0,
3,
4,
5,
6,
7,
8,
9
)


17 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:49:43.53 ]
2011-09-02 00:49:10.310 Test[9304:707] (
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
)
2011-09-02 00:49:10.312 Test[9304:707] (
2,
1,
0,
3,
4,
5,
6,
7,
8,
9
)

で?

18 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:55:11.26 ]
これは、どういうバグだ?

19 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 00:55:15.74 ]
初心者は自分の頭がバグってるという好例

20 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 12:54:52.72 ]
正常にみえるけど、どこがバグってるの?



21 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2011/09/02(金) 13:01:06.37 ]
>>20
>>19

22 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 23:52:32.55 ]
NSOperationQueueをmainQueueで作った場合にcancelAllOperationsしても
中のNSOperationクラスが残ったままなのですが、これは何が原因でしょう??

// キュー作成
self.queue = [NSOperationQueue mainQueue];
// NSOperationのサブクラス作成
Operation *op = [[[Operation alloc] init] autorelease];
// エンキューする
[self.queue addOperation:op];
// キャンセルする
[self.queue cancelAllOperations];
// キューの中身を確認する(0ではなく1になる)
NSLog(@"%@", [[self.queue operations] count]);

23 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 00:17:48.34 ]
キャンセルする前に実行されてしまったとか?

24 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 05:04:17.69 ]
>>22
cancelAllOperationsは[op cancel]するだけじゃなかったっけ。
Operationが停止するまで待ちたいなら、
その後にwaitUntilAllOperationsAreFinishedを追加かな。

25 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 06:27:53.23 ]
>>23
テスト的に10秒くらいかかる処理にしてるのでそれはないです。

>>24
むしろ[op cancel]してもらえればop側で処理を停止するように書いてあるので
cancelメッセージを送信してほしいんですが、調べてみると送っていませんでした。
これが原因だと思います。なぜ送信しないかは不明です。
ちなみにwaitUntilAllOperationsAreFinishedはopが実行完了するまでスレッドを
ブロックするメソッドのなので、やりたい事とちがいます。

ちなみにNSOperationQueueの初期化を下記のようにすると
きちんとキャンセルされます。
self.queue = [[[NSOperationQueue alloc] init] autorelease];

26 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 12:58:56.96 ]
mainQueueはまさに実行中のメインスレッドのキューだから、エンキューしたとたんにすぐ実行されて
キャンセルが間に合わないんじゃないの?
別に作ったキューは、エンキューしてから実際に実行されるまで間があるだろうから、実行前にキャンセル
できたのでは?
ドキュメントでも、一旦実行されたオペレーションのキャンセルができるかどうかは、オペレーション側の
実装次第ってかいてあるし。

キューに残っているオペレーションのステータスを確認してみたら?

27 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 15:04:08.66 ]
mainQueue は共有資源で、他でも使ってるかも知れないのに cancelAllOperations してもいいのかな?
あと、残った 1 は、まさに cancelAllOperations を実行中の operation かも。
•cancelAllOperations の前には operations の数はいくつあったか
•cancelAllOperations で自分の作った operation がいくつ cancel されたか
を確認すべきでは?

28 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 23:01:50.36 ]
>>22
NSOperationQueueにCancelAllOpetationを送ってもQueueからは削除されずに、全てのOperationをCancel状態にするだけです。cancel状態の時はmainメソッドは呼ばれないのです。昔、10,000個近く突っ込んでえらい目にあった(笑)

29 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 00:24:59.80 ]
>>28
mainQueueのときはそもそもcancelを呼ばない?から、ちょっと違う問題な気がする。

ユーザーの操作に応答しなくなるだろうから、mainQueueに突っ込むメリットがあまり無いと思うんだけど、
どういう時に使うんだろうか。

30 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 01:33:55.37 ]
mainQueueって、RunLoopで処理されるキューでしょ?
cancelしたあと、一度RunLoopに戻ってみたら?




31 名前:29 mailto:sage [2011/09/05(月) 01:49:04.35 ]
>>30
cancelが呼ばれず、オペレーションを終了できないので、
戻す方法がわかりません。
(個別にcancelを呼べば、終了できる)

32 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 09:43:03.83 ]
オペレーションの実装に問題があるような気がする。実行中にCancelが呼ばれた時の処理がうまくできてないとか。

33 名前:29 mailto:sage [2011/09/05(月) 13:07:35.55 ]
mainQueueのときはcancelAllOpetationではcancelが呼ばれない?ので、
呼ばれたときの処理の問題では無い気がします。
オーバーライドしてログ出力するようにしても、ログが表示されない。
allocした場合はログが表示される。
(個別にcancelを呼んで対処は可能)

- (void)cancel {
NSLog(@"%s", __func__);
[super cancel];
}

- (void)main {
NSLog(@"%s", __func__);
while (![self isCancelled]) {
sleep(1);
NSLog(@"sleep");
}
}

- (void)dealloc {
NSLog(@"%s", __func__);
[super dealloc];
}

34 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 13:52:39.74 ]
いい加減ウザイからNSOperationのリファレンス見たけど
理由と思われるものがちゃんと書いてあるよ

長いから自分で読んでね!

Responding to the Cancel Command
って所もね

35 名前:29 mailto:sage [2011/09/05(月) 15:49:26.06 ]
>>34
mainQueueだとcancelAllOpetationでcancelを呼ばないって
理由と思われるものは書いて無いんじゃないかな。

英語は得意じゃないんで、間違ってたら指摘よろしく。
自身のcancelメソッドを呼ぶか、キューのcancelAllOpetationを呼べと書いてあるように見える。
You do this by calling the cancel method of the operation object itself or by calling the cancelAllOperations method of the NSOperationQueue class.

36 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 16:54:38.17 ]
cancelは、少なくともキュー内にそのオペレーションが確実に存在してて、
実行前か、実行中じゃないと呼ばれないと思うので、エンキューと、キャンセルの
タイミングが書かれてないと、なんともわからない。
cancelが呼ばれた時のキューの中身と、各オペレーションのステータスを表示
してみたらいいんじゃあるまいか。
もしかしたら、メインキューの場合、次のループまで実際の処理が遅延するとか
あるのかもしれない。まぁ結構適当に書いた。


37 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 18:41:03.85 ]
1秒かかるオペレーションを10個ほど突っ込んで -cancelAllOpetation 呼んで見れば何か分かるんじゃないかな?


38 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 18:51:22.63 ]
動作確認用のサンプルコードを書いて見た。

int main(int argc, char *argv[]) {
CFShow(@"*** START ***");
CFRunLoopPerformBlock(CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, ^() {
CFShow(@" begin Func1");
[[NSOperationQueue mainQueue] addOperationWithBlock:^() {
CFShow(@" begin Func2");
CFRunLoopStop(CFRunLoopGetCurrent());
CFShow(@" end Func2");
}];
[[NSOperationQueue mainQueue] cancelAllOperations];
CFShow(@" end Func1");
});
CFShow(@"RUN!!");
CFRunLoopRun();
CFShow(@"*** END ***");
return 0;
}

*** START ***
RUN!!
begin Func1
end Func1
begin Func2
end Func2
*** END ***

39 名前:38 mailto:sage [2011/09/05(月) 18:55:37.71 ]
書き忘れてたけど、GCは必須ね

40 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:09:49.31 ]
なにを動作確認しようとしているのか、さっぱりわからない。
キャンセルしようとした時にキューの中がどうなっているのかを確認しないと。



41 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:13:09.03 ]
ようするに、cancelAllOperationsを呼んでもキャンセルされない、ということだ

42 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:27:25.24 ]
Func2が実行されたのは、cancelが呼ばれた時点で、既に実行されてて間に合ってないからじゃないの。
だから、cancelを呼ぶ時点でのキューの中身とそれぞれのステータスを確認してみないと意味ないよ。
何回も指摘されてるけど、ドキュメントには、cancelは直ぐに効果を及ぼすとは限らないって書いてあるよね。

43 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:36:13.86 ]
int main(int argc, char *argv[]) {
 CFShow(@"*** START ***");
 CFRunLoopPerformBlock(CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, ^() {
  CFShow(@" begin Func1");

  [[NSOperationQueue mainQueue] addOperationWithBlock:^() {
    sleep(1);
    CFShow(@" begin Func2");
    CFRunLoopStop(CFRunLoopGetCurrent());
    CFShow(@" end Func2");
  }];
  [[NSOperationQueue mainQueue] addOperationWithBlock:^() {
    sleep(1);
    CFShow(@" begin Func3");
    CFRunLoopStop(CFRunLoopGetCurrent());
    CFShow(@" end Func3");
  }];
...続く

44 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:37:25.00 ]
  [[NSOperationQueue mainQueue] addOperationWithBlock:^() {
    sleep(1);
    CFShow(@" begin Func4");
    CFRunLoopStop(CFRunLoopGetCurrent());
    CFShow(@" end Func4");
  }];

  [[NSOperationQueue mainQueue] cancelAllOperations];
    CFShow(@" end Func1");
  });

  CFShow(@"RUN!!");
  CFRunLoopRun();
  CFShow(@"*** END ***");
  return 0;
}


45 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:43:47.19 ]
すまん間違った。忘れてくれ。

46 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:52:47.76 ]
>>42
> Func2が実行されたのは、cancelが呼ばれた時点で、既に実行されてて間に合ってないからじゃないの。

何を言っているのか、いまいち分からないのだが、
まず、君の言う「cancel」って-[NSOperation cancel]のこと?
それとも、-[NSOperationQueue cancelAllOperations]のこと?


47 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:10:40.64 ]
>>42

さっきから、RunLoopの話が出ている訳だが、このコードがシングルスレッドで動いていることは、分かっているよね?


48 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:50:21.64 ]
ちょっと試してみたが、>>38の言うとおり、メインキューでは、cancelAllOperationsはきかないみたいだな。
allocして作ったキューではきく。違いは何かというと、シリアルか非同期かいうことか。

説明がドキュメントにみあたらないげと、もうそういう仕様ということでいいんじゃね?
メインキューはUIも処理するから、本来時間のかかる処理をメインキューでやるべきではないし。


49 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:56:46.69 ]
GCDで書いてシングルスレッド?あるのか。
>>37,42 説を推すが。

50 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 21:06:28.51 ]
>>49
GCDじゃなくて、あくまでNSOperationだから。じゃないのか?



51 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 21:09:59.31 ]
-[NSOperationQueue cancelAllOperations] に breakpoint 設定して、
アセンブリコードおっかけて見りゃわかるが、
mainQueue の時だけ「何もしない」処理になってる。

mainQueue は共有資源なんだからこれはこういう仕様なんだろう。
cancelAllOperations で意図しない operation が cancel されないように。

52 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 21:16:02.76 ]
>>49
メインスレッドで実行することを指定しているのだから、逆にマルチスレッドにはなれないだろう。


53 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 21:19:52.56 ]
>>51に同意

54 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 21:21:58.97 ]
UIのイベント処理なんかもオペレーションが使われてんだっけ?

55 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 21:45:09.07 ]
>>54
それは、NSEventな話?

56 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 22:28:31.74 ]
いや、>>51で意図しない operation が cancel されないように。ってあったから、
意図しないオペレーションってどんなんかなと思って。

57 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 22:59:44.12 ]
>>56
マルチスレッドな環境では、あるスレッドで実行されているNSOperationの内部で、mainQueueに新しいNSOperationを追加するかもしれない。
だから、ある時点でメイン・スレッドのRunLoopに、どんなNSOparationがスケジュールされているか把握するのは無理。
という意味だと思います。
たとえ、-[NSOparationQueue operations]を呼び出して中身を確認したつもりでも、次の瞬間に新しいNSOperationが増えているかもしれない。

58 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 23:05:07.32 ]
あぁ、でもそれは、MainQueueにかぎらず、GlobalQueue全般についていえることだね。

59 名前:29 mailto:sage [2011/09/05(月) 23:25:27.70 ]
>>36
下の様なコードで、cancelAllOperationsを呼ぶ前はisReadyがYESで、他がNO。
メインキューで処理してる場合、次のループが来た時にはcancelする対象が無くなってるような気がする。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.queue = [NSOperationQueue mainQueue];
Operation *op = [[[Operation alloc] init] autorelease];
[self.queue addOperation:op];
op = [[[Operation alloc] init] autorelease];
[self.queue addOperation:op];

NSArray *ops = [self.queue operations];
for (id op in ops) {
//[op cancel];//個別に呼べば、キャンセルできる。
NSLog(@"isCanceled:%d, isExecuting:%d, isFinished:%d, isConcurrent:%d, isReady:%d",
[op isCancelled], [op isExecuting], [op isFinished], [op isConcurrent], [op isReady]);
}
[self.queue cancelAllOperations];
NSLog(@"cancel");

>>42
実行前か実行中かでcancelが呼ばれたり、呼ばれなかったりするわけではないのでは?
ドキュメントに書いてあるのは、cancelがオペレーションを強制的に止めるわけでは無いことは書いてあるけど、
内部のフラグ更新するとも書いてある。
効果が出ないと書いてあるのは、(実行が?)終了してるものにcancelを送ってもキューに影響は無いと書いてあり、
実行中にcancelされた場合は、isCanceledを自分でチェックして、速やかにmainを終えるようにするのが望ましく、
実行前なら順番が回ってきた時にstartが呼ばれた後、
mainを呼ばずにキューから削除されるはず。(直ぐに効果を及ぼさないってのは、このキューに対してのことを指しているのでは?)

アセンブリを読めないから実装まではわからないけど、
>>51の言うようにそういう仕様なんだろうとは思う。
とはいえoperationsで簡単に回避できるので、個別に確認しろという意思表示なのかな。

60 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 00:02:38.21 ]
そもそもmainQueueにぶちこんだoperationをまとめてcancelすることが必要になる設計がおかしい



61 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 00:11:17.56 ]
まぁな

62 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:30:30.58 ]
これで独立できる

売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
tinyurl.com/43xmk7m
tinyurl.com/3mopkfy

63 名前:デフォルトの名無しさん [2011/09/21(水) 15:08:49.54 ]
スマン。基礎的なことを教えてください。
- (NSString *)getString { //@
NSString *msg = @"temp";
return msg;
}
これでも問題なしで、以下とやってることは同じ?
- (NSString *)getString { //A
NSString *msg = [[NSString alloc] initWithString:@"temp"];
return [msg autorelease];
}
returnすると、中括弧の範囲内で終わるはずのmsgの寿命が、呼び出し元のrun loopに依存するようになるんですよね?
Aは問題ないと感覚的に分かるのですが、@はinitせずに一時オブジェクトをreturnしていることにいまでも違和感が。。

64 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 15:28:02.80 ]
定数は一時オブジェクトではないので

65 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 15:30:50.19 ]
char *hoge() { return "hoge";}
と一緒

66 名前:63 mailto:sage [2011/09/21(水) 16:13:55.92 ]
>>64-65 サンクス
なるほど。
NSString以外でも、NSData *myDataとかでも同じですよね?
returnによって自動でつくautoreleaseのスコープが伸びるのであって、
一時オブジェクトという感覚を捨てたほうがいい感じでしょうか。

67 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 16:23:12.35 ]
>>66
なにもかもが違う

68 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 16:34:53.61 ]
何を聞かれてるのかわからないのに無理に答えなくていいです

69 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 16:47:27.28 ]
へぇ

70 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:03:54.99 ]
NSString *msg = @"temp";

って

NSString *msg = [[NSString alloc] initWithUTF8String:"temp"] autorelease];
または
NSString *msg = [NSString stringWithUTF8String:"temp"];

とほぼ同義だと思ってるんだが。@"〜"ってNSString用のシンタックスシュガーだろ。




71 名前:63 mailto:sage [2011/09/21(水) 17:06:58.54 ]
>>67
違うなら違うで、どのあたりか指摘いただけるとありがたいです。

>returnによって自動でつく
とは@の場合に、msgがautorelease扱いになることを指して書きました。
>autoreleaseのスコープが伸びる
とは、
{
NSString *string = [self getString];
}
のように呼び出し元の有効範囲でautoreleaseされるという意味で書きました。

ちなみにこの辺を参考にして、質問しました
stackoverflow.com/questions/2279071/nsstring-returning

72 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:12:05.35 ]
return で autorelease が自動でつくなんて初耳だぞ。
returnは関係ないだろ。

73 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:15:50.44 ]
>>71
autoreleaseっていうのは、あとでreleaseするために
AutoreleasePoolに突っ込むっていう操作だよ。
returnで自動で付いたりしないしスコープとも関係ない。

74 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:17:04.26 ]
63 は任意のメソッドに自動で
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
{//スコープ(笑)
...
}.
[pool release]; が付いていて、return の際にはスコープが伸びる(謎)とか思ってるんじゃ無かろうか。

75 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:20:23.35 ]
>>70
@"〜" は CFSTR("〜") と等価みたいだよ。

76 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:46:33.21 ]
伸びるって表現するならスコープじゃなくてライフサイクルでしょ。

77 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:49:10.30 ]
スコープに対してエクステントっていうんだぜ

78 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 17:52:15.33 ]
>>75
そうなんだ。@"〜"はautoreleaseされないんだな。勉強になった。

79 名前:63 mailto:sage [2011/09/21(水) 18:04:59.00 ]
自分が考え違いをしていたのだけなんとなく分かってきました。
>>72-73
>returnで自動で付いたりしないしスコープとも関係ない。
はい。
>>74
>return の際にはスコープが伸びる(謎)とか思ってるんじゃ無かろうか。
似たようなことを思ってました。

まだ分かってないんですけど、下の@Aは両方とも問題なく使えますか?
- (id)getData { //@
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"hoge/hoge.xml"]];
return data;
}
- (id)getData { //A
NSData *data = [[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"hoge/hoge.xml"]] autorelease];
return data;
}

呼び出すときの有効範囲は中括弧内ですよね?
{
NSData *data = [self getData];
}

80 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 18:15:40.59 ]
何を聞きたいのかがよく分らんな。
まず、スタックとヒープの違い、オブジェクトのオーナーシップ、
メインループとAutoreleasePoolの関係を理解しれ。




81 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 18:21:32.31 ]
>>79
@とAは等価。
@は予めautoreleaseされたオブジェクトをdataに受け取ってる。
Aは自分で生成してautoreleaseしてる。

getDataが返したオブジェクトの有効範囲という意味なら中括弧は無関係。
どこかで現在のAutoreleasePoolが開放されるまでは生きてる。
たぶんフレームワークに制御を戻すまで。

82 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 18:34:32.76 ]
>>79
AppKit とかが AutoreleasePool 作ってるのを、
言語レベルで勝手に AutoreleasePool で括られてると勘違いしてるようだが、それは違う。

83 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 18:36:41.67 ]
変数のスコープと、オブジェクトのライフサイクルがごっちゃになってる気がするな。
{
 NSData *data = [self getData];
}
は、dataという変数のスコープは中括弧内に限定される(中括弧の外で参照しようとしても、
コンパイルが通らない)が、[self getData]から返された実体が実際に破棄されるのは、
次のループのサイクルに戻ってAutoreleasePoolが中身を破棄する時でしょ。 
autoreleaseした時点で、AutoreleasePoolに登録されている。

基本的にスコープとオブジェクトのライフサイクルは関係ない。スコープを抜けるときに
自動的にreleaseされることもない。

C++でローカルで宣言したオブジェクトがスコープを抜ける時に呼ばれるデストラクタと
ごっちゃになってないか。どっちかっつうと、allocとreleaseの関係は、C++のnewとdelete
に近い。でもC++のオブジェクトは参照カウンタによる管理ではないけど。最近のC++は
よく知らないが。



84 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 18:57:58.40 ]
じゃあ、混乱させよう
今のMac OS Xでの実装では

- (NSString *)hoge { return @"hoge";}
- (NSString *)fuga { return [NSString stringWithString:@"hoge"];}

で返されるものは同じインスタンス。

85 名前:63 mailto:sage [2011/09/21(水) 18:59:36.65 ]
みなさんの説明で、ようやく理解できてきたと思います。
スタックありきで考えていました。すんません。自分がスタックと考えていたもの全てヒープなんですね。
>>79の@がひっかかっていた理由が、
スタックに制限されると誤解していたので、スコープで理屈がつくよう自分理論を作ってました。
ありがとうございました。いやマジで。

86 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:08:19.77 ]
>>84
つまり、クラスクラスタの為せる技ってこと?

87 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:12:17.38 ]
>>86
+ (NSString*) stringWithString:(NSString*)s { return s; }
っていう実装になってる事に加えて、
コンパイラが同じ内容の文字列定数をひとつにまとめるようになってる
っていう事では?


88 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:13:31.64 ]
いやこんな風かな?
+ (NSString*) stringWithString:(NSString*)s { return [s autorelease]; }

89 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:14:15.10 ]
あれなんか違いそう

90 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:23:04.13 ]
NSString *s1 = @"hoge";
NSString *s2 = [NSString stringWithString:@"hoge"];
NSString *s3 = [NSMutableString stringWithString:@"hgoe"];
NSString *s4 = [NSString stringWithString:s3];
NSString *s5 = [NSString stringWithString:s4];
NSLog(@"%p, %p, %p, %p, %p", s1, s2, s3, s4, s5);

0x100002058, 0x100002058, 0x10054f3f0, 0x10054f450, 0x10054f450



91 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:26:09.97 ]
へー [NSString stringWithString:@"hoge"] も
autorelease されないんだな。

他の[NSString stringWith〜]はautoreleaseされるのに。

奥が深いというか、変態的というか。 黒魔術の一端を垣間見た気がした。


92 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:26:58.44 ]
されないってなんだよ。release に意味がないだけ

93 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:31:02.89 ]
あぁ定数だから、関係ないのか。

94 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:34:28.55 ]
定数はとにかく使いまわされるっていう事だな。

95 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:34:57.14 ]
つうことはあれか、ソース内に@"〜"の記述が増えれば増えるほど
それが一時的な用途であったにせよ、メモリを圧迫するってことか。

96 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:38:22.24 ]
でもリードオンリのページに置かれてプロセス間で共有されるだろうから、
同時にいくつも起動するプログラムなら節約になりそう。

97 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:45:58.05 ]
>>95
> 容量の初期値は 2500。
hmdt.jp/core/string/const.html

98 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:46:23.30 ]
それは文字列の内容が同じ場合でそ

99 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:48:34.78 ]
>>97
あぁつうことは、多少@"〜"が多かろうが少なかろうが、
その領域の容量は予め決まっているから、メモリ的には
あまり関係ないっつうことか。

100 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:50:47.24 ]
文字列定数をまとめるのって実行時にやってたのかよ・・・



101 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 19:53:58.47 ]
NSString *str0 = @"hoge";
NSString *str1 = [NSString stringWithString:str0];
NSString *str2 = [str0 copy];
fprintf(stderr, "%p, %p, %p¥n", str0, str1, str2);

全部同じインスタンス
コピーすらされない。節約魂入ってます。

@property (copy) NSString *hoge;
にイミュータブルなNSString文字列をsetするとまるで、
@property (retain) NSString *hoge;
のように振る舞うのもこれのおかげ。

102 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 20:04:24.45 ]
なるほど、NSString の中身は変更されようがないから、コピーを作る必要がないってことか。

103 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 02:47:19.46 ]
Constant CFString(=NSString)はかなり前からコンパイル時にgccがCFStringの構造を
直接展開する様になった。アセンブリリストで生成コードを見れば一目瞭然。
Constant CFStringに対してretainやreleaseはNOP扱いで何の効果も無い。
>>65
これが一番適切な答えだね。
>>97
これは化石情報

104 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 05:16:10.18 ]
質問させてくらはい

x = [[Foo alloc] init];
で init がエラーしたら、この alloc した領域はリークすると思うんですけどどうなんでしょう。


105 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 08:20:31.11 ]
「init がエラーしたら」ってなんだよ

106 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 09:42:17.72 ]
>>104
initが責任を負う

107 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 11:59:58.89 ]
つまり辞任?

108 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 12:16:02.29 ]
>>104
>>13にサンプル付きで載ってる。

109 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 16:42:25.26 ]
>>106,108
ありがとん

110 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 12:10:30.79 ]
正規表現リテラルとか欲しいな
@/hoge/ みたいな



111 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 20:00:20.06 ]
>>110

@interface NSString (regex)
@property(readonly) NSRegularExpression* r;
@end

@implementation NSString (regex)
- (NSRegularExpression*)r {
return [NSRegularExpression regularExpressionWithPattern:self options:0 error:nil];
}
@end

regex = @"hoge".r;

obj-cなら、この辺りが限界かな



112 名前:デフォルトの名無しさん [2011/09/25(日) 02:54:03.01 ]
通信を途中でキャンセルするのは、下のどの組み合わせが必要ですか?
1.同期通信
2.同期通信+GCD
3.非同期通信
4.非同期通信+GCD
1だとGUIが止まって4だと行けるのは何となく。2と3の制限がイマイチ分かりません。

113 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 13:38:56.52 ]
>>112
試してみて上手くいくのを採用。

114 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 18:47:20.02 ]
事故解決しました。

115 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 23:40:46.43 ]
まあ総当たりだと事故るよな

116 名前:デフォルトの名無しさん mailto:sage [2011/09/26(月) 06:14:49.09 ]
>>112
4.非同期にしてGCDしないと受信待ちから抜けられないでアンサー?

117 名前:デフォルトの名無しさん mailto:sage [2011/09/26(月) 12:09:55.61 ]
ライフラインお願いします。

118 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 00:46:55.39 ]
ゲーム開発には明らかに不向きだと思うんだけど、
ocj-cを採用した商用の3Dバリバリなアクションゲームとかあったりするの?
nextstepから随分と長いこと使われてるあたり保守性に優れてそうだし、
長期スパンで使い続ける趣味グラマには良さげなんだけれども

119 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 01:50:21.96 ]
>>118
一言でゲームといっても実際にはいろいろな種類のゲームがあるよね。
Objective-Cでの開発で不利にならないゲームのジャンルなり何なりがあるんじゃないかなあと思ったり。

120 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 01:56:38.30 ]
3DバリバリなやつなんてOpenGLなんだから、
OS側のフレームワークとのインターフェイス以外は全部CなりC++なりで書けるじゃん。



121 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 02:43:31.46 ]
>>119
quakeとか、doomとかをイメージしてまふ>3Dバリバリなアクションゲーム
画像処理系のプロプライエタリィなものは割とある気がするので、そういうのには向いてるのかと

>>120
そりゃま、そうなんだが
obj-cの特性を十分に使って開発されたソフトウェアの実績あるのかが気になったので

122 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 03:44:49.01 ]
決して言い過ぎではないと思うから言うけど、
>>121
>obj-cの特性を十分に使って開発されたソフトウェアの実績あるのか

んなモンは無い

123 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 08:37:40.11 ]
Appleの製品じゃね?

124 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 22:25:12.07 ]
>>121
そのObjective-Cの特性って、例えばどんなのを想定してるの?


125 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 22:45:52.61 ]
>>124
c++よりも動的な性質を持ったオブジェクト指向とか
特徴的といえば、(id)とかだけど、こういった独特の仕組みつかうことで開発効率あがったりするのかなと
obj-c自体にはあんまり関係なさそうだけどgcdとか

126 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:05:55.03 ]
idが特徴的って…あんま理解してなさそうだな。

127 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:20:20.86 ]
ああ、まったく理解してないぜ。ただの計算機歴史のミーハーだし
ネット上をいくら見回したって、smalltalk由来のオブジェクト指向以上の情報が見当たらのだもん
appleのプログラマが、ひょっこりとこのスレ見てるなんて奇跡でもおこらないかな

128 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:35:50.85 ]
世界初のWebブラウザーとWebObjectsをじっくり調べてごらん。

129 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:43:34.57 ]
Webブラウザの話は知ってるよ。知ってるわよ、そのぐらい。馬鹿にしないでくれる?っと。

奇遇にもちょうどWebObjectの記事を見ていたところw
javaで書き直されてるのね。不遇な子ですこと>obj-c

130 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:53:05.53 ]
>>125
それで、「動的」だと、なぜ開発効率のアップに繋がるんだ?




131 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 23:56:53.60 ]
その話題に持っていきたいなら隔離スレで頼む

煽りでなく、有益な流れになった試しがないw

132 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 00:02:33.36 ]
仕様の固まっていない未知のソフトウェアを書く上では型指定されていない方が作りやすかった
当時のレガシーなc++の型システムでは、プログラムの修正がほぼ不可能だったのだと妄想中

単にcとobjective-cしかなかったような気もするが。
でも、あの時代ってSTLもないよね?そんな理由でNSArrayとかが使いやすかったんじゃないの

133 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 00:03:46.88 ]
>>131
スレ違いスマソ

134 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 00:06:24.63 ]
>>131
あまり、その話題に持って行くつもりもなかったのだが、
でも、今回の話って、結局そういうレベルの話なのだろう。


135 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 00:31:42.43 ]
まああそこに落ち着いちゃうのかも知れないけど、落ち着いた先は泥沼なのよね

136 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 12:48:26.16 ]
Objective-CのObjective-はCの敷居を限り無く下げただけだからCと同じようなもんだと思えばよろし
実際コアな部分は殆どCで書かれてる

137 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 12:59:57.47 ]
>>132
まさにその罠にはまったのがAPIをC++でやったBeOSだったと記憶してる

138 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 19:56:59.56 ]
delegateパターンはid型が便利。
OBJ-Cのメリットは、ちゃんと書くとコメントがいらないことだと思う。

139 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 01:32:05.58 ]
cとc++ => 完全に別物
cobj-c => マクロのっけただけ
って認識であってる?

140 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 08:50:24.55 ]
だいたい合ってナイ



141 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 12:27:26.18 ]
極端な例えをする人は「そういうことにしたいんだろうな」としか思えん。
違うと言って「じゃあどう違うの?」「結局マクロみたいなものでやってるってことでしょ?」とか言いそうだし。

142 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 12:46:57.04 ]
いいえ、事実です。

143 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 12:51:04.02 ]
まあでもobjcはランタイムの方が本体で、
C言語に対する拡張はそれを便利に使えるようにするマクロ集的なところはあると思う。
C→C++とくらべると、なじんでないと言うか、異質感丸出しというか。ESQL/Cっぽい。

144 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 13:12:44.40 ]
C++もObjective-Cも
最初の実装はプリプロセッサだったからマクロっぽく見えるんじゃね?

145 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 15:16:04.88 ]
╭━━━╮┏┓┏━━━╮┈┈┈◤┈┈
┃╭━╮┃┃┃┃╭━╮┃┈◢◣◢◣┈
┃╰━╯╯┃┃┃╰━╯┃┈▉▉▉▋┈
┃╭━╮╮┃┃┃┏━━╯┈◥▉▉◤┈
┗┛┈┗┛┗┛┗┛Ⓢⓣⓔⓥⓔ_Ⓙⓞⓑⓢ
╭━━━━━━━━━━━━╮
┃▉▉▉▉▉▉▉▉▉▉▉▉┃
┃▉┏━━━━━━━━┓▉┃
┃▉┃ⓉⓗⓐⓝⓚⓎⓞⓤ┃▉┃
┃▉┗━━━━━━━━┛▉┃
┃▉▉▉▉▉▉▉▉▉▉▉▉┃
╰━━━━┳━━┳━━━━╯
▁▁▁▁╭╯▁▁╰╮▁▁▁▁
╱▔▔▔▔▔▔▔▔▔╲ ╭╮
▔▔▔▔▔▔▔▔▔▔▔ ╰╯

ずれるかな?

146 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 00:33:46.34 ]
ずれるかなじゃねーよ、ずれまくってるじゃねーか!
納品する前にちゃんとテストしろよ、ボケが!
あと、コピペできねーぞ。どうなってんだ!

147 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 01:00:29.11 ]
そういえば、Jobsが目をつけなかったらobjcは今頃博物館行きだったかもなあ。

148 名前:デフォルトの名無しさん [2011/10/08(土) 12:13:33.90 ]
iPhoneアプリで棒グラフを表示したいのですが、やり方が分かりません。
s7graphviewを使ってみましたが、イメージしているものと違っていて別のものを捜しています。
core-plot試しましたが、バイナリリンクの仕方が分からず挫折orz
(そもそもcore-plotでできるのか?)

JavaのJFreeChartの棒グラフのように表示できるものを捜しています。

Mac+Xcode4.1触り始めて一週間の素人です。
ご存知の方いたら教えてください。よろしくお願いします。



149 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 12:28:54.36 ]
>>147
そしてiPhoneデベロッパーたちはDylanを使っているのだな。

150 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 12:44:26.10 ]
NewtonScriptかも?



151 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 13:26:00.28 ]
>>146
ずれてないじゃん。

152 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:11:12.45 ]
>>151
メガネ変えろよ

153 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:20:59.41 ]
ズレてねーよ
gazo.restspace.jp/img-box/img20111008152021.png

AA用のフォントも持ってないのなら死ねよ

154 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:37:35.32 ]
AA用のフォントとか知るかよ。WindowsのIEで検証しろよ。

155 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:43:36.72 ]
このスレでWinIE前提を唱えるとはかなりのツワモノだなw

156 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:48:46.72 ]
AAってそもそもそういうもんだろ

〓 ウィキペディアより 〓

プロポーショナルフォントのアスキーアート

Internet Explorer5.0での表示を基準としたMS Pゴシック16ピクセル(12ポイント)、行間2ドットを標準として作られている。
数行?十数行であることが多いが、巨大なものでは50行に達する場合もある。

157 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:52:45.78 ]
そもそも>>154にはこれもズレて見えるからどうしようもない。
___________________________________
| /;;::   \ニ..|'         |         |:      /; イЖフ|:/:::,r'::,r''|  ,!゙ -'' |
|, ,/,: -;;;;;;;;;;;;;;;;;;;;;: |            |         |; :;;: : :   〈;;::丶ニフ |::,、/:,,===、 .,===,. |
|,i_, -ー───ァ|==、、_  ,__,,,,..、、|=ェ;、   ,,,,,, ,,,,,, | :;;:/    ,  、  |/ / .r;;;;;ヾ_r;;;; 、 .|
|t'i-、_,},}ノ ,,,:-;;彡-|_ィェァ了 (ェoヮ_ |ェヮ :)  f' _-ェェ‐|,,ノ     〉     |::/ ̄ヾ;;;;ノ l,ヾ;;;ノ, |
|. r;;/,;;;;;;^'''ィ_。 ュ、 |   ´!| |!`    | ´.::;i,  i. `'' ̄|爪      ヽ    ;|       ゞ   / |
|i'"~ ''''':;;、,,  ̄ . |  /u__,ゝ   | ,イ;:'  l    |ノ 丶ヘ_冫ノ    ,|. `トェェェェィ ./ |
|.'ー─^ー'_  ;; .| / _二' _、〉.. |/゙'''=-='''´ ヽ,...|    | |   ヽ   |、 . \二二/./  .|
|'ニニニニヽ_彡、,,|  ´  ̄  `   |'~===' '==='' .|.._,:ν⌒Y⌒ヽ、 ..::| 'ヽ    ̄ /ー- |
|___     /.::|゙ヽゝ、   ,   ノ | `::=====::"   |.Kェエエェエェ-冫::::|   \___/,:  .:::|
|;;''''''''''''':;丶_/,,::::|;;;;; ヽー --''" , |        .,i, |,. ヽ、___, ノ   | ゙''''- 、、  '、_   |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

158 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:54:18.05 ]
>>153
ヒラギノじゃんw
なにがAAフォントだ 捏造すんなw

159 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:56:32.69 ]
いーや、>>157はズレてないよ。

160 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 15:56:39.68 ]
>>158
バーカ



161 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 16:08:32.58 ]
>>149
それはそれで面白かったかもね。
動的な言語好きだわ。

162 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 18:00:09.02 ]
>>145 >>157
Windows7 IE9 をインストールした直後だけど、ずれてる

163 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 23:29:22.53 ]
メイリオ(笑)だとズレるんかもね

164 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 18:29:15.24 ]
なんなんだこのヘンタイ構文は
これをエレガントとか言ってる奴は頭腐ってる

165 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 18:51:31.07 ]
>>164
そんなことより聞いてくれよ
いま屁こいたら身が出たんだが

166 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 21:05:08.94 ]
で?

167 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 22:16:03.40 ]
エレガントって言ってる奴いるのかな
v1の二つの言語がしれっと同居してる様は面白いなとは思ったけどw

168 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 23:08:09.13 ]
しかし、Objective-Cってほんと、エレガントだよなぁ。

169 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 23:10:09.02 ]
Smalltalk知ってればそれほど違和感無いでしょ。
Objective-C++でSTLとAppKit混ぜたり、SSE使うのにintrinsic functionも
使うから、メッセージ構文如き何でもない。

170 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 23:28:39.41 ]
懐が広いというのかなんなのか
まあ変態言語なのは間違いないんじゃね



171 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 01:16:42.13 ]
NeXTとその後継のMacでしかまともに採用されなかった時点で
世のCプログラマがどのように見てたかわかるというもの

172 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 01:31:00.61 ]
まあ当時はこれしかなかったっていう感じなんだろうな。

173 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 05:22:50.93 ]
C++は汚いからな
Objective Cは動的な所が敬遠されたんだよな
今では逆に利点だけどさ
もっと早くにgc導入すべきだったよな

174 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 10:41:50.14 ]
Objective-CのGCってJavaや.NETみたいに透過的に使用できるのか?

175 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 11:27:24.51 ]
できないと思っていい

176 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:01:58.42 ]
>>174
Collectorが関知するのはObjective-CとCoreFoundationのobjectだけ。
AppleはコンパイラによるAutomatic Reference Countingを主力に考えているから、
GCは既に廃止方向

177 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:02:17.00 ]
>>174
ARCはGCじゃないよ

178 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:04:27.24 ]
GCはもう廃止方向なんだ。短い寿命だったな。

179 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:40:22.42 ]
Objective-Cを拡張していくよりまったく新しい言語考えたほうがいいと思うけどな
まあAppleに任せると謎センスでObjective-C以上にわけのわからない言語に仕上がりそうだけどw

180 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:45:54.01 ]
Dylanがあるじゃないw



181 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:47:51.10 ]
Dylanなんてアップル自身もさじを投げた糞言語だろw

182 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:53:58.48 ]
早すぎただけだよ。今なら逝ける。

183 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:55:43.97 ]
訃報: C 言語の開発者、デニス・リッチー氏が死去
ttp://developers.slashdot.jp/story/11/10/13/0224245/

Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところの Dennis Ritchie 博士が亡くなられた。
70 歳 (Rob Pike 氏による Google+ への投稿) 。

長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。

184 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:00:53.38 ]
Dylanもヘンタイだから広まらないだろうな
せめてC言語やってればすぐにマスターできますくらいのものでないと辛い

185 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:04:50.23 ]
また一人、業界の大御所が世を去ったか…

                黙祷

186 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:41:29.15 ]
言語だけ良くてもライブラリがしっかりしてなければ広まらないよ

187 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:43:05.30 ]
ブロック構文便利だけど、Objective-Cと混ざるとますますキモチワルイ。インデント的に。

188 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:48:05.65 ]
C#と.NET Frameworkは偉大

189 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:51:36.54 ]
>>183
ある意味ジョブズより偉大

190 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 14:00:34.30 ]
デニス・リッチーなんて一般的には過去の人扱いだしな



191 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 14:11:33.10 ]
どっちかといえばカーニハンの方に影響を受けてる気がする。

192 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 14:12:46.41 ]
go はどうなるんだろ

193 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 20:47:34.00 ]
Smalltalkライクの記述方法をCライクに変更するだけでだいぶ見やすくなると思う

194 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 22:10:51.40 ]
記述方法はpascalライクにした方がコンパイル速いんじゃないの?

195 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 01:04:15.93 ]
なんで?

196 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 02:17:40.99 ]
シンタックスカラーリングが当たり前のご時世に
そんな所で速度稼ごうとか思わんだろ
素直に分散コンパイル環境にする

197 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 02:39:09.71 ]
言語のせいじゃないだろ。ジョブズがC++選択してもMFCみたいなうんこにはならなかっただろうな。

198 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 02:43:32.67 ]
まあ当時C++は選択しようがないけどな。

199 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 02:55:28.07 ]
>>197
KT7の頃のMacAppやCWの方が現在のMFCより何倍もマシだからな
つかMFCって進化してるのか?

200 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 03:01:14.01 ]
文字列とかコンテナ類がテンプレートベースになってATLと共用になったくらいじゃない?



201 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 05:47:31.35 ]
やっぱMFCは進化の袋小路か
ObjCも色々変わって大変だけど
進化しないよりはマシだよな

202 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 05:52:01.90 ]
>>193
ならないよ。
www.macruby.org/documentation/rubycocoa-to-macruby.html
MacRubyはlabeled parameter使えるからまだ良いけど、
># RubyCocoa code
>NSFileManager.defaultManager.createFileAtPath_contents_attributes(p, c, a)
これは最悪だろ。

203 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 06:07:54.14 ]
ST風はわかりやすいと思うけど
@なんちゃらはわかりにくいな

204 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 16:38:16.99 ]
>>202
正直そっちのほうが見やすい

205 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 16:40:59.65 ]
普通にtabでインデントできる方が色々とありがたい。

206 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 16:44:20.26 ]
>>202
>>NSFileManager.defaultManager.createFileAtPath_contents_attributes(p, c, a)

これは嫌だw今のでいいよ

207 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 12:59:47.44 ]
性格の異なる複数の言語の構文が同居してる時点で気持ち悪い
流行らなかった理由はそこにあるんだろうね

208 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 13:53:11.79 ]
それぞれの言語がもつ膨大な資産をほとんどシームレスに使用できるなんて、
素晴らしいじゃないか。それに比べたら見た目の気持ち悪さなど些細なことだ。

209 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 14:06:18.45 ]
さすがにそれは苦しいw

210 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 16:10:52.20 ]
まあ俺が知る言語の中じゃヘンタイ度はピカイチ
でもそれがカッコいい



211 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 16:25:21.65 ]
えー、Pythonよりもー?
ヘンタイなのー?

212 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 17:22:49.35 ]
Pythonはインデント以外には変態要素ない気がするが

213 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 18:20:55.35 ]
__class__

214 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 18:25:04.34 ]
もともとSmalltalk自体ヘンタイだからなw

215 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 20:18:52.79 ]
そりゃタイヘンだ

216 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 22:33:03.57 ]
変体を重ねて美しくなるのさ

217 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 03:05:35.65 ]
メソッドを、いちいち [ ] で囲むのは、最初は面倒だと思ったけど、
だんだん人のソースを読むようになったら、

・[xxx yyy] だとメソッド
・xxx.yyy だとプロパティ

で、これは意外と見やすい(わかりやすい)かな、と思うようになった。

218 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 08:56:39.84 ]
[ ]はともかく、ラベル付き引数のおかげで読みやすさは一番だと思う

219 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 10:14:55.75 ]
Objective-C++でC++のクラスは扱えるけどC++でObjective-Cのクラスは扱えないのが辛い
だから基本的にクラスはC++で書いてる
正確にはCでも使えるようにCで書いたソースをC++のクラスでラップしてる
Objective-Cのクラスを扱うのはMacのAPIを利用する時だけ

220 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 12:29:31.26 ]
そんなことしたら、NSArrayやNSDictionaryで使えないじゃん



221 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 14:23:26.94 ]
自分で書いたコードをマック以外の環境でも必要とされるっての?
ちょっと羨ましいかもw

222 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 14:29:16.65 ]
OpenGL使ったゲーム系はAndroidでも共有できるしね。

223 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 14:30:33.13 ]
普通はコアな部分は極力プラットフォームに依存しないようにするな。

224 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 14:43:30.73 ]
頓智.com の人が言っていたけど、セカイカメラはほとんど C で書いたので、
iphoneアプリから Android に移植するときに、すごく楽だったといっていた
(Objective-C への依存を極力なくした)

225 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 15:19:15.64 ]
環境に依存する必要のない部分で依存させるようなコードを書く奴はど素人だけでしょ

226 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 15:22:48.66 ]
GPSとか、加速度センサとか、UI回りとか、Objective-Cに依存しなけりゃならん部分は結構あると思うんだが。


227 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 16:00:47.14 ]
APIを組み合わせるだけのアプリ開発してるならそうかも

228 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 16:24:14.30 ]
フルスクラッチで全部手作りかよ

229 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 16:33:39.44 ]
Cだって依存する環境だけどな・・・

230 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 16:53:33.98 ]
環境に依存する必要のない部分で依存させるようなコード
って例えばどういうコードなんだ?



231 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 16:58:01.72 ]
俺は独自の組込用RDBMSはCで書いてる
WinのアプリもMacのアプリも同じものを使ってる

232 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:01:51.58 ]
>>230
ありがちなのは、MVCのMの部分とか。

233 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:12:31.14 ]
例えば?って聞いてるのに、抽象的な回答する奴にはイラっとする。

234 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:15:00.31 ]
>>231
ディスクI/O部分は、POSIX使ってるの?

235 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:15:20.84 ]
むしろ例えばなんて聞いてるような奴が開発やってること自体
理解できない俺はおかしいのか?

236 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:17:22.49 ]
メタファの使用は開発現場ではごく普通だろ

237 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:21:10.95 ]
例えばでMVCのM
データベース自作してるやつがいる
知らなくても流れみればわかる話だろ

238 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:24:02.51 ]
>>234
依存部分と非依存部分をきっちり分けて、
依存部分は取り替えられるようなつくりにしとけばいいんだよ。


239 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:24:25.37 ]
MVCのMとデータベースは直接的な関係はないじゃん?
ORMの話か?

240 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:25:52.50 ]
>>238
POSIXは非依存部分と考えていいの?



241 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:26:42.41 ]
まあ必要性がわからなかったり、そもそも必要がない人は、ガチガチに依存して書いておけばいいんじゃね?
書き捨てならその方が手間はかからないし。

242 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:30:57.68 ]
>>240
いやだから、ファイルI/Oのモジュールを差し替えられるようにしとけば、
POSIX使うのとかWin32使うのとか、そこだけ作って差し替えれば
よそに持っていった時に最適な方法を使えるじゃん。

POSIXなら概ね非依存だろうけど、最適かどうかはまた別だよね。

243 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:36:41.25 ]
POSIXならWindowsでもMacでもUnixでも使えるじゃん。
いちいちWin32やCocoaで使えるインターフェース設計してそれ用のラッパ作るのって
そういうライブラリを作るのが目的とかじゃなければ、よっぽど時間と工数に恵まれた
環境じゃなきゃ現実的じゃないべ。


244 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:40:48.52 ]
何? 依存性を考慮して作ったから移植が簡単だと?それは良かった。
先月リリースしたiPhoneアプリのAndroid版を今月中にリリースしてくれ。
言語はたしか、Javaだったな。 じゃ、宜しくっ!

245 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:42:22.60 ]
しかしRDBMSを独自に組めるとかどんだけ頭いいんだ
数十万ステップオーダーだろ

246 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:43:26.74 ]
>>243
まあそうだけど、ちりばめないでまとめておくのは良い習慣でしょ。

247 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:46:05.85 ]
たいがいは、オプソのDBFileで十分だろ。
もちっと性能が求められるなら、いちいち作るよりMySQLの商用ライセンスでも買った方が時間も手間もかからない。

248 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:50:35.06 ]
>>247
そういう話ではないのだが

249 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:51:42.67 ]
俺はアプリに組み込む目的には専らsqlite使ってるな。
C#で書いたツールで作ったデータをiOSで使うみたいな事もできて便利。

250 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:55:13.48 ]
iPhoneの標準DBもSQLiteだしな。



251 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 18:18:53.77 ]
>>244
いまは Java を使わなくても C で Androidアプリ作れるよ。
もちろんコンパイル時にターゲットは固定されるけど、
現状では ARM がほとんどなので、そこに目をつぶれるなら。

もちろん、ビューの切り替え等は Java の SDK の API 使ったほうが楽なので、
C で書けるからと言って楽なわけではない。

iphone と Android で C で共有というのは、
GUI ではなくロジックの部分を、なるべく C で書いたら、楽に移植できたということでしょ。

252 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 18:27:48.20 ]
そりゃそうだろ

253 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 18:47:55.66 ]
プログラマ的思考の奴とシステムエンジニア的思考の奴が言い争ってる感じだな

254 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 18:49:32.52 ]
それはちょっと違うな

255 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 04:07:41.41 ]
わりとboostが普通につかえてるな

256 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 10:14:55.85 ]
むしろ使えないとおかしくね?

257 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 16:53:11.64 ]
なんで?

258 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 21:56:49.76 ]
コンパイラはGCCなんだからCやC++同様に使えて当たり前って話だろ

259 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 22:24:47.85 ]
>>258
既にコンパイラとしてのGCCは捨てた。


260 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 22:40:16.03 ]
まだ移行中ってとこだべ



261 名前:デフォルトの名無しさん [2011/10/24(月) 21:39:25.32 ]
Push通知機能のアプリを受託で実装しています。

自分の登録しているディベロッパーでApp IDsを作成し、
Apple Push Notification serviceを有効にする等の作業で作成した証明書では
とりあえずpush機能を実装できました。

ただお客様の登録しているディベロッパー上で証明書を作成する作業が、
自分のMac上でできるものなのか良くわかりません。

もしPush通知アプリを実装したことのある方、
このあたりのノウハウを教えて頂けたら幸いです。




262 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 01:06:55.88 ]
ttp://journal.mycom.co.jp/column/iphone/039/index.html
PDFファイルをいじるアプリを作りたくて,中の文字をいじれるように上のサイトを参考にして作ってた
のですが,上のPDF-5.zipにあるコードで作ると,最初のサンプルコード以外PDFファイルだと文字の抽出がうまくいかないのですが
なぜかわかる方アドバイスしていただけませんか?(もちろん新しいファイルとコード内での読みこむファイル名等を変えてはいます)

263 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 04:41:39.54 ]
>>261
まるでObjC関係ないし、そもそもどうやってリリースするつもりでいたんだよ

264 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 07:07:10.95 ]
>>261,262
スレチ


265 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 10:17:28.76 ]
>>261
新Mac板のiphone開発スレで聞いたほうがいいと思う

266 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 16:23:04.13 ]
C既習を前提としないObjective-Cの入門サイトor書籍ってないの?
Objective-Cはネット探しても他のメジャーな奴に比べてまだまだ少なくて困る

267 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 16:36:18.80 ]
正直Cの知識が無いやつにObjective-Cを触って欲しくない

268 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 16:52:16.47 ]
>>266
これ読んで感想教えて。

世界一わかりやすいObjective‐Cプログラミングの授業
www.amazon.co.jp/dp/4883377490

269 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 16:52:17.26 ]
欲しくないっていうか無理でしょ普通に考えて。

270 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 17:19:34.35 ]
評判いいC入門と評判いいobj-c本に分けて当たったほうが無駄なく済むと思う



271 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 17:23:29.08 ]
Cを知らずにいきなりObjective-Cをやる奴は、前戯無しでいきなり挿入するようんなもんだろ。

272 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 18:20:37.05 ]
こないだのテレビ番組じゃド素人が簡単なアプリ作れてたみたいだけど。

273 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 18:38:26.46 ]
でも、今Macの上で取りあえずC勉強しろって言われても地味すぎてつまらんだろ。
ある程度成果物ができてこないとモチベーションが続かない。仕事なら別だが。


274 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 19:20:59.67 ]
んー、やっぱしCからやったほうがいいの?
いろんな言語を使うならCをやっといた方がスムーズに新しい言語を学べるかもしれんが、
そうじゃないしCを学ぶのってただの時間の無駄にしか思えなくてあんまCをやる気にならない。
どうせCマスターしてもObjective-Cと違う所がたくさん出てくるんでしょ?

275 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 19:34:48.45 ]
目的によるけど、iPhone のプログラム作れるようになりたいとかなら、初心者向けの本いっぱい出てるから、
ここでグダグダ言ってないで、さっさと本屋さん行って良さげな本を買ってきて、実際に手を動かすのが一番。

276 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 20:26:08.72 ]
まあ明確な目的があるなら、とにかく始めるのが一番だよね。
行き詰まったら、その時に必要な知識を仕入れればいいし。

>>274
Objective-CはC+αなんだから、少しも無駄にはならないし、避けては通れないと思うよ。

277 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 21:14:47.04 ]
んだな。詰まったらC本買う、くらいの気構えでいんじゃね
やってみりゃ、すぐ>>264の言ってることがどういう意味なのか分かる

278 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 21:15:25.22 ]
わり、>>276さんのまちがい

279 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 21:43:23.00 ]
まずはK&Rを読み込んでから話だ
Cもできないプログラム言語の初学者に
ObjCはいまいちだと思うが

280 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 22:20:41.47 ]
ぐぬぬ、Cは避けれそうにもないか・・・?
やりたいこと(作りたいもの)はいろいろ明確にあるんだけどねー。
じゃ、Cからやってきますわ



281 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 22:41:19.64 ]
>>280
>やりたいこと(作りたいもの)はいろいろ明確にあるんだけどねー。
これが色々明確にあるひとは作る側に回る必要は無いと思うよ。
作れる人はいくらでも集められるし、これがある人は自分で作ってる暇はすぐになくなる。


282 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 23:20:06.51 ]
K&Rなんて読んだ奴は例外なく糞コード吐くからやめてくれ

283 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 23:53:36.05 ]
今時Cからやる必要なんて皆無。というか時間の無駄。

284 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 00:01:47.67 ]
>>283
だから、Cもやった事無い人は何からはじめればいいんでしょう?って質問がそもそもなんで、
是非それに答えてやってください。参考図書とか参考サイトとか。


285 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 00:07:31.97 ]
Cなんか無理にやらなくていいよ、斜め読み程度で
書店で数冊MacなりiPhoneの本買って、さっさと作り始める方が早い

286 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 00:15:29.23 ]
>>284
とりあえず始めるほうが早く覚えられる
一見は百聞にしかずと言うだろ

287 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 01:16:21.79 ]
とりあえず>>285的な感じで始めてみて、しばらくしたら壁にぶつかるから、
そしたらそれを乗り越えられそうな本なりサイトなりを探して読む。以降繰り返し。
実際に行き詰ってみれば、何が足りないのかわかるでしょ。
そしたらその都度知識を仕入れればいいじゃん。

288 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 01:26:30.85 ]
>>282
ちゃんと読んだことねえだろ
カーニハンはマジ導師

ま、どっちにしろCはいずれ避けて通れないし
Smalltalkも避けれないがな

289 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 01:47:55.64 ]
K&Rを本当の意味で理解できる奴なんて一握りだからな
下手に齧った奴は糞コードを吐くだけなので薦めない方がいい

290 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 01:51:03.85 ]
そもそもK&Rは初心者向けのものじゃないよ



291 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 08:06:16.74 ]
K&Rは面白いからな
薦めたくなるんだよ

292 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 11:04:46.10 ]
Cを知らんと、なぜオブジェクト変数の宣言に、*がひっついてるのかがピンとこないだろうな。
あと、配列とか、structとか、enumとか、NULLって何?とか、マクロの使い方とか、制御文
や四則演算とか、Core〜系APIの呼び出しとか、Cの基本知識は結構大事だと思うよ。
Objective-C++にまで手を出すとなったら、C++の前提として、Cの知識は必須だし。

293 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:36:22.88 ]
さすがにそこまで知らないレベルは、そもそもどんな言語でもまともに扱えないだろうし、
並の知能があれば調べればすぐに分かる。
「Objective-CをやるのにCから始めなければならない」かどうかという話を
「Objective-CをやるのにCの知識は不要」とまで極論付けるのは、どういう思考回路なのか。

294 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:43:40.64 ]
初学の趣味プログラマなら最初は興味が持続するのが大事だしな
ある程度わかりだしたらCとかSTとかの重要性とか
面白さがわかるんじゃなあかな

295 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:44:18.94 ]
だからといって害になりかねない初心者本はオススメ出来ないな

296 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:45:21.10 ]
初心者にとってCでやっかいなのは、たぶんポインタがらみだよね。
で、objcをやるにしても、ポインタがらみは普通にわかってないと困るんじゃないの?

297 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 19:47:49.27 ]
まあ必要性を感じたところで勉強すればいいわけだけど。

298 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 20:16:54.42 ]
NSString *str; とかの * はオブジェクトを表すお約束だと思えばポインタ分からなくても大丈夫だったりするんじゃないかな。
(で、error:(NSError **)error ではまる。)

299 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:04:46.92 ]
たまに、Appleのソースでも、->演算子をみかけたりするけどな。

300 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:14:38.37 ]
他人が書いたコードを読めないっていうのは、勉強する上でも圧倒的に不利だね。



301 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:37:28.00 ]
rubyCocoaとかのLLバインドが初学者向けに正式に定着すりゃ良いんだけどねえ

302 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 05:16:00.94 ]
>>298
>(で、error:(NSError **)error ではまる。)

まさに、それどういう意味なのかな?

303 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 07:55:25.90 ]
普通にオブジェクトが参照で
変数に入れれる言語が多いしね
扱い違うのは混乱するのかね
STよりにF-Scriptみたいなの欲しいね

304 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 09:19:53.29 ]
>>293
そういう話をしているのではなくて

「プログラミング未経験者なんだけどそういう人にお勧めの本はない?」
に対して「Cの入門書やってろ!」から入るからおかしな事になってるんだろう、

まあ、そういう本でオススメできるのが無いと言うのが一番問題なんだけど。

C++だってCの知識は必要だけどだからといっても未経験者がC++を学ぶ為にいきなり読み始める
事を前提とした本はあるだろ。そうでないと目的に到達する前に力つきるよ。

例えば、K&Rが良いと聞いてこれを読み始めてXcodeでのhello world!にたどりつけない人もいる気がする。


305 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 10:13:03.10 ]
お前何十年も修行して達人にでもなるのを待ってから戦場に出るつもりか?
気の長なげェ話だな

ベルセルク 第24巻より

306 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 12:15:06.03 ]
戦わずして勝つ…!

ニートより

307 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 12:48:49.80 ]
果報は寝て待つ。

生活保護受給者より

308 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 14:09:59.88 ]
目的意識と行動力が強い人なら
とっくに開発環境とサンプルコードダウンロードして
見よう見まねで作り始めてるさ

309 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 04:01:03.09 ]
まともな判断力があるならiOS/Androidやるかな・・いまは

310 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 10:04:19.52 ]
iOSで動作するAndroidってでないかなぁ。
技術的には可能だと思うけど。



311 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 10:11:56.48 ]
仮想環境?

312 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:08:56.79 ]
Wine(Win32 API over POSIX)みたいなものかな?

個人的には、逆にAndroidで動作するiOSが面白そうに思える
あるいはCocoa over Windowsでもいい
技術的には可能なはず....(誰がやるん?という話は置いといて)
GNUstepはWindows版もあるけど、なかなか安定していない

PDA(あるいはTablet device)だと、GNUstepをベースにした
mGSTEPという軽量版があって、これはSHARP Zaurs等で動く
ただしXlib前提なので、それがAndroid移植のネックになるかも

313 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:12:00.62 ]
bsd系のOSにはlinuxのエミュレーションがあったりするから、やれば出来そうだね。

314 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:14:31.04 ]
Android上で動作するiOSって難しいと思うなぁ。
エミュレータレベルなら出来そうだけど。

iOS上のAndroidは比較的簡単じゃね?
Android端末はLinuxにAndroidスタックをポーティングしてる。
iOSにもポーティングできるだろ。
しかもオープンソースだし。


315 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 21:42:33.50 ]
技術的には可能でもアポーが許可しないよ。Adobe Flashと同じ様に。

316 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:08:40.21 ]
>>314
階層化アーキテクチャという言葉を知っているかい?

AndroidがスタックしているのはLinuxカーネル上であって
(POSIX互換な)Linux API上ではない。残念ながらiOSは
クローズソースだから、外の人はカーネルIFは触れない
従って、Androidは対Linuxには移植が容易でも
iOS上への移植は技術的に困難を極める

後は仮想環境だけど、期待される性能を出すのは(おそらく)困難だろう

オープンソースだから何でもできると考えるのは浅はかな素人思考

317 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:10:24.95 ]
脱獄しちゃえばJAVA走るしiDroidなんてのもあるから光明ありそうだけど、Appleのお墨付きは絶望的だろうねえ

318 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:16:56.37 ]
Androidはとっととx86出せと。ポーティングはあるが、3系がなくて片手落ちだ。

319 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:17:25.20 ]
>>316
bsd系のOSってlinuxのバイナリをそのまま動かすための機能が入ってるのが多いけど、
それはlinuxのカーネルインターフェイスをエミュレートするものだよ。
だから同じような方式で出来そうなもんだけどね。

320 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:24:02.49 ]
>>312
>あるいはCocoa over Windowsでもいい
YellowBox for Windows?
わりと安定して動いてたんだけどね。まあ、方向性が違っちゃったって事で。





321 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:30:50.26 ]
>>319
階層化アーキテクチャという言葉を知っていますか?

BSDのLinuxエミュレーションはBSDカーネルIFが公開されていて、
しかもBSDカーネルのコード自身もオープンだから実現できた技術
どちらもUNIX由来のカーネルIFでカーネル空間内で実行されるから、
一般的な用途ではまず支障のない性能(低オーバヘッド)を達成できた

カーネルIFが公開されていないiOSとは、まったく事情が異なりますヨ

322 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:37:58.26 ]
>>321
iOSのカーネルってXNUじゃないの?

323 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 23:41:41.28 ]
いや、自分はiOSハッカーとかそういう類の人じゃないからよくしらないけどね。
JBの仕掛けを作ってる人たちはその気になればそれなりにやれるんじゃないのかと思って。

324 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 06:08:16.09 ]
>>321
AndroidがLinuxカーネルにポーティングされてるからって、iOSでもカーネルにポーティングしなきゃならんわけではなかろ?
Androidの下側のインターフェイスは公開されてるんだから、階層が違っても可能だと思うがなぁ。
確かにパフォーマンスは期待できないかもしれないが。

325 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 08:00:45.98 ]
「階層化アーキテクチャという言葉を知っていますか?」
と言っておけば取り敢えず何か言った気になれるということを学習した


326 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 11:46:57.99 ]
試してないけどin-the-boxていう
DalvikのiOSポートがあるね

327 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 22:10:34.20 ]
>>326
インストールしてみた
デモの通りにjavaのclassをdxしたjarが動いた
Hello Worldなw


328 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 22:16:25.02 ]
>>321
カーネルインターフェイスってなんだよw
Androidのアプリは基本vmで動いてるんだし
libcなどのライブラリもある
まるごとAndroidのシステムを動かす必要はないんだしな

329 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 22:17:58.76 ]
まだ続いててワロタ

330 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 08:14:42.13 ]
必死で反論を考えて痛んだろw



331 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 21:09:15.58 ]
初めて見たとき、@" "とか[]とか*とかで、なんか気持ち悪い!って思いましたが。

やってみるといいですねこれ。

332 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 12:37:24.21 ]
NetHack厨だった俺には特に違和感なかった。

333 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 22:37:26.50 ]
シングルトンインスタンスの作成
developer.apple.com/jp/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/chapter_3_section_10.html

このListing 2-15 シングルトンの実装の最後に
「必要に応じて割り当てと初期化を通じて他のインスタンスを作成する機能も必要になることがあります。そのような場合は、Listing 2-15に示したようにallocWithZone:以降の各メソッドをオーバーライドしません。」
ってあるんですが、
このシングルトンにプロパティを持たせる場合は「+ (MyGizmoClass*)sharedManager」だけ残して後は消してね。って意味でしょうか?
その場合、どうやってプロパティを初期化するんでしょうか?

334 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 23:21:21.21 ]
>>333
> 「+ (MyGizmoClass*)sharedManager」だけ残して後は消してね。って意味でしょうか?

そういう意味だと思います。

> このシングルトンにプロパティを持たせる場合は...その場合、どうやってプロパティを初期化するんでしょうか?

で、そのプロパティの話はどこから出て来たんだ?
まあ、プロパティの初期化なら、単純にinit...メソッド書くだけだけど?


335 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 00:18:04.53 ]
>>333
>>334 氏も触れているが、プロパティを持たせる件はどこから?
「インスタンスを作成する機能が必要な場合は」だよね。私には使いどころがイマイチわからないけど。

で、このドキュメントは英語版で更新されているので微妙に悩んだらそちらをあたってみる事もオススメ
します。実装も少し変わってるし。
developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW32




336 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 01:08:18.27 ]
横からなんだが、
英語の方のsynchronizedが消えた理由と、
allocWithZoneでretainしているのに、copyWithZoneでしていない理由がワカラン
どうでもいいと言えば、それまでなんだけどさ

337 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 08:46:22.78 ]
プロパティってのはこのシングルトンのインタンス変数にアクセスするためのインターフェースの事です。
そのプロパティにアクセスした時の初期値を>>333のシングルトンのコードの場合、どこで初期化するば良いのか知りたかったのです。
シングルトンがインスタンス変数を持つ場合は>>333のコードの+ (id)allocWithZone:以降はいらないとなると
残った+ (MyGizmoClass*)sharedManagerの中で問題ってことですよね。
>>335の英語版ドキュメントの方が新しいので今後はそちらを参考にしょうと思います。

>>336
シングルトンなのでコピーさせないようにしてるのでは。

338 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 09:23:49.53 ]
そもそも、シングルトンを複数生成やコピーできないようにするコードって必要なの?
プログラマが気をつければ済む話じゃない? ARC に移行したら retain や release は使えないし。
まぁ大規模プロジェクトや不特定多数に使われるライブラリなら分かるけど。

って訳で、+ sharedXXX だけ定義して使ってる。
インスタンスが必要なければクラスメソッドで済ませちゃうし。

339 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 09:27:12.68 ]
>>336
実装が変わってるのは旧版だとアナライザちゃんが警告するんだけど?って文句が出たから
言ってみれば今のはアナライザちゃんを騙すためのごまかしが入ってる

340 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 09:36:00.88 ]
>>338
俺もそんな感じで使ってる。趣味開発なら問題無いしな。

>>339
なるほど。納得した。
でもsynchronizedまで外していいのかね。



341 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 10:33:21.52 ]
>>338
別のクラスの中に埋めたりした時にもシングルトンである事を保証したいような時に使うかな?
シングルトンなオブジェクトを別のオブジェクトに埋めないように気をつけるか、
埋めたオブジェクトを複数生成したりしなければ問題ないかと。

でも、これらに気をつけながら使うぐらいならわざわざシングルトンの実装はしないな。


342 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 11:52:35.79 ]
>>341
埋めるってどうやって? C++ なら分かるけど、ObjC だとポインタで持つしかないよね? サブクラスのこと?

343 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 19:40:25.28 ]
>>337
> プロパティってのはこのシングルトンのインタンス変数にアクセスするためのインターフェースの事です。

なんか、「プロパティ」と「インスタンス変数」と「インターフェース」の言葉の意味をどう解釈して良いのか分からないぐらい、意味不明な内容なのだが...

普通に考えると、シングルトン・オブジェクトにアクセスするインターフェースは、+ (MyGizmoClass*)sharedManagerということになると思うのだが。


344 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 20:39:14.03 ]
>>343
また横からなんだが、
@interface Singleton : NSObject {
int value;
}
+ (id)sharedInstance;
@property int value;
@end
ならvalueプロパティが、インスタンス変数valueにアクセスするインターフェースになるんじゃ

それと今は、
NSFileManagerのように、defaultManagerとalloc-initで得られるインスタンスが異なるから、
そういうケースでalloc以降をオーバーライドすると、allocしたやつがreleaseできなくなるって話だよね?
プロパティ持たせるだけなら、alloc以降もオーバーライドしないといかんし。

345 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 20:55:39.70 ]
>>344
そういうことなら、結局のところ、シングルトンのプロパティはinit...メソッドの中で初期化すればいい。
という話でいいのかな?


346 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:08:05.03 ]
>>345
alloc-initでshared...と同じインスタンスを返す仕様だと、
initをオーバーライドしないと、alloc-initで取得した場合に、
初期化済みのインスタンスに再度親クラスのinitを呼ぶことになるから、
それが嫌なら、何らかの対策は必要になるんじゃないかな。
NSObjectのinitなら単にself返すだけとドキュメントに書いてあるけどね。

347 名前:700 mailto:sage [2011/11/16(水) 10:32:58.96 ]
これからiPhone/iPodのアプリの開発をはじめたいんだけど、
端末は第三世代と第四世代の2つ(どっちかをiPhone、もう片方がiPod Touch)
があればいいのかな?

348 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 10:52:47.63 ]
スレ違いだから良く分からんが全部持っとけばいいんじゃね?
ObjCがどれでも使えるのは間違いないよ

349 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 21:45:17.31 ]
iPhoneアプリのInstagramみたいにiOS5のTwitter機能使いつつ投稿クライアント名を任意にしたいんだけど、どうすればいいの?教えてエロい人

350 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 05:27:53.65 ]
勉強してみるかな



351 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:07:25.96 ]
UIView.hにある以下は何を表しているのでしょうか?
@interfaceは class : supper class という書き方しか知らないのですが。

@interface UIView(UIViewGeometry)

352 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:48:17.24 ]
>>351
>>3

353 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:23:22.58 ]
windows7 でのGNUStepのgccにてobjective-cなのですが、
@autoreleasepool { }ブロックがコンパイルできなくて困っています。
これがコンパイルしたいコードです
//main.m
#import <Foundation/Foundation.h>

int main(void)
{
@autoreleasepool {
id obj = [[[NSObject alloc] init] autorelease];
}
return 0;
}

Makefileです
main.exe: main.o
gcc $^ -o $@ -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -enable-auto-import
main.o: main.m
gcc -c -o $@ $^ -I /GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString

clean:
@rm -rf *.exe *.o

354 名前:353 mailto:sage [2011/11/23(水) 17:25:18.76 ]
エラー内容です。
main.m: In function 'main':
main.m:6:2: error: stray '@' in program
main.m:6:3: error: 'autoreleasepool' undeclared (first use in this function)
main.m:6:3: note: each undeclared identifier is reported only once for each func
tion it appears in
main.m:6:19: error: expected ';' before '{' token

355 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:31:23.78 ]
autoreleasepoolやめて手で書けば

356 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:34:49.11 ]
>>353
blocksにはClangが必要


357 名前:353 mailto:sage [2011/11/23(水) 17:38:55.56 ]
>>356
ありがとうございます。
そうなんですか・・・
MaxでのXCodeでもそうなんですか?

358 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:40:30.07 ]
>>356
なんでBlocks? ARCの話だろ

359 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 17:41:54.49 ]
ARCの話ともちょっと違うかも

360 名前:353 mailto:sage [2011/11/23(水) 18:31:18.30 ]
調べてみたらMaxでも新しいXCodeなら使える?らしいですね
ttp://stackoverflow.com/questions/7926843/a-fail-concerning-the-expression-autoreleasepool
手でNSAuto〜でやることにします。
ありがとうございました。



361 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 20:00:10.17 ]
gccを使わず、clangにすればいい。

362 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:18:00.25 ]
winでgnu stepでgccとかって
なんかの修行?

363 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:04:37.76 ]
>>362
今手元にMacが無いんですが、今後objective-cやる予定があって、
その練習です。なのでこの環境でアプリ作る予定ではないです。

>>361
clangでやったらヘッダーが無いとか色々怒られて面倒になってしまいました

364 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:06:06.40 ]
勉強なら仮想環境(VMWare)上でやればいい

365 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:52:42.88 ]
>>364
う〜んどうやらグレーな感じですし、今回はやめておきます。

366 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:07:28.63 ]
プログラミングで遊ぶのにMacいいよ
いい機会だし一台手に入れてみては

367 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:13:34.83 ]
>>366
お金たまったら手に入れたいな〜と妄想中ですわぁ

368 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 01:08:58.21 ]
Mac Mini買っとき

369 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 09:49:52.99 ]
miniは、なかなかよい

370 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 23:51:19.37 ]
色の配列を作成したい。

Color list[] = { "ffffff", "ffcccc" };

みたいなことをしたい。



371 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:15:01.31 ]
共通の定数を定義したcommon.hを作成し、
他の複数のファイルから#importするとリンクエラーになる。
回避策ない?

372 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:25:13.62 ]
なにをどんな風に書いてんの?

373 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 02:20:26.39 ]
インポートは何回やってもいいはずだが、
インクルードはだめだけど

374 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 02:29:13.98 ]
同じ定義が複数のファイルに含まれる事になってduplicate symbolとかそんな話でしょ。

375 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 18:25:59.32 ]
extern使え

376 名前:デフォルトの名無しさん [2011/11/25(金) 21:42:59.95 ]



377 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:06:34.95 ]
クラスの引数のラベルって第2引数からしかつけられないのかね?
第1引数はメソッド名がラベル扱い?

378 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:22:32.62 ]
VBとかの引数ラベルとはまた別の考えの物だから

379 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 00:23:01.83 ]
137:デフォルトの名無しさん :sage:2010/10/17(日) 12:28:41
メソッドの第一引数のコロンの前はメソッド名なのに、第二引数以降はコロンの前がラベルになってる。

アンバランスな気がするんだけど、言語デザイン的に理由があるのかね。

コロンを縦に並べたときの見栄えのためだけに、第一引数の前のラベルはなかったことにしたの?

138:デフォルトの名無しさん :sage:2010/10/17(日) 14:07:02
全部メソッド名なんだが。
ラベルなんてものはない。

140:デフォルトの名無しさん :sage:2010/10/18(月) 10:28:46
developer.apple.com/jp/documentation/cocoa/conceptual/objectivec/Articles/chapter_2_section_3.html

ラベルって呼ぶんだよね、実は。
便宜上そう呼んでるだけっぽいけど

143:デフォルトの名無しさん :sage:2010/10/18(月) 14:00:40
>>140
ObjCの専門用語としてラベルって言ってるんじゃなくて
日常英語としてラベルって書いてるんだろうね

380 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:37:00.20 ]
構文では単にセレクタとなってるね
しかしそもそも第一引数にも:ついてる



381 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 01:39:55.72 ]
allocみたいな:がない奴は単項セレクタで引数ではない

382 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 09:23:40.61 ]
CもC++もObjCも慣れたらどうってことは無いな
ObjCは活躍の場が限られすぎるところが問題だが

383 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 11:08:23.45 ]
勝谷君

384 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 13:10:38.28 ]
やってみる

385 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 16:48:51.89 ]
質問です。
ObjCではシングルトンインスタンスは作りっぱなしのコードばかり見つかるんですが、
それはOSがお片付けしてね!って思想ですか?
もちろんメモリ以外のリソースは、
それ用のメソッドを用意しなければならないですが。


386 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 16:52:33.36 ]
シングルトンを一々解放する必要がある設計ってなによ?

387 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:20:59.95 ]
>>385
他の言語だといちいち自分で解放するの?

388 名前:385 mailto:sage [2011/12/06(火) 17:26:03.67 ]
CやC++でヒープに確保していたシングルトンインスタンスは解放していたので。
ただ解放しないという方針でよさそうですね。
ありがとうございました。

389 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:53:40.59 ]
自力リファレンスカウンタ方式なら通常運用で解放できるんじゃね?

static long refCount = 0;
@implementation Hoge
static Hoge *sharedInstance = nil;
- (id)allocWithZone:(NSZone *)zone
{
refCount++;
// 以下テンプレ通り
}
- (id)retain
{
refCount++;
return self;
}
- (id)autorelease
{
[[[Foo alloc] initWithObj:self] autorelease];
return self;
}
- (oneway void)release
{
if(--refCount == 0) [self dealloc]:
}
@end
@implementation Foo
- (id)initWithObj:(id)inObj { obj = [inObj retain]; }
-(void)dealloc { [obj release]; [super dealloc]; }
@end
とか

390 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 19:05:51.90 ]
@imp...
+ (id)alloc...{
if (!sharedInstance) { ... }
...
}
- (void)dealloc {
...
sharedInstance = nil;
}
...
@end
参照カウンタはNSObject任せでいいような。



391 名前:385 mailto:sage [2011/12/06(火) 21:14:15.76 ]
>>389-390
状況によってはこっちの挙動のがいい場合もありそうですね
ありがとうございます。

392 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 23:27:40.83 ]
>>389
面白いなあ。キミ頭おかしいんじゃね?
自力リファレンスカウンタ(笑)

393 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 15:24:50.29 ]
UDPプログラムを作っている時、エラーが出てきてとれません。

参考サイト
www.geekpage.jp/programming/macosX-network/udp.php

エラーが出ているところ
addr.sin_addr.s_addr = inet_addr("127.0.0.1");

エラー内容
file://localhost/Users/user1/Desktop/wol/wol/Wol.m: warning: Semantic Issue: Implicit declaration of function 'inet_addr' is invalid in C99

なにか追加したらいいんでしょうか?

394 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 15:48:59.03 ]
#include <arpa/inet.h>

395 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:06:42.01 ]
>>394
ありがとうございました。それで消えました。


396 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:13:02.79 ]
スレチだしエラーくらい自分で読めって感じだけどな。

397 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:31:48.37 ]
ググればすぐに解決することを聞いてくる奴は無能以下だよな

398 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:20:09.88 ]
>>397
未満だろ
無能に謝れ

399 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:35:34.54 ]
文脈をみれば以下で自然。
予想以下とか、予想を含まないから。

400 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 23:47:57.37 ]
困った、バカだ



401 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 10:33:32.17 ]
以下でOK

402 名前:デフォルトの名無しさん [2011/12/14(水) 11:35:33.11 ]
すみません。教えてください。
(1)を(2)に書き換えるべきか悩んでいるのですが、(2)のほうがメモリの効率は良いのでしょうか?
(NSStringの割り当てはメモリに残り続けると何かで読んだので、気になっています)
それとも、これはあんまり意味のない書き換えで、メモリがきついなら、ループの何回かに一回、
NSAutoreleasePoolを挟んでおけばおkですか?

(1)NSString
for(int i = 0; i < newDataArray.count; i = i + 1) {
 NSString *threadString = [newDataArray objectAtIndex:i];
 <中略>
}

(2)NSMutableString
NSMutableString *threadString = [[NSMutableString alloc] init];
for(int i = 0; i < newDataArray.count; i = i + 1) {
 [threadString setString:[newDataArray objectAtIndex:i]];
 <中略>
}
[threadString release];


403 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:40:38.13 ]
(1) の方が良いに決まってるだろ。

> [threadString setString:[newDataArray objectAtIndex:i]];
Array から取り出した String を一々コピーしてどうする。

404 名前:402 mailto:sage [2011/12/14(水) 11:51:41.88 ]
>>403
ありがとうございます。
メモリに残るというのは、NSString *msg = @"hoge"; のように定数を設定した場合の話ですよね。
助かりました。

405 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:53:40.04 ]
処理が要素を読むだけなら(1)の一択

>NSStringの割り当てはメモリに残り続けると何かで読んだので、
意味が分からない NSStringリテラルの話?


あと、高速列挙使った方がいいかな

int i = 0; // インデックスが必要なら
for(NSString *threadString in newDataArray) {
// なにかする
i++; // インデックスが必要なら
}

>NSAutoreleasePoolを挟んでおけばおkですか?
うん

406 名前:402 mailto:sage [2011/12/14(水) 12:13:56.07 ]
>意味が分からない NSStringリテラルの話?
リテラルの話です。仕様の細かい話を読んで、理解しきれず変に混乱してしまったみたいです。スマソ。

>あと、高速列挙使った方がいいかな
使ってなかった。ありがとー!

407 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 07:48:15.32 ]
plistファイルを読み込みたく、以下のように記述しました

NSString *path = [[NSBundle mainBundle] pathForResource:@"hogehoge" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:path];

しかし、これだとerror: initializer element is not constantがでます
そういう場合はどこに原因があるのでしょうか

408 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 08:42:27.37 ]
>>407
エラーメッセージでぐぐれ。

書く内容の問題ではなく、書く場所の問題。メソッド (や関数) の中に書けば OK。

409 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 22:02:15.93 ]
これで独立できる

売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
bit.ly/iLIpJa
bit.ly/m7nkew

410 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 00:31:16.55 ]
地方でシェアオフィスが成功すると信じるあなたは事業失敗に突き進むと予言しときます



411 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 08:17:47.23 ]
>>410
それ、定期的に流れるスパムだよ

412 名前:デフォルトの名無しさん [2011/12/21(水) 17:21:27.29 ]
クラスの中で変数をセットする場合って、たとえば、
name = @”hoge”; ではなく、self.name = @”hoge”; もしくは、[self setName:@”hoge”];とやるべき?
publicな変数にそうしたほうがいいのは分かるけど、作法として、privateな変数にまでそうやるべきもの?
privateを含む全ての変数に@property,@synthesizeを設定するのは、ちょっと面倒に感じるのだけど。

413 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:31:31.47 ]
オーナーシップ
GC、ARC
で答えが微妙に違う


KVO発動させなくていいなら割とどうでもいい

414 名前:412 mailto:sage [2011/12/21(水) 20:20:34.18 ]
>>413
>GC、ARC
iOS用に書いてたんだけど、ARCになるとルール全然違うのね。うへえ。
>KVO発動させなくていいなら割とどうでもいい
参考になった。ありがとう。

415 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:13:11.69 ]
半端な知識でインスタンス変数に生で代入したりするとメモリリークしまくる
だけだから素直にプロパティ使った方がいいと思うけどね
モダンランタイムになってから自分で変数用意してやる必要無いし
手間としてはそんな変わらん

416 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:13:55.54 ]
まあARC使うならあんまり気にしなくていいけど

417 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:48:56.85 ]
>>411
そんなスパムにコメントしたあたくしがこっぱずかしー

418 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:44:48.35 ]
穴を見つけて入れ!

419 名前:デフォルトの名無しさん [2011/12/22(木) 00:18:13.73 ]
アホな質問でごめん。以下のfuncで
messageの解放がはじまるのは、forループが終わった後で、
regexpの解放がはじまるのは、funcを抜けた後という理解で合ってる?
つまり、スコープ内でのautoreleaseオブジェクトの生存が保証されてるのか、ということなんだけど。

たとえばfuncをバックグラウンドで実行させている途中でメモリの解放がかかったときのために、
(まさか、いらないとは思うんだけど)関数内の頭と尻尾で手動でallocとreleaseしたほうがよいのかとか混乱中。

- (void)func:(NSArray *)sourceArray pattern:(NSString *)pattern relace:(NSString *)replace {
 NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
 for(NSString *message in sourceArray) {
  NSString *replaced = [regexp stringByReplacingMatchesInString:message options:0 range:NSMakeRange(0,message.length) withTemplate:replace];
  /* 中略 */
 }
}

420 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:42:02.76 ]
message は retain されてないから、解放も糞もない。
regexp の解放は、func を呼び出す状況に依るだろう。



421 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:15:47.16 ]
>>419
ARC かどうかで微妙に違う。ARC 無効の場合、
・message は sourceArray が retain してるものを参照してるので、
 sourceArray から削除されない限り有効。
・regexp は一番内側の autorelease pool が解放されない限り有効。
 自分でわざわざ autorelease pool を生成/解放しない限り、
 スコープを抜けても有効。特に、return してもまだ生きてる。

ARC の場合、regexp や message などの変数はデフォルト __strong なので、
代入した時点で retain され、スコープから抜ける時に release される。
(スコープから抜けても sourceArray や autorelease pool が所有権を
持ってるので、ただちに解放される訳ではない。)

422 名前:419 mailto:sage [2011/12/22(木) 03:15:34.82 ]
>>420
>>421
ありがとう。もうちょっと、教えて。すまん。

>・regexp は一番内側の autorelease pool が解放されない限り有効。
つまり、メインスレッドでイベントループが進行しても、バックグランドで実行中のfuncのなかの
(regexpが登録されている)内側のautoreleaseプールが解放されることはない?
自分でわざわざautorelease poolを作成していない場合の話として。

それは、メインスレッドで解放されるプールと、regexpの登録されているプールの場所が違うからか、
それとも、スコープを抜けないとregexpのrelease処理を実行しないからなのか、どっちなんだろう?
#なんとなくメインスレッドが進行すると、1つしかないプールを空っぽにされそうなイメージがあるのだけど

早くARCに移ったほうがいい気がしてきた。

423 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 04:37:47.37 ]
・autoreleasepoolはthread local
・main thread以外のthreadのpoolは自分でつくらないといけない

424 名前:419 mailto:sage [2011/12/22(木) 13:52:01.64 ]
>>423
ありがとう。ここまで教えてもらって、やっと分かってきた。
ARCを使わない場合に、サブスレッドでNSAutoreleasePoolを自分で作らないといけないのは、以下の全部?

(1)NSThread detachNewThreadSelector:@selector
(2)self performSelector:@selector
(3)GCD:dispatch_async
(4)非同期通信:NSURLConnection connectionWithRequest:request delegate:delegate

(1),(2)で、自分でプール管理しないといけないのは分かる。(3),(4)の場合、自動的にNSAutoreleasePoolを用意してくれるのかな?
質問のバックグラウンド処理は(4)の後のconnectionDidFinishLoadingでの処理なんだけど。

425 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:00:35.91 ]
Objective-CでCGI書けますか?

426 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:10:37.24 ]
駆けます。

427 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:12:53.04 ]
ありがとうございます

Hello WorldのCGIだけでも教えてください orz

428 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:28:26.57 ]
int main() {
printf("Hello World\n");
}

429 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:15:14.45 ]
こんにちわ、はじめたばっかりでよくわからないんですが、xcode4.2で、外部ファイルはどうすればいいですか?
4.1以下はリソースフォルダの中に入れれば良いみたいですが、4.2で初めて触りだしたので、よくわかっていません。
ネット上にも情報少なく…。お願いします。

430 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:20:41.98 ]
スレチ



431 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:36:58.80 ]
>>424
「いけない」のは 1 だけ。

2: そもそもスレッド関係ない。-[NSObject performSelector:] は呼び出したスレッドでの実行。
performSelectorInBackground:withObject:のことをいっているのならば
(1と同様に)自分で作らないといけない。

3: GCDのqueueがプールを用意しているから、自分では作らなくてもよい。
ただし、そのプール内のオブジェクトがいつ解放されるのかは保証がないので、
オブジェクトを大量に作成する場合などには自前で用意したほうがよいこともある。

4: これもスレッドは関係ない。
NSURLConnectionはスレッドではなくRunLoopによるイベント駆動型の非同期処理。
-[NSURLConnectionDelegate connectionDidFinishLoading:]は
+[NSURLConnection connectionWithRequest:delegate:]を実行したのと同じスレッドで呼ばれる。

432 名前:419 mailto:sage [2011/12/22(木) 21:36:40.25 ]
>>431
>2: そもそもスレッド関係ない。-[NSObject performSelector:] は呼び出したスレッドでの実行
>+[NSURLConnection connectionWithRequest:delegate:]を実行したのと同じスレッドで呼ばれる。
このあたりが、ごっちゃになってた。

丁寧に教えてくれて、ありがとう。かなり助かった。

433 名前:デフォルトの名無しさん [2011/12/24(土) 19:23:51.25 ]
高速列挙では順番が保証されないというのを見かけて気になってるのだけど、
以下のような単純なarrayやmutableArrayでも、高速列挙で順番が狂うことがあるの?
こういう場合なら順番が狂うという例を教えてもらえないかな。

NSArray *array = [NSArray arrayWithObjects: @”One”, @”Two”, @”Three”, @”Four”, nil];
for(NSString *string in array) { NSLog(@"%@", string); }

NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array];
[mutableArray addObject:@”Five”];
for(NSString *string in multableArray) { NSLog(@”%@”, string); }

434 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 19:55:56.82 ]
> 高速列挙では順番が保証されないというのを見かけて

何処で見かけたの?

435 名前:433 mailto:sage [2011/12/24(土) 20:19:16.08 ]
>>434
ttp://d.hatena.ne.jp/watanata2000/20110104/1294108945
このブログの記事。なんか自分が勘違いしてるのかもしれない。

436 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 20:58:19.47 ]
配列なら保証されてると思うけど、どうなんだろね。

developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf
「明確な順序を持つコレクションや列挙子(配列から派生したNSArrayインスタンスやNSEnumerator インスタンス)の場合、
列挙はその順序に従って行われるため、必要な場合は反復をカウントする だけでコレクション内を指す正しいインデックスが得られます。」

「For collections or enumerators that have a well-defined order―such as NSArray or NSEnumerator instance derived from an array―
the enumeration proceeds in that order, so simply counting iterations will give you the proper index into the collection if you need it.」

詳解Objective-C2.0の2刷にも「配列の場合は先頭から順番」と書いてあるけど、

翻訳がミスってるのか、実装がおかしいか、何か勘違いがあるのか、最近変わったのかも。

437 名前:436 mailto:sage [2011/12/24(土) 21:10:34.19 ]
そのサイトのコードを見ると
for (UIScrollView *scrollView in self.scrollView.subviews) {

UIScrollView *scrollView = [self.scrollViews objectAtIndex:index];
だから、
高速列挙はsubviewsのviewをとってて、
もう一つはscrollViewsのオブジェクトを取得してるから、サイトに載せる時に書き間違えてなければ
高速列挙の方は
for (UIScrollView *scrollView in self.scrollViews) {
じゃないのかな。
subViewsがscrollViewsと同じかどうかはこれだけじゃわからないけど。

438 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 07:09:32.06 ]
>>436-437
ありがと。配列なら問題なさそうだけど、なんか気になるなあ


439 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:47:58.73 ]
荻原本の第3版が出てた。ARC関連が追加っぽい

荻原本
amazon.jp/dp/4797368276

440 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:43:31.85 ]
画面遷移するときのアニメーションで、『右から左方向にスライド』するプロパティが無いか探しています。
どこかのサンプルから拾ってきた画面遷移するメソッドなんですけど、
ソースに、いろいろプロパティを設定してみたのですが、その思うようなプロパティが見つからないです。

-(IBAction)showTableLight{
//使う変数
TLLightViewController *controller = [[TLLightViewController alloc] initWithNibName:@"TLLightViewController" bundle:nil];
//プロパティ色々
//controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; //横回転フリップ
//controller.modalTransitionStyle = UIModalTransitionStylePartialCurl; //ページ送り
//controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; //じわじわとみえてくる表示
//controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; //下から上方向にスライド表示
//controller.modalPresentationStyle = UIModalPresentationCurrentContext; //下から上方向にスライド表示
//controller.modalPresentationStyle = UIModalPresentationFormSheet; //下から上方向にポップアップでスライド表示
//controller.modalPresentationStyle = UIModalPresentationFullScreen; //下から上方向にスライド表示(画面全体)
//controller.modalPresentationStyle = UIModalPresentationPageSheet; //下から上方向にスライド表示(ページ全体)
//画面遷移
[self presentModalViewController:controller animated:YES];
//解放
//[controller release]; //xcode3迄
controller = nil;
}




441 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:53:34.37 ]
スレチ

442 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:52:06.23 ]
>>438
そのブログが阿呆なだけ

443 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:55:45.72 ]
何でWindowsに開発環境を用意してくれないのですか?
QuickTimeというksみたいなものはWindowsにあるのに何でですか?

444 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 18:35:17.44 ]
>>443
GNUStep


445 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 18:44:11.61 ]
>>443
MSがVisualStudio for Mac出してWindowsPhoneの開発ができるようになったら俺も賛同するよ

446 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 18:56:46.83 ]
>>445
ここに書くんだから「Appleは」なわけがなでしょ
こんな所にそんなこと書いても何の意味もないじゃん

まさか >443 はそこまで馬鹿じゃないでしょ?

447 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:07:55.83 ]
>>445
普通にVSなんていらねえわな

448 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 02:23:20.52 ]
2005くらいのVSはけっこう好きだな。
最近のはVSもXcodeも同じくらいイライラする。

449 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 10:21:24.68 ]
>>446
日本語で

450 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 10:34:05.33 ]
>>449
要点だけにすると

>443 スレ違いだボケ



451 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 11:02:59.02 ]
ocの開発環境の話題なのにスレ違いでもないと思うけど

452 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 11:39:30.02 ]
ここは言語のみでしょ。

453 名前:デフォルトの名無しさん [2011/12/28(水) 12:00:48.56 ]
Cocoa等のフレームワークの話ならまだしも開発環境の話はすれ違いでしょう
フレームを望んでるなら釣れやすい新板の、Xcodeスレがあるし

454 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 15:50:43.04 ]
Cocoaどこの細道じゃ

455 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:03:23.65 ]
知らん

456 名前:デフォルトの名無しさん [2011/12/30(金) 22:03:06.26 ]
perlみたいに、NSString *strのなかに直接文字列を放り込む方法ってない?
ダブルクオートを逐一変換するのは面倒なので。

$str =<<EOF;
[生文字列]
EOF

NSString *str = "[ダブルクオートを変換した文字列]";

457 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 22:08:33.33 ]
>>456
ない。

458 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 22:52:24.85 ]
その内 C++11 に導入された raw string リテラルも使えるようになるんじゃ

459 名前:456 mailto:sage [2011/12/31(土) 00:51:50.38 ]
>>457
ありがと

460 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:04:00.13 ]

MuchaSukebeObject Class reference

MSPanty Class

MSObject / MSGoods / MSPanty

- Example -

MSPanty *panty = [[MSPanty alloc]initWithPantyStyle:bikiniStyle];
panty.color = [MSColor romancePinkColor ];
panty.material = [MSMaterial materialWithsatin:0.6 silk:nil cotton:nil nylon:0.2 polyester 0.2 mesh:NO];
panty.size = smallSize;
panty.smell = [MSSmell lightCheeseSmell];
panty.stainOfCrotch = vaginalDischargeWithBrown;
[self.view addSubview:panty];




461 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:43:29.78 ]
viewかよ!!

462 名前: 【大吉】 【569円】 mailto:sage [2012/01/01(日) 06:27:36.32 ]
!

463 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 11:10:11.78 ]
>>461
あああ悔しー
CもObjective-Cも読めないー
面白さを理解したいー
こんな風にツッコミたいー

464 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 15:12:25.87 ]
>>460
こういう例とかセンスで本とかチュートリアル出してくれたら
習得が早いんじゃないかと真剣に思った。



465 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 16:33:34.64 ]
キモイ

466 名前:デフォルトの名無しさん [2012/01/01(日) 22:46:34.28 ]
一般論として、(1)よりもゾーンを使う(2)のほうが動作は速い?
速度が速くなるのは、インスタンスのメンバ変数を頻繁に呼び出す場合?

(1)receivedData = [[NSMutableData alloc] init];
 commentArray = [[NSMutableArray alloc] init];
(2)receivedData = [[NSMutableData allocWithZone:[self zone]] init];
 commentArray = [[NSMutableArray allocWithZone:[self zone]] init];

467 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 00:14:14.29 ]
>>466
ゾーンなんて使ったことないし、普通は使う必要ないと思ってる。

468 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 01:25:19.55 ]
NSCreateZone()使ってゾーンを確保してページングが起こっても関連があるもの全部がオンメモリになるようにインスタンスを的確に確保すれば速くなるかもね

469 名前:466 mailto:sage [2012/01/02(月) 05:16:50.75 ]
>>467-468
なるほど。なんとなく感じが分かった。ありがと。

470 名前:デフォルトの名無しさん [2012/01/03(火) 04:41:25.22 ]
NSRegularExpressionOptionsに
NSRegularExpressionCaseInsensitive, NSRegularExpressionDotMatchesLineSeparators
の両方を設定するは、どうやったらできる?

 NSRegularExpressionOptions options = NSRegularExpressionCaseInsensitive;
 NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:regexString options:options error:&error];




471 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 06:09:54.00 ]
論理和

472 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 11:50:46.23 ]
まあ、いまなら普通に足してもいいけど

473 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 12:25:43.40 ]
>>470
NSRegularExpressionOptions options = NSRegularExpressionCaseInsensitive | NSRegularExpressionDotMatchesLineSeparators;

>>471
論理和って普通 || を指すのでは? wikipedia によれば | は「ビット単位OR」らしい。

>>472
それは嫌。

474 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 15:30:42.98 ]
>>473
ORは論理和。ビット幅など関係ない。普通は|を意味するが||も含むと思う。
ただ条件式での優先度が違うでしょ。

>typedef NSUInteger NSMatchingOptions;
まあ足してもいいな。


475 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 15:51:11.65 ]
>>474
|| にはビット幅は関係ないけど、| には関係あるよ。

で、この手の演算には + や - ではなく、ちゃんと | や & を使うべき。
A | B で A と B の同じビットが立ってたら + だと違う結果になるから。

476 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 16:05:11.67 ]
>>475
>>473
>論理和って普通 || を指すのでは?
に関しての見解も聞かせてくれよ。

477 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 16:35:28.82 ]
>>474
>>typedef NSUInteger NSMatchingOptions;
>まあ足してもいいな。
今なら普通に足してもいいってのはちゃんとオプションの今の値を見て書いたんだよ。
型は関係ない
そのうち普通に足すとダメになるかもだし

478 名前:470 mailto:sage [2012/01/03(火) 16:59:34.26 ]
>471-477
ありがとう。



479 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 03:26:05.31 ]
UIlabelのpositionの取得方法ってありますか?

480 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 07:27:16.65 ]
>>479
positionってframeとかboundsの事か?
プロパティで(もちろんメッセージ送っても)取れるけどスレが微妙に違うな。




481 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 09:00:23.18 ]
>>479
Cocoaスレでも、同じこと聞いてたひとかえ?

こっち行ってみな。
[SDK]iPhoneアプリ開発初心者質問箱20[touch][iPad]
anago.2ch.net/test/read.cgi/mac/1321865528/

482 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 12:50:28.01 ]
>>480,481
レスありがとうございます。
移動してみます。



483 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 05:38:28.22 ]
この言語仕様が汚いから変えて欲しいな
シンプルにたのむぜ


484 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 06:13:35.78 ]
字面は汚いと思う

485 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 14:01:56.09 ]
了解で〜す

486 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:57:19.00 ]
>>483
むしろ、純粋にCをOOP化してる言語な気がするけどなぁ

487 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:25:49.20 ]
C++と比較すればなんて綺麗な言語仕様でしょう

488 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:26:57.01 ]
うむ

489 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:31:36.94 ]
第1034019283次OOP宗教戦争勃発か…

490 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:48:55.47 ]
 いい加減、SmalltalkにCをインラインに書く仕様がした方といいと思うけどな。
XCode4.0以降、実装は実質そうなっているぽいが?




491 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:52:24.24 ]
たとえば、今のObjCのどんなとこがいやなの?

492 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:06:08.31 ]
(ほとんどの言語がそうだけど)複数の返値を認めてほしいなあとか、思った。

493 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:13:19.27 ]
面倒がらずに構造体
エラーとか、別の意味のものを複数ならポインタで十分では

494 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:18:18.31 ]
メソッドに複数の戻り値を指定できると便利かもしれんけど、
もし仮にそういう仕様を実現する場合、戻り値の受け記述は
=だけでは表現できなくなっちゃうね

そう言う意味では、構造体を戻り値にした方が確かにしっくり来る

495 名前:493 mailto:sage [2012/01/06(金) 01:25:07.91 ]
luaなんかはこんな感じで=だけで複数戻り値できるけどね

x, y = func();

function func()
return 1, 2;
end

496 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:27:11.79 ]
>>495
なんということだ、その手があったか
便利すぎる。。
ところでluaって言語初めて聞いた。。

497 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:30:17.14 ]
PHPみたいに、list($a,$b,$c)=func(); じゃ駄目?
aString, bString, cString = [self getTripleStringWithIntA:aInt, bInt:bInt cInt:cInt];
とか出来ると凄く記述が楽になるんだけど。

498 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:34:31.03 ]
複数戻り値をもつ言語って結構あるんだな
逆に、カンマ区切りで複数戻り値表記ができる場合の
弊害って何かあんのかね…。

499 名前:493 mailto:sage [2012/01/06(金) 01:40:03.49 ]
>>497
そういう場合は大抵abcに関係があるだろうから、
構造体や辞書で表してもスッキリする気がする。

意味がバラバラなら、今度は順番を気にする必要が出てくる。
これは戻り値だけじゃなくて引数にも言えることだけど、
Objective-cはラベルが付いてるから。

だから、できることがそんなにメリットになるのかな。
できたらそれはそれで、使うだろうけど。

500 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 01:43:57.01 ]
>>499
確かにObjective-Cのメソッドメッセージの表現は、
各引数の意味とメソッド名をかねられる、まれにみる秀逸表現なのに、
複数戻り値にすることによって、結局、
「あれ?2番目の戻り値ってなんだっけ?」
的なことになっちゃうな



501 名前:デフォルトの名無しさん [2012/01/06(金) 02:00:48.52 ]
[self age];

502 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:14:04.07 ]
言語仕様はともかく字面は高度に汚いと思う。

503 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:15:06.27 ]
>>502
どの辺が?

504 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:15:30.59 ]
Scheme で多値は割と便利だけど、Obj-Cで語るのはC言語に多値が導入されてからにしてくれ。

505 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:16:04.40 ]
>>504
たすかに
Obj-CはCのスーパーセットだからね

506 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:19:55.25 ]
Cでできる記述は、全てObjective-Cコード上でも使える
これが強みじゃない?
Cがわかってる人には、逆に入りやすい言語だと思うのよObj-C

507 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:22:57.00 ]
唐突に何今更なことを

508 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:24:42.53 ]
メソッドメッセージコールと関数コールが共存してるソース見るとObj-Cらしさを感じる

オブジェクトに対する操作とそれ以外の操作の表現が明確に違うのは、慣れるとわかりやすい

509 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:26:01.37 ]
>>503
特に嫌いなのはインデントだな
ずーっと右端の方で固まって、左側がすっかすかになるのがヤダ。


510 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 02:28:01.58 ]
>>509
それ、Obj-Cに限った話か?



511 名前:506 mailto:sage [2012/01/06(金) 02:32:05.66 ]
>>507
す、すまぬ。。

512 名前:デフォルトの名無しさん [2012/01/06(金) 02:57:08.15 ]
obj-cの独特な表現を最初見た時は何じゃこれって思ったけど、
慣れてくると、むしろ癖になる不思議

513 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 07:46:28.70 ]
Obj-CよりC#のがよっぽどいい

514 名前:512 mailto:sage [2012/01/06(金) 08:10:21.73 ]
つまり、Java記法がよいと

515 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 08:43:39.15 ]
間をとってRuby最強!

516 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 10:59:45.74 ]
>>513
DelphiやVisual Basic のような簡単さと

C++の良いところ取りだからね。

これはいいと思うよ。

517 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 11:33:41.62 ]
俺もC#はけっこう好きだな。
お手軽感と強力さが両方ある。

518 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:19:46.54 ]
C#は言語そのものよりライブラリが強力すぎる
あれならバカでもプログラミングできる

519 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:23:23.02 ]
Cocoaの事か・・・

520 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 13:56:28.55 ]
.NETの話を持ち出すとCocoaのほうが優れてる!と暴れる奴がいるので禁止



521 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 22:28:08.67 ]
アニメーション機能はCocoaの勝ちだな。

522 名前:512 mailto:sage [2012/01/06(金) 22:38:21.13 ]
Core Animationも魅力的だけど、Core Audioも使いこなしてみたい

523 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 23:36:39.85 ]
CoreAudioは悪夢だわ

524 名前:512 mailto:sage [2012/01/06(金) 23:47:14.34 ]
>>523
どゆこと??

525 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 01:42:21.02 ]
>>512
Objective-Cの記法は、独特だけどいいよね

クラスメソッドは先頭に+、インスタンスメソッドは先頭に-をつける
というところも、staticだの何だのつけるよりわかりやすい

// Class method
+ (void)classMethod:(id)arg {
// operation code here ...
}

// Instance method
- (id)method:(NSObject*)arg1 with:(int)args2 {
// operation code here ...
return obj;
}

引数ありメソッドの記法には、慣れるまでは、わかりにくく思えるが、
慣れると、引数の意味がメソッドメッセージ名に含まれてるので、
驚くほどわかりやすい

526 名前:デフォルトの名無しさん [2012/01/07(土) 01:48:49.44 ]
>>525
メソッド呼び出しとかだと

Obj obj = [Obj alloc];
[obj initWithString:@"Hello"];

とかね。
正直、最初見たときは、ものすごい違和感を感じた

Smalltalkやってる人にとってはそうでもないのかもしれないけど。

527 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 02:28:06.02 ]
>>526
init系methodの返り値捨てたらダメだろ
Objのroot classがNS系でない独自仕様ならばその限りではないけど

528 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 02:37:37.39 ]
>>527
NS系なら、こんな感じで入れ子にするよね

※int型変数aの値を出力するとき

NSString *str = [[String alloc] initWithFormat: @"a = %d, a"];
NSLog(str);

それか、+stringWithFormat:使って

NSLog([NSString stringWithFormat: @"a = %d, a"]);

か?w

529 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 02:41:53.46 ]
>>527
あれ?
NSObjectのサブクラスのinit系methodは、

[obj initWithString: @"hoge"];

で、objが参照するオブジェクトを初期化してくれないんだっけ?

530 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 03:29:16.27 ]
してくれる。527は勘違いしてる



531 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 03:52:52.55 ]
obj = [obj initWithString: @"hoge"];

532 名前:531 mailto:sage [2012/01/07(土) 03:56:36.90 ]
>>531と書いてみたけど、やっぱダメだな。

533 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 07:18:54.88 ]
initが失敗してnilを返したときにどうしようも無くなるな。

534 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 09:32:48.32 ]
謹製のクラスクラスタがallocで返すのはファクトリオブジェクトなので使えません。

id obj = [NSString alloc]; // ファクトリオブジェクト
NSLog(@"%@(%p)", NSStringFromClass([obj class]), obj);
obj = [obj initWithString:@"Hello"]; // 文字列を持てる通常のインスタンス
NSLog(@"%@(%p)", NSStringFromClass([obj class]), obj);


535 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:03:34.80 ]
で?

536 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:09:04.77 ]
説明が足りないな

allocで返されたファクトリオブジェクトは -initXXX 内で
- (id)initXXX
{
id obj = [[Siblingclass alloc] initXXX.];
self = [super init];[self release]; // ファクトリオブジェクトがシングルトンなら不要
return obj;
}
のように自分の親類クラスを生成初期化して返します。
つまり、+allocが返すインスタンスと、-initXXXの返すインスタンスは別物です。

537 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:31:24.35 ]
で?

538 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:54:56.19 ]
え? ここまで書いても分からないの?

539 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 13:10:18.50 ]
こんなのわかってない奴いんのかよって話
ドヤ顔で書くなよ

540 名前:デフォルトの名無しさん [2012/01/07(土) 13:12:26.99 ]
>>536
そうなの?init(初期化)と言ってるくせにまた内部で+allocしてんの?
んな馬鹿な。。
だったら何のために+allocメソッドがあるの?
initXXXが-initXXXである必要は?
ほんとにそうなら、+allocなんか要らなくて、それこそ、+initXXXで
あってもいい気がするんだが



541 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 13:45:22.05 ]
>539-540
何をどう返せばいいか分からないw

542 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 14:37:35.68 ]
allocationとinitializationの違いがわからない人がいるらしい

543 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 15:34:21.04 ]
馬鹿を馬鹿と見抜けない人には(Objective-Cを使うのは)難しい

544 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:19:15.37 ]
UILabelにカスタムプロパティを追加する方法はUILabelのサブクラスを作るしかないのでしょうか?



545 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:24:52.92 ]
何を返せばいいかわかんないから個別に答えるか

>>539
>524からの流れを読もうね?
>529,530のような人がいるから書いてるんだよ

>>540
その疑問は確かにそうなのだが、
外部の使う人から見た時どう見えるかとか、
コーディングのバランスの問題とか、
クラスクラスタのルートクラスにファクトリ書くのはどうなの?とか、
The Objective-C Programming Languageでallocとinitはセットで使うように規定されてるとか、
等々の大人の事情だと思ってください


546 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:25:12.38 ]
>>544
>>481

547 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:31:19.95 ]
>>544

@interface UILabel(Hoge)
@property (copy) NSString *extendedText;
@end

@implementation UILabel(Hoge)
@synthesize extendedText;
@end
で出来なかったっけ?

548 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:39:13.26 ]
>>547
ありがとうございます。
試してみます。
次は初心者板に移動します。

549 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 16:57:42.58 ]
>>547が使ってんのは「カテゴリ」だからそれ調べろ

550 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:56:11.97 ]
>>536のように、まるでうそがほんとうのことのように書いてある
恐ろしいスレだ



551 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:09:21.38 ]
>>550
クラスクラスタの話だよ
分かってる?

552 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:19:07.19 ]
この話の発端は>>526, >>527, >>529だと思うけど、その内容と
>>536は、同じ話を対象にしてるのだろうか。。

553 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:23:48.04 ]
どうあっても俺は間違ってないって言いたいのなら、もうそれでいいよ

554 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:32:49.06 ]
>>533,534等、実装次第で不都合が出てくるから分けるなって言いたいだけだろ。
id array = [NSArray alloc];
[array init];
[array count];
こんなことやっても動かんぞ。

555 名前:デフォルトの名無しさん [2012/01/08(日) 12:37:48.31 ]
>>491
カスケードが使えない

556 名前:デフォルトの名無しさん [2012/01/08(日) 12:45:01.55 ]
>>518
そのうちclangあたりが.netバックエンドに対応すんじゃね。
.netのスクリプティングランタイムなら
Objective-Cとも相性いいだろうし

557 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 12:01:15.44 ]
>>554
これ、実装的にまるっきり別物になってないか?
id array = [[NSArray alloc] init];
はinitの戻り値をarrayで受けてるんだから、
id obj = [NSArray alloc];
NSLog(@"%@(%p)", NSStringFromClass([obj class]), obj);
id array = [obj init];
NSLog(@"%@(%p)", NSStringFromClass([array class]), array);
NSLog(@"%ld: ", [array count]);
で、普通に動くだろ。


558 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 12:56:24.51 ]
>>557
どうも>>554によると、
[obj init];
単独と、戻り値を受けずにobjを使うことはできないんだと。。

559 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 13:05:18.26 ]
>>557
>>526,527からの流れを見ろよ
initの戻り値を捨てるなって話なんだからさ
んなことは解ってるし、誰に向けて書いたレスかちょっとは考えてくれよ

>>558
お前も曲解すんな
>>544にそんなこと書いてないだろ

560 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 13:06:28.31 ]
>>559
>>544には書いてネェよw>>554なw



561 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 13:28:02.69 ]
>>554
>こんなことやっても動かんぞ。
だけじゃ、戻り値受けなしでは使えないと言ってるのと同義だろう。。

562 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 13:43:24.56 ]
>>561
>>533,534にも言及してるし、全然同義じゃないだろ。
流れも読めって。

563 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:29:31.69 ]
>>562
いや、そう読ませたいなら>>434で完璧に終わってるだろ、
allocの戻り値とそれを因数にしたinitの戻り値は違うとこれ以上無い書き方がしてあって
>>554書いていることは混乱が増すだけ。



564 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:30:15.81 ]
すまん、
>>434>>534の間違い。


565 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:59:04.35 ]
>>563
終わってるなら、それ以降の流れにはならないんじゃね?
それ以降も続くなら別の手法で理解の助けとするでしょ。
>>534ではエラーにはならないからな。

initの戻り値を捨てた結果どうなるかっていう、実際のテストケースで
もし混乱するなら、どっちにしろ>>534が理解できてない。

566 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:03:03.78 ]
>>565
>実装次第で不都合が出てくるから分けるなって言いたいだけだろ。
って書いたんだろ?
わけても全然問題なくね?っていわれてファビよるなよ


567 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:09:49.91 ]
因数

568 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:12:36.40 ]
>>566
問題があるのに、
問題無いのがあるからOKっていうのはダメだろ。
ファビョッてるとか無駄に煽るなよ。

569 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:26:45.63 ]
(´・ω・`)

570 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:29:57.75 ]
(;_;)



571 名前:デフォルトの名無しさん [2012/01/10(火) 15:36:37.86 ]
この3つの違いがよくわかりません。
というか、アクセサメソッドをどうして設定する必要があるかよくわからないです。。。
よかったら教えてください

@interface BackView : UIView {
//NSString *strHTML;
}
@property (strong, nonatomic) NSString *strHTML;

---------------------------------------------------------

@interface BackWebView : UIView {
NSString *strHTML;
}
//@property (strong, nonatomic) NSString *strHTML;

---------------------------------------------------------

@interface BackWebView : UIView {
NSString *strHTML;
}
@property (strong, nonatomic) NSString *strHTML;

572 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 17:56:13.27 ]
番号振っとけよ
上と下は@synthesizeで変数名変えなきゃ等価
中は変数は確保するけどアクセッサは作らない。

573 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 18:51:08.97 ]
変数の宣言についておしえてほしいんですが、
例えば、このスレにあった
MSPanty *panty = うんぬん;

MSPanty* panty = うんうん;
とではなにが 違うんでしょう?
アスタリスクは変数名にくっつけて書くものと思っていたのがobjective-cでは離れているコードをたまに見かけます
単に方言のようなものでコンパイル時には同じあつかいなのでしょうか?



574 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 19:16:09.07 ]
同じ

575 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 19:25:57.37 ]
>>574
ありがとうございます
すっきりしました

576 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 20:14:36.02 ]
C従来のポインタ表現なら、上だよね。。
だから、おれはキャストのときも(MSPanty *)の様にして書く

577 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 20:48:47.93 ]
俺もそう書くけど、型なんだからくっつける言われたことあるな

578 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 20:59:58.46 ]
いい加減ポインタなんてものは捨てるべきだと思う


579 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 21:12:21.39 ]
だって参照より早いんだもん

580 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 21:14:39.88 ]
型 T に対して、
T*p;
T *p;
T* p;
T * p;
のどれも同じ意味。(スペースは無視される。)

C 言語では伝統的に T *p; だけど、C++ では T* p; と書く人が多いね。
自分は T *p; と書く。理由は、T* p, q; だと q も(ポインタじゃないのに)ポインタに見えるから。



581 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 21:17:06.26 ]
うむ、やっぱ T *p;だよ
Objective-CはCのスーパーセットなんだからCの書き方に準拠したいし

582 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 21:50:02.93 ]
好みの問題だし、どっちでもいいじゃん。

583 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 21:51:39.08 ]
ほんとにどうでもいいよ。
どこでインデントするかと同じ好みの問題。
好きにしろ。

584 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 21:55:17.96 ]
で、MSPantyってなんやねん

585 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 22:10:22.17 ]
好みと言うよりはコーディング規約のような
もしかしたらバグも防げるかもしれないし

586 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 22:18:47.18 ]
何のバグだよバカ

587 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 22:21:53.56 ]
T* p; 派の人が怒ってます。。

588 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 22:29:35.21 ]
constで修飾すること考えると
T* p; --> T* const p;
の方が自然だよ。*pと書く人は
T *p; --> T *const p;
には抵抗あるんじゃない?

589 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 22:42:58.95 ]
T *const p;
って普通に書くよ

590 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:33:09.04 ]
てか、それなら
const T *p;
って書かない?普通。。



591 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:39:01.76 ]
T*を一種の型と見るならT* pが自然だろ
だから
const T* p

592 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:40:45.08 ]
書かない

593 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:41:18.99 ]
T *cont p;

const T *p;
は別物
const T *const p;
もあるよ。
調べてみてね

594 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:41:52.09 ]
オブジェクト変数は、実質構造体なんだから、T *p;のほうがしっくり来たから
おれはT *p;でかいてるなぁ
まあ、どっちも合ってるからどっち使ったっていいんだけど

595 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:46:22.28 ]
あ、構造体へのポインタか

596 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:52:56.71 ]
お前らObjective-Cの話をしろよ
細かいこと気にしてるとハゲるぞ

597 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:54:40.04 ]
もう手遅れだからいいんだよ

598 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:55:20.58 ]
まあ、アスタめんどかったら、id型使えばよいのだ

599 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 23:56:36.92 ]
32bitOSで128bitの構造体Tへのポインタを宣言する場合、

T* p ←32bitのポインタ型だと分かりやすい
T *p ←128bitの構造体と思いきや32bitのポインタ型
T * p ←優柔不断

600 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:02:40.25 ]
???
変数名の直前にアスタが来るのがポインタの表記
だから、
>T *p ←128bitの構造体と思いきや32bitのポインタ型
などとはみじんも思わない

構造体のポインタだろうなとすぐわかるけど。。。



601 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:09:00.94 ]
まあ、普通アスタを変数名の直前に書く
その理由は>>580

602 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:11:43.66 ]
俺も>>580の最後には同意
Objective-C勉強したてのころそれでハマった

603 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:11:49.41 ]
>>596
Objective-CはCの完全上位互換なんだから、Cの話はObjective-Cの話でもある

604 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:20:57.50 ]
もうObj-Cなんか捨ててC#にしようぜ
C#はISO標準化されてるんだから、MacOS XとiOSのネイティブコードにコンパイルできる公式コンパイラ作ってくれよ
IDEは我慢してやるからさ
@とか-とか[]とかキモすぎなんだよ

605 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:22:55.46 ]
Java的な記法も俺は好きだよ
ただ、それをここで言うなよ。。

606 名前:571 [2012/01/11(水) 00:27:58.73 ]
>>572
ありがとうございます。おかげで理解できました

607 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 00:55:46.90 ]
>>604
mono touchはどうしてるんだろう?Objective-Cにコンバートしてるんだろうか?

608 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:01:34.01 ]
よろしい、ならば間をとってObjective-Dだ

609 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:03:12.54 ]
monoはJavaと同じインタプリタランタイムだから、iOS上で動く
JITさえ作っちゃえば、あとは中間言語に置き換えるコンパイラは何だっていいはず

610 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:12:38.43 ]
mono touchネイティブにコンパイルしてるはず



611 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:12:51.51 ]
は が抜けた

612 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:14:10.08 ]
>>610
うん、JITがしてるよ

613 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:18:25.13 ]
それmono touchは違うだろ

614 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:22:32.25 ]
>>613

どうなっとるの?
こんな感じ??

1. C#で中間コード(バイトコード生成)
 →これにより、マルチプラットフォームを実現

2. iOS、Android OS用にコンパイラが用意されてて、上記のバイトコードを
 ターゲットのプラットフォーム用のコンパイラでバイトコードにコンパイル

3. ネイティブコード(=アプリ)をAppStore, android marketで配布

615 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:23:26.11 ]
>>614
修正w

1. C#で中間コード(バイトコード)生成
 →これにより、マルチプラットフォームを実現

2. iOS、Android OS用にコンパイラが用意されてて、上記のバイトコードを
 ターゲットのプラットフォーム用のコンパイラでネイティブコードにコンパイル

3. ネイティブコード(=アプリ)をAppStore, android marketで配布

616 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:25:17.80 ]
>>614
ttp://www.atmarkit.co.jp/news/200901/29/mono.html

617 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:29:40.67 ]
ほう、JITはないけどMono VMは一緒にセットになってるんだね

618 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:34:07.03 ]
MonoがじわじわとJavaの領域を乗っ取り始めてるんだな

619 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 01:51:42.68 ]
Javaに比べるとC#ははるかに良い言語だから使えるならMonoを使うわな

620 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 04:01:44.10 ]
>>617
>ほう、JITはないけどMono VMは一緒にセットになってるんだね

VM と言うか、ランタイムがつくと思った方がいいかも。




621 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 11:11:18.54 ]
Objective-CでCGI書いた人おる?

622 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 11:45:41.31 ]
CGIとはなにか、その動作原理は?ってことが分かってたらObjCだろうと何でもいいよ
CGIを作るに当たって便利なパッケージがあるかどうかが聞きたいのなら
ストレートにそれを聞けばいい

623 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:23:25.45 ]
いやそんなスカしたこと言われても…
便利なframeworkがあったらなんとかなるもんでもないでしょあれ?
Apple製のObjCランタイムがないと動かないんじゃないの?
そういう細かい話があるから実際CGI書いて動かした人を尋ねたほうが早いんだよ

624 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:26:28.96 ]
GCIなんて標準入出力さえ扱えればどんな言語でも書けるじゃん。

625 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:26:52.60 ]
typo

626 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:30:27.99 ]
結局何が知りたいんだよ
いるかいないかじゃ、いるに決まってるだろ
「Objective-C CGI」でググれカス

627 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:40:02.10 ]
Objective-CでWindowsアプリ書いた人おる?


628 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:41:52.91 ]
>>627
GNUstep

ja.wikipedia.org/wiki/GNUstep
www.gnustep.org/

629 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:41:59.33 ]
Windowsアプリとはなにか、その動作原理は?ってことが分かってたらObjCだろうと何でもいいよ
Windowsアプリを作るに当たって便利なパッケージがあるかどうかが聞きたいのなら
ストレートにそれを聞けばいい

630 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:42:29.95 ]
(´・ω・`)



631 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 12:49:37.56 ]
(´・ω・`)とはなにか、その動作原理は?ってことが分かってたらObjCだろうと何でもいいよ
(´・ω・`)を作るに当たって便利なパッケージがあるかどうかが聞きたいのなら
ストレートにそれを聞けばいい


632 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 13:07:29.18 ]
iPhoneの修理って、現状は本体交換しかないってほんと?
全体に影響のない故障でも一律本体交換なの?

633 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 13:22:32.28 ]
>>626
いや、だから素直に居たら居るて答えてくれればいいだけで
居ないんならヌルーでいいよ
聞かれている言葉に素直に耳を傾けようよ君は

634 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 13:23:47.98 ]
>>633
少しプロジェクトが難航しててイライラしててな
すまんかった

635 名前:632 mailto:sage [2012/01/11(水) 13:33:19.13 ]
おう、誤爆してたわ、スマソ

636 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 13:34:43.30 ]
つーか>>623だけ全然わかってないような・・・

637 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 13:52:11.15 ]
ランタイムは今のところAppleのとGnuStepかな?
両方にNSProcessInfoがあるからそれ使っとけ

638 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:13:27.18 ]
それ使ってなにすんの?

639 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:23:12.21 ]
それは教えられない
CGI作るには有用だけどね

640 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:31:06.54 ]
>>634
こちらこそ忙しい時に
くだらない質問に付きあわせてしまって申し訳なかった(´・ω・`)がんばってくだちい



641 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:32:42.75 ]
frothkitとかCappuccinoとかCocotronとか気になる単語はめっちゃあるんだよ
でも日本語ソースは全くない
もう日本人でも日本語情報はあてにしてないのが現状だろ
ググッても意味のない時代がきてるよ

642 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:35:37.98 ]
キチガイ多め

643 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:40:44.43 ]
欲しいものをちゃんと説明した上で欲しいといえない→正常
欲しいものは、はっきり欲しいと言えという人→キチガイ

644 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 20:48:16.63 ]
どーでもいいことですぐピキる
それが2chくをりてぃー

645 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 20:56:49.31 ]
どうでもいいかどうかは俺が決める

646 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 21:13:37.87 ]
いや、俺が決める

647 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 21:17:52.10 ]
どーでもいい
[おまえら release];

648 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:02:25.44 ]
Objective-C CGI 基本編

#import <Foundation/Foundation.h>
#include <stdio.h>

int PrintString(NSString *format, ...)
{
int result = 0;
va_list ap;
va_start(ap, format);
NSString *str = [[NSString alloc] initWithFormat:format arguments:ap];
va_end(ap);
result = printf("%s", [str UTF8String]);
[str release];
return result;
}
int main( int argc, char *argv[])
{
id pool = [[NSAutoreleasePool alloc] init];
id env = [[NSProcessInfo processInfo] environment];
for(NSString *key in env) {
PrintString(@"%@ -> %@<BR>¥n", key, [env objectForKey:key]);
}

[pool release];
return 0;
}


あとは自分で頑張れ

649 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:07:16.73 ]
どったの?急に

650 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:16:19.37 ]
ヘッダは?



651 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:17:32.75 ]
ヘッダなんかいらねぇよ、ハゲ

652 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:20:55.72 ]
@implementation ChoiHoge

// ...

@end

@interface ChoiHoge : KusoHoge
{

}

// ...

@end

がいないお。。。

653 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:26:35.54 ]
>>651
"Content-Type: text/html\n\n"
くらいは最初に必要なんじゃないの?


654 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 06:16:41.01 ]


655 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 16:17:32.37 ]
メソッド一つでカテゴリ分けるのってやめたほうがいいかな
150行くらいだけど

656 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 16:19:00.56 ]
見やすくなるんならいいんじゃね?

657 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 16:21:28.02 ]
>>656
そうだよね。このままで行くことにする
サンクス

658 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 02:06:37.52 ]
iPhoneのUItextViewのカーソル位置ってどうやって取得すんの?
selectedrangeは指定用っぽいんだけど

659 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 02:21:21.07 ]
ん?selectedRangeから取得じゃだめなの??

以下抜粋

selectedRange
The current selection range of the receiver.

@property(nonatomic) NSRange selectedRange


660 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 02:38:35.59 ]
UITextViewのオブジェクトをaTextViewとすると、

aTextView.selectedRange.location

で取れないの?。。。。。



661 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 02:41:34.96 ]
分かってないだけでしょ
readonlyなプロパティはあってもwriteonlyなプロパティなんかないよ

662 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 11:52:06.04 ]
>>661
いくらでもあるが、
例えばAutioUnitのkAudioUnitProperty_MakeConnection


663 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 13:38:59.59 ]
ちょっと何言ってるかわかりませんね

664 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 19:35:32.95 ]
>662さんはObjective-Cに規定されてるpropertyと一般的なpropertyの区別がつかないんじゃないの?

665 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 20:16:19.61 ]
読みにきたら例外投げるとか
どれだけ意味があるのかわからんけど

666 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 07:14:29.27 ]
stream関連は、writeonlyがある様に思えるが。

667 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 08:31:24.82 ]
@property 宣言しなくても、setXxx: メソッドがあれば obj.xxx = ... って書けるよ。

668 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 11:20:12.21 ]
というかpublic メンバはふつーに->で参照できるっしょ

669 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 11:36:19.67 ]
>>668
隠そうと思えばいくらでも隠せるから

670 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 11:47:43.23 ]
だから何なの?w



671 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 21:21:53.26 ]
iPhoneのアプリIBで組んでるとステータスバー押してもスクロールビューとかテーブルビューとかがscrolltopしないの俺だけ?

672 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 21:43:40.58 ]
スレチ

673 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 21:52:15.98 ]
>>672
iPhoneネイティブすれあったのね。サンクス

674 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:02:49.80 ]
iPhoneスレに書けないんでこっちに書くが、
タブ型のiPhoneアプリで、
UIVIewのアニメーションブロックでアニメーションをしているときに、
タブを切り替えると、即座にアニメーションが終了してしまう(animationDidStopが呼ばれる)
何か解決方法ない?

675 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:58:15.20 ]
>>674
死ねよ

676 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 18:00:38.43 ]
>>674
スレ違い。この板にも iOS プログラミングのスレあるよ。mac 板も復活したし。で、標準のタブコントローラ使ってるなら、タブ切り替えたらビューも切り替わるから、アニメーションが止まるのは仕様じゃないかな。

677 名前:!674 mailto:sage [2012/01/20(金) 00:26:00.23 ]
すれ違いちゃあそうかもしれんけど、少しくらいいいだろう
全然関係ない話じゃないんだから
>>975はもう来なくていいよ

678 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:37:49.80 ]
ダメだよ
つーかこいつiPhone板にもマルチしてるし

679 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 05:48:42.90 ]
カス野郎だな

680 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 08:30:09.19 ]
わかんないからってたたいちゃだめ



681 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:38:22.38 ]
俺はわかんないけどスレ違いのマルチ野郎は容赦なく叩くよ
やってること荒らしだしね、花王のコピペと同じ

682 名前:!omikuji !dama mailto:sage [2012/01/20(金) 19:24:57.99 ]
質問。たぶんCの話だと思うけど^ってなに?メッセージ構文の直前に付いてるのをよく見かけるんだが、bit ORだとしても意味がわからん。

683 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 19:35:53.80 ]
Blocks

684 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:24:28.13 ]
ARCについて質問です。
下のClassAのfunメソッドで__weakインスタンス変数oを初期化してますが
本来なら__weakのため初期化した瞬間にNSObjectは解放されますが
@propertyでstrongを記述してるので、インスタンス数oは__weakでなく__strongになるんでしょうか?


@interface A: NSObject {
  __weak id o_;
}
@property (strong, nonatomic) id o;
@end

@implementation A
@synthesize o = o_;

- (void)fun {
 o_ = [[NSObject alloc] init];
}



685 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:31:07.96 ]
>>684
ごめんなさい。この質問スルーでお願いします。。

686 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:45:51.24 ]
回答求む>>682


687 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:01:34.39 ]
>>683

688 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 02:21:55.94 ]
blocksっていうclang系の拡張。
所謂レキシカル・クロージャ。

689 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 18:59:11.66 ]
>>688
ありがとう色々調べられた。
しかし結局意味がわからん。

690 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:16:18.77 ]
諦めろ



691 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:58:01.38 ]
>>689
qsort(3)の第4引数に直接関数書けるようにした
みたいな感じ

692 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:02:19.44 ]
あとその直接書いた関数の中から、字面上で外側のスコープにあるものが見える事も重要。

693 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:20:46.32 ]
>>691
OSX 10.6以降では実際書けるし。
/usr/include/stdlib.h
void qsort_b(void*,size_t,size_t,int (^)(const void*,const void*));

694 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:38:34.24 ]
691が言ってるのはそれだろ

695 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 01:12:44.13 ]
Grand Central Dispatchでディスパッチキューに登録されたタスクを実行中の場合、
このタスクを途中で強制的に停止&削除するにはどうすればいいんでしょう??

696 名前:689 mailto:sage [2012/01/24(火) 04:35:03.46 ]
>>691
理解したぜ!ようはfunctionでスコープ前の変数はconstant化してキープするってか。

697 名前:689 mailto:sage [2012/01/24(火) 04:37:11.18 ]
>>693とか意味わかんね

698 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 04:37:53.47 ]
可愛そうに

699 名前:689 mailto:sage [2012/01/24(火) 04:42:11.49 ]
>>698
レス早すぎだろw

700 名前:689 mailto:sage [2012/01/24(火) 04:48:56.59 ]
なんで^が( )の中に入ってる?^{ aaa }か^( aaa ){ bbb }とかvoid (^aaa) (void) = ^{bbb}じゃないのん?



701 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 05:23:52.06 ]
変数名が省略されてるだけだろ。阿呆かお前

702 名前:689 mailto:sage [2012/01/24(火) 05:38:12.42 ]
>>701
理解した。ありがとう。

703 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 13:32:26.54 ]
C言語は書き方が変態。字面で見たまんますんなり頭にはいってこない。
関数ポインタとかブロックスの構文とか、読んだ後に頭で咀嚼しないといけない。
この書き方を考えた奴は頭が捻くれているとしか思えない。
その点、Lisp系の言語は読みやすくていいね。

704 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 13:36:23.14 ]
call-with-current-continuation とかそういうのですかそうですか

705 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 13:38:39.67 ]
>>703
ポーランド記法信者乙

706 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 14:05:08.52 ]
char* a[] = { "hhh", "CCC", "zzz", "QQQ" };
qsort_b(a, 4, sizeof(char*),
  ^(const void* x, const void* y) {
    return strcasecmp(*(char**)x, *(char**)y);
  });

(sort '("hhh" "CCC" "zzz" "QQQ")
    #'(lambda (x y)
      (string<= (string-downcase x)
            (string-downcase y))))


707 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:04:50.73 ]
来季はロシアっ娘達も参戦してくるし、ヨナや安藤も復帰してくる可能性があるから、
真央ちゃんにとっては、台乗りできる最後のチャンスかもしれないよ。

708 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:05:50.25 ]
スマヌ。ゴバクシタ

709 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 01:30:54.49 ]
>>706
型を省略できることが利点ってこと?

710 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 02:05:50.34 ]
大差ないじゃんって思って書いた。



711 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 15:27:21.00 ]
The WinHttpGetIEProxyConfigForCurrentUser function retrieves the Internet Explorer proxy configuration for the current user.

Syntax
BOOL WINAPI WinHttpGetIEProxyConfigForCurrentUser(
__inout WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *pProxyConfig
);

Parameters
pProxyConfig [in, out]

A pointer, on input, to a WINHTTP_CURRENT_USER_IE_PROXY_CONFIG structure. On output, the structure contains the Internet Explorer proxy settings for the current active network connection (for example, LAN, dial-up, or VPN connection).
Return value
Returns TRUE if successful, or FALSE otherwise. For extended error information, call GetLastError. Among the error codes returned are the following.

712 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:18:13.30 ]
>>711
は(´・Д・`)?

713 名前:デフォルトの名無しさん [2012/02/01(水) 18:21:41.92 ]
@interface MyUIButton : UIButton {
NSString *source;
}
@property(nonatomic, copy) NSString *source;
のように拡張して、button.source = @"hoge"; のように使おうとすると、

-[UIRoundedRectButton setSource:]: unrecognized selector sent to instance 0x8830ca0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIRoundedRectButton setSource:]:

とエラーが出た。どう対処したらよいか教えて。
UIButtonの拡張自体が良くないなら、その理由についても少しかみ砕いて教えてほしい。
Webでそのような記事を見かけたけど、うまく理解できなかった。

714 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:30:18.17 ]
サブクラスを作るんじゃなくカテゴリでUIButtonそのものを拡張すると
幸せになれるかもしれないね
試したわけじゃないけど

715 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:34:34.48 ]
>>713
buttonがMyUIButtonのインスタンスじゃない

716 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:38:32.06 ]
>>714
カテゴリで変数を追加しようとしたら、
lvars may not be placed in categoriesとエラーが出た。カテゴリに変数って追加できるもの?

717 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:45:00.19 ]
エラーしか読んでなかった

エラー内容:
buttonがMyUIButtonではなくUIRoundedRectButtonのインスタンスであったためsourceプロパティがなかった

原因:
buttonを生成するときにMyUIButtonを指定しなかった

また、UIRoundedRectButtonと同形状のボタンが必要な場合は
@interface MyUIButton : UIRoundedRectButton {
とする。

修正法:
IBで作っている場合は
sazameki.jp/translations/xcode4/IDEs/Conceptual/Xcode4TransitionGuide/InterfaceBuilder/InterfaceBuilder.html
の「Interface Builder オブジェクトにクラスを割り当てる」を参照
まずUIRoundedRectButtonを配置してそのクラスをMyUIButtonに変更する


718 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:47:48.86 ]
>>716
associatedObjectを使えば出来なくはない。

719 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:54:08.84 ]
>>713
そもそも何がしたいのさ?
たぶん、view をいじるんじゃなくて、controller でなんとかすべきだと思うよ。

720 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:59:21.06 ]
>>716
意外と簡単だった

- (NSString *)source
{
id result = objc_getAssociatedObject(self, @"source");
return [result copy];
}
- (void)setSource:(NSString *)string
{
objc_setAssociatedObject(self, @"source", string, OBJC_ASSOCIATION_COPY);
}



721 名前:713 mailto:sage [2012/02/01(水) 19:54:43.63 ]
レスしてくれた人、ありがとう。

>>717
>@interface MyUIButton : UIRoundedRectButton {
cannot find interface declaration for 'UIRoundedRectButton', superclass
と出るのだけど、なにかを@importすれば使えるようになる?

>>719
テーブルセルのなかでボタンを自動生成するようにしてたのだけど、追加情報が必要になって、
最初は、associatedObjectを使ってたのだけど、>>720のようにクラスタ内でやる方法が思いつかず、
外部からデータを埋め込んでいたら、キー管理が煩雑になったので、派生クラスを使おうと思い立った。

>>720
ありがとう。とても参考になった。
OBJC_ASSOCIATION_COPYした場合に、deallocでのreleaseは考える必要ある?

722 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 00:14:14.10 ]
>>721
親玉がdeallocされたら自動でreleaseされるので考える必要ないです
developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocAssociativeReferences.html#//apple_ref/doc/uid/TP30001163-CH24-SW3
Listing 6-1の下にちょろっと書いてる

723 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 01:56:16.03 ]
>>722
>Listing 6-1の下にちょろっと書いてる
ありがとう。OBJC_ASSOCIATION_RETAINは書いてるけど、OBJC_ASSOCIATION_COPYのほうは書いてないね。
まあ、RETAINで解放されるなら、COPYでも解放されるだろうけど。

724 名前:デフォルトの名無しさん [2012/02/02(木) 20:10:36.75 ]
何だこの糞言語は?
作ったやつバカだろ?[]が気持ち悪いんだよさっさと消えろ

725 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:32:16.06 ]
最初期に読んだオブジェクト指向の本がその人のだったかも。

726 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 01:44:54.48 ]
>>724
[おまえ release];

727 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 02:19:54.21 ]
てか、
[おまえ dealloc];
のほうがいいな。retainカウント考慮するまでもなく即刻消えていただいておk>>724

728 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 02:39:09.48 ]
>>724
>何だこの糞言語は?

obj-c は確かに色々酷いけど、[] 表記に文句言う程度の人に言われる筋合いはないと思うの。


729 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 02:41:57.02 ]
わざわざ書き込んだ>>724は、きらいといいつつ気になっちゃってるかわいいやつ
きらいきらいも好きのうち

730 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 02:45:59.88 ]
Brad Coxの話にでもなるかと思ったらみんな罵り合いの方が好きだった



731 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:35:50.55 ]
C#と違いCの上位互換であり
C++よりOOP純度が上でしかも易しい
触ったことないけどObjC最高!

732 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:38:20.69 ]
最後の一行で台無し

733 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 00:42:33.68 ]
俺はこの言語1番好き

734 名前:デフォルトの名無しさん [2012/02/05(日) 00:57:42.14 ]
エラーの出し方が糞
どこで引っかかってるのかエラー見るだけじゃわからんこと多すぎだろ
死んでいいと思う

735 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 02:19:00.66 ]
ガベージコレクションがついたらつかうかもしれない(もうついたの?)

736 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 04:07:19.38 ]
ついたよー
ただしOSXのみな

737 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 05:20:17.26 ]
Javaに慣れすぎなんじゃね?

738 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 05:40:22.72 ]
iPhoneにはガベコレないけどARCが出たからいいじゃん

739 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 06:56:11.86 ]
C#好きが嫉妬して吠えてるのか?

740 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 08:15:58.33 ]
嫉妬する理由が思い当たらんのだが



741 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:03:13.57 ]
じゃ、なんできらいだぁってガキみたくわざわざ書き込みにくるんだろうなぁ

742 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:07:53.72 ]
そういえば、C#スレでC#嫌いだってレス見たことないな・・・


743 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:47:30.54 ]
単純にObjective-CがC#より扱いにくいからでしょ
C#やJavaから入った奴からすれば発狂するレベルだと思うわ

744 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:49:29.72 ]
おれはOOPはJavaから入ったけど、Obj-Cはおもしろいなとは思ったけど
扱いにくいとは思わなかった

745 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 15:42:57.26 ]
OOPはC front(C++の初期ね)とsmalltalkからなせいかObje-CはsmalltalkとCのアイノコでちょっちキモイわ
っつっても感じたのはNextStepの頃なので今は慣れたけど


746 名前:デフォルトの名無しさん [2012/02/05(日) 16:43:17.31 ]
いやー普通にこの言語開発したやつが頭悪すぎなだけだとおもうわw
汎用性のない言語だし閉鎖的だし、便利にしてやろうとがんばったけど自己満足で終わって大不評みたいな?
Iphoneが終わったらこの言語もまた一部の偏狭的なマニアだけが使う言語になるだろ

747 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 16:47:10.69 ]
お前がそう思うんならそうなんだろ

748 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:24:44.76 ]
iPhoneのせいで>>746みたいなカスがよってきてウザいわー


749 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 17:31:08.70 ]
ObjC信者はObjCが最強だと思ってるんだから放っといてやれよ
その信念はC++信者より強固だからな
言うだけ無駄

750 名前:デフォルトの名無しさん [2012/02/05(日) 18:15:57.99 ]
スマートフォン自体がうざいんんだよ。





しょうもない、ガキ、糞共が。逝け



751 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:51:54.45 ]
>>746
はははっ、そうかそうか。

752 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:53:10.93 ]
>>749
あなたはC#ユーザーですね(^_^)

753 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:53:48.22 ]
>>746
汎用性があって開放的でみんなが便利だって言ってる言語ってなに?

754 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:59:44.13 ]
>>750
哀れだ。。

755 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:22:18.72 ]
気をつけろ、お前ら全員中二病に見えるぞ
言語で熱く語り出すのだけはやめておけよ、絶対だぞ、ぜったい語るなよ

756 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:22:57.40 ]
釣られすぎだろ

757 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:32:51.29 ]
まあAppleが採用していなければこの世から消えていた言語だからな

758 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:34:59.64 ]
MSがObj-C採用してたらそんなに叩かないくせに。。

759 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:40:43.02 ]
もっと文句が出てたと思うがw

760 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:43:10.42 ]
そのくらいC#大好きなんだねみんな。ちょっとびっくり



761 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:09:19.54 ]
Objective-C : NeXTとAppleの系統以外で採用されず
C# : 頼んでもいないのにオープンソースプロジェクトが立ち上げられUNIXやLINUXで動作する環境が整えられている

どちらが優れているかなんて言うまでもないだろ

762 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:38:14.85 ]
GNUstep も知らないのにレスするなよ

763 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:43:02.04 ]
GNUstepはNeXT系だろうが
馬鹿はお前だろ

764 名前:デフォルトの名無しさん [2012/02/05(日) 21:19:29.98 ]
まあ信者以外は糞だとe思ってるよwこの言語はw
今まで見た言語の中で一番糞
もちろんXcodeもなw
糞言語に糞エディタw

765 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:20:56.23 ]
>>761
そりゃ言語じゃなくて環境の話だろ。
Objectiv-Cという言語に限ればWindowsでもUnixでも利用可能だ。

766 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:21:14.69 ]
なんか伸びてると思ったらクズみてぇなレスつけてんじゃねぇよ、クズども

767 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:21:47.31 ]
>>764
どこら辺が糞だと思うの?
具体的に頼む。

768 名前:デフォルトの名無しさん [2012/02/05(日) 21:32:33.65 ]
誰がこんなマイナー言語をわざわざWinやlinuxでやるんだよw超少数派だろw
糞なところは散々既出
良いところは継ぎ接ぎ感はあるが比較的習得が容易な言語だというところ

769 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:46:57.92 ]
やはり具体的に言えないのか

770 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:57:23.76 ]
Blocksが素敵すぎると思ったが、ARCが実装されて
もはや無敵の言語なったんじゃね?これ。
デザパタを強要する仕組みも、慣れれば自然と構成を
考える習慣が身についてこれしかないと思えてくるしな。
CoreDataは、某MSのADOなんかよりずっと洗練されて
るし、CoreGraphicsのアニメーションの扱いやすさなん
かもうWindows環境になんか戻れないって感じだよな。



771 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:02:43.15 ]
長文書いてる奴は一言にまとめてくれないか?

772 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:14:38.13 ]
>>768みたいな奴にはObjective-Cも糞にしか見えないだろ。
可哀相だが俺にはどうすることもできない。

773 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:19:35.85 ]
馬鹿は二言以上の文章は理解不能らしい

774 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:35:12.91 ]
ObjCが前世紀に全然流行らなかったのは
ObjCのシンタックス覚えていくときオブジェクト思考を
ある程度前提とするのに一般人がオブジェクト指向を
イマイチわかっていなかったことと、実行速度も
遅かったことが原因だったわけだが
JAVAやRuby/Python等によってオブジェクト指向が
パンピーにも理解されてきて実行速度もかなり
改善されてきつつある。
つまりようやく時代がObjCに追いついてきたといえよう。
触ったことないけどObjC最高!

775 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 02:00:55.09 ]
>>763
Win は NeXT系 ですねわかります。






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

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

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