[表示 : 全て 最新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

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
す、すまぬ。。






[ 続きを読む ] / [ 携帯版 ]

前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