- 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
- 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
|

|