1 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 12:18:31 ] Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より) 前スレ pc11.2ch.net/test/read.cgi/tech/1106983092/ 前々スレ pc5.2ch.net/tech/kako/990/990574267.html
552 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 10:47:24 ] prm1という変数があってユーザーが入力した値を入れ、メッセージに表示する為の文字列を作りたいと思います。 例:"prm1は不正な入力です。" sprintfではなくreglibで処理を行なうにはどのようにしたら良いでしょうか。 具体的なコードをここに書いてくださると助かります。
553 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 10:57:59 ] >>552 のこうげき 「かいしんのいちげき!」 >>551 の無能さが露呈した。
554 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:06:05 ] hoge.strings "hoge"="%sは不正な入力です。"; hoge.m ... id hoge = NSLocalizedStringFromTable(@"hoge", @"hoge", @"hoge"); hoge = [NSString stringWithFormat:hoge, prm1]; fprintf(strerr, "%s¥n", [hoge UTF8String]); ... てか、文字列操作の細かい部分をchar *でするかどうかの話でしょ? なんで話変わってんの?
555 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:06:47 ] >>549 >これじゃプロジェクトが座礁してデスマーチにもなる罠。 いやいや多分>>548 はプログラマですらないからwww iPhoneブームで注目度があがるの結構だけど、知ったかぶる廚も多くなるから嫌だね。
556 名前:522 mailto:sage [2008/07/20(日) 11:07:29 ] >>554 は俺ね。 また勘違いされる所だ(w
557 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:08:37 ] 上でlex&yaccの話が出てたと思うけど、文字列操作は字句解析と構文解析のふたつで出来てることが多い。 lexは字句解析のことで、文字列を1文字づつ読み込んでトークン、つまり単語に切り分ける仕事をする。 yaccは構文解析のことで、得られたトークンの意味を推測して構文木を作成する。 で、得られた構文木を元にして文字列の意味を翻訳する。 正規表現は、 テキストの文字列に対してパターンマッチを行う強力な道具です。 TEXTファイル中からある単語を置換/検索するのもパターンマッチです。 例えばyaccを使わないで簡易にキーワード(文法上重要なトークン)を探したいときのパターンマッチを正規表現でやるとか出来ます。 regex、OregKitは正規表現プログラムなのでそういったことが簡単に出来ます。 int sprintf(char *str, const char *format, ... ); sprintfは書式formatにしたがって、printf関数と同様の変換を行った出力を、文字列strに格納します。使えるようになると凄く便利。 char *str : 変換した出力を格納する文字列。 const char *format : 書式指定文字列。 ※ 要するに、正規表現は文字列のパターンマッチをするのに対して、sprintf関数は文字列を変換します。だから役割はちがう。
558 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:12:15 ] 煽らないと会話してもらえない可愛そうな香具師なのかな?
559 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:14:45 ] あ、あと出来上がった構文木はバックトラッキング(深さ優先探索)を使って各ノードをトラバース(順次訪れる)します。
560 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:15:58 ] 夏休みに入った途端に変な子が来たね
561 名前:547 mailto:sage [2008/07/20(日) 11:17:06 ] >>557 ありがとうございます! regex,OregKitはsprintfとは使い道が違うものなのですね。 困ったさんのおかげであやうく誤った知識を覚えてしまうところでした。
562 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:21:49 ] 例えば、Ruby on RailsみたいなWebアプリでやってるようなことをObjective-Cとかで実現したいとしよう。 プログラムには、字句解析と構文解析をする部分を作成してHTMLやXMLの中から必要な情報を抜き取る必要がある。 そういうときに、パターンマッチで必要な情報を見つける。そして、sprintf関数とかを使って適切な形に仕上げて表示させるという風に使用する。
563 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:28:39 ] XML なら素直に既存の XML parser 使うだろ、普通。
564 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:31:52 ] >>563 じゃ、解説して! もう疲れてきた。適切な例を考えるのめんどい。
565 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:35:32 ] すまんが>>514 が悪あがきしているようにしか見えない。>>564
566 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:37:47 ] >>514 じゃないからw むしろ>>553 だろ おれはちゃんと>>557 を書いて説明した。>>514 と言われるのは心外だ。
567 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 11:47:41 ] >>566 すまん。疑心暗鬼になってて。
568 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 12:00:36 ] lex&yacc⇔flex&bison
569 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 12:27:02 ] Obj-C 以外の話題で盛りあがるのはやめようよ ... 夏休みだから仕方がないのかな。
570 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 13:18:46 ] >>569 >夏休みだから仕方がないのかな。 >>495 にあるように、この流れは君の嘘が元凶だったんだから反省してくれ
571 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 14:40:24 ] 個人的にはOregKit意外にもCocoaOniguruma軽くて良い感じ。
572 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 00:32:36 ] >>495 にあげられてるのが全部同じ人だってのはどうしてわかったの? もしかしてスーパーハッカー?
573 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 12:24:43 ] 単に嘘ついてるのを並べ得たんじゃね 語録としてまとめるのは変だが
574 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:08:37 ] char* としての文字列の操作をしらなくても簡単な Cocoa プログラムは書けるというのは嘘ではないのでは ... Apple としては C で書くときでも char* じゃなくて CFString つかってくれということだよね。
575 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 05:24:39 ] >Apple としては C で書くときでも char* じゃなくて CFString つかってくれということだよね。 はぁ?ばかじゃねぇの?
576 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 08:44:13 ] >はぁ?ばかじゃねぇの? 煽り煽られたいだけじゃなくて、ほんとにそう思ってるなら、 BSD の API じゃなくて Apple 製の C API で、 char* を受け取るものがどういうのがあるか反省してみてください
577 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 09:28:05 ] stringWithCString?
578 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 09:47:18 ] >>577 それを使うと"default encoding"が変わったときに 文字化けして死亡するので、使わないでね。というか deprecated in 10.4. stringWithCString:encoding: か stringWithUTF8String: を使ってください。お願いだから。 これだけのせいで動かない海外製のフリーウェアに何度も出会っているので ...
579 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 09:54:16 ] 典型的には、OS X の日本語環境では MacJapanese が "default encoding" で、 こいつは円記号とバックスラッシュを区別するので、 海外製の Cocoa でつくったシェルスクリプトのラッパで 不用意に -stringWIthCString: と -cString で行ったり来たりすると シェルスクリプト内に ASCII code でのバックスラッシュ(0x5c)が あるべきところにMacJapanese の バックスラッシュ (0x80) が入って スクリプトが動かなくなったりします ...
580 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 19:55:33 ] >>574 , >>576 オマエの妄想をAppleが言ってるように言うな、この詐欺師が
581 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 21:01:18 ] でたでた
582 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 21:24:17 ] >>574 char* としての文字列の操作すら知らなかったら、ほんとに簡単なプログラムしか書けない、というのは嘘ではないよ。
583 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 23:09:04 ] >char* としての文字列の操作すら知らなかったら、ほんとに簡単なプログラムしか書けない、というのは嘘ではないよ。 まあそれはそうですね。 NSString のメソッドって一杯あるけどなんか微妙に足りないことがしばしば。 Perl/Ruby/Python みたいに 正規表現が標準でつかえればそんな問題もなくなるんだけど。
584 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 23:29:01 ] ねぇねぇ、なんでいきなりchar*を受け取る「API」の話になるの?このスレ。。 それともわざとか? 釣られた俺?
585 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 23:30:01 ] >>583 >Perl/Ruby/Python みたいに >正規表現が標準でつかえればそんな問題もなくなるんだけど。 この人、また来てるのね。正規表現廚。
586 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 23:46:52 ] >>584 char*を入力したり出力したりするAPIが存在しなければ、char*を使う必要がない。と言いたいんじゃないの?
587 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 06:28:52 ] 「char*を受け取るAPI」と「正規表現」にこだわる思考回路が理解できない件www
588 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 09:00:50 ] 反抗期なんだろ。
589 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 09:12:03 ] ていうか普通 NSString なんか使わないだろ
590 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 15:16:41 ] >>574 >>576 >>578 >>579 >>583
591 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:08:20 ] NSString NSAutoString NSCString NSIString NSMutableString NSAttributedString ・・・
592 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 20:07:49 ] Netscapeですか
593 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 07:19:51 ] Netscape NetSTEP NeXTSTEP NeXTscape ・・・
594 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 08:21:40 ] ソープのゴム無し
595 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 09:41:26 ] バカ専用 普通 ハッカー ウィザード ┝ - - - - ┿━━━┿━━━┥ ∩___∩ /) | ノ ヽ ( i ))) / ● ● | / / | ( _●_) |ノ / 今はここら辺クマーー!! 彡、 |∪| ,/ / ヽノ /
596 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:44:47 ] ゴメンずれてる
597 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:45:31 ] バカ専用 普通 ハッカー ウィザード ┝ - - - - ┿━━━┿━━━┥ ∩___∩ /) | ノ ヽ ( i ))) / ● ● | / / | ( _●_) |ノ / 今はここら辺クマーー!! 彡、 |∪| ,/ / ヽノ /
598 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 17:39:05 ] ごめんずれてる
599 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:48:06 ] 普通 まったり 超まったり dat落ち寸前 ┝ - - - - ┿━━━━┿━━━━━┥ ∩___∩ /)
600 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:06:09 ] "\psage"
601 名前:sage [2008/08/20(水) 10:31:33 ] sage
602 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 05:21:02 ] すみません。教えてください。 a = [foo bar_A:[s get] B:[s get]]; というステートメントがありまして、いろいろ実験してみますと、 どうもB:[s get]がA:[s get]より先に実行されてるっぽいです。 どうしてなのか知りたいのですが。
603 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 06:02:59 ] 引数の評価の順番って保証されてたっけ? というか普通は保証されないから理由なんてないと思うよ
604 名前:602 mailto:sage [2008/08/21(木) 08:31:49 ] >>603 わかりました。ありがとう!
605 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 17:35:38 ] 関数の引数をスタックに積んで渡す場合に逆順に積むと、 呼ばれた側で先頭から配列のようにアクセスできて楽だから。
606 名前:デフォルトの名無しさん [2008/08/22(金) 23:33:22 ] >>605 それでいくと、IntelとPowerPCで動作が変わるのかな?
607 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:28:29 ] エンディアンは関係ないから・・・
608 名前:デフォルトの名無しさん [2008/08/23(土) 03:40:36 ] PowerPCは引数をスタックに積まない。多くの場合は。 その前に、gccは実行効率優先でコードを生成するだろうから、引数のセットアップ順序もケースバイケースになりそうな気がする。 push命令使ってるわけでもないし
609 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 05:04:57 ] >>608 恥ずかし過ぎて、俺なら明日会社休んじゃう
610 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 05:30:37 ] >>609 土曜は休みだろ?
611 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 05:38:19 ] 俺は仕事だけどな。
612 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:23:24 ] ttp://developer.apple.com/documentation/DeveloperTools/Conceptual/LowLevelABI/Introduction.html
613 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:10:01 ] この数レスに腹抱えて笑ってもた
614 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:28:21 ] あなたつかれてるのよ…
615 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 03:11:51 ] 伝統的なアレだと、C式は後ろから積んで戻ってから呼び出し側がポップ。 Pascal式は前から積んで呼ばれた先でポップだった。
616 名前:デフォルトの名無しさん [2008/08/30(土) 13:55:06 ] ttp://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/block-blocks-test-8.c?view=markup よくわからん
617 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 15:59:01 ] 「nul」を「にるぽ」と呼ぶスレ
618 名前:デフォルトの名無しさん [2008/09/08(月) 19:07:19 ] >>617 nil じゃね?
619 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:19:35 ] うふふ。すごくにるにるしてるわヨ。
620 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:47:58 ] ににる にる にる ににるに〜 ににる にる にる ににるに〜
621 名前:デフォルトの名無しさん [2008/09/09(火) 21:15:37 ] なあ、もうちょっとまじめにやらないか?
622 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:32:50 ] 3時間後の発表でiPod全機種のOSがiPhoneに移行したらObjective-Cの仕事が激増するかな。 ローコストモデルでは通信できない可能性が高いからプログラマとしては魅力ないのかな? もっともNDAがあるから職業プログラマは話せないと思うけど
623 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:52:44 ] iPhoneでファイルの読み書きってどうすんの? NSDataオブジェクト作ってwriteToFileすりゃいいってのはなんとなくわかるんだけど…。
624 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:39:39 ] GNUStep の AppKit っていつから LGPL になったの? 以前は GPL だった気がするけど、勘違いかな...
625 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 20:58:09 ] まあ、LGPLのほうが使いやすいからいいじゃん
626 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:07:40 ] Unicodeで \u3042\u3044\u3046 とエスケープされた文字を あいう と変換する方法をご教示ください。
627 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 22:21:26 ] 初心者です。 cocoaはmvcによって アプリを開発していくことはよく分かりました。 ただIBで作成したNSViewに直接modelで作成したクラスを割り当てると この場合controllerを解しているわけではないですよね? そういう解釈で良いんですか?
628 名前:627 mailto:sage [2008/09/27(土) 22:23:12 ] >modelで作成したクラス・・・ というよりxcodeで記述したクラスといったほうがいいのかな?
629 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 23:12:46 ] どんなクラスか知らんけど 通常、1クラスしか使わない場合、 ないのはモデルということになる。
630 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:50:56 ] Unicodeで ¥u3042¥u3044¥u3046 とエスケープされた文字を あいう と変換する方法をご教示ください。
631 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:53:18 ] どっかで見たな
632 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 04:47:43 ] >>631 ちょっと上でみたよね
633 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 05:09:33 ] ごめん。俺あんまりわかんないけど NSLog(@"¥u3042"); // u の前は半角の¥(円マーク) これだとそのまんまコンソール出力されたけど NSLog(@"¥u3042"); // u の前は半角の\(バックスラッシュ) だと、普通に”あ”って出力されたよ。 Unicodeエスケープとかでググれば何か出るんじゃない? 英語で検索した情報多いかもね。
634 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:14:05 ] ポリモーフィズムを実現するに スーパークラスもサブクラスも 関係ない id型ひとつあればよい
635 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:26:29 ] 普段はゆるーくメッセージング、性能が気になるところはCの関数呼び出し。 Obj-CがあればC++要らんっていうのも分かる。
636 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 08:31:31 ] この前本屋いったら、UNIXナントカっていう雑誌の特集がObjCだった
637 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 09:06:13 ] >>636 UNIX magazine の10月号かな
638 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:20:26 ] わかんないけど、季刊誌だったような
639 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:31:37 ] UNIX magazine 2008年10月号 MacからiPhoneまでを網羅するアップルの開発言語Objective-C入——前編 www.ascii.co.jp/books/magazines/unix.shtml
640 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:11:30 ] Objective-Pascal Object C
641 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:53:27 ] 買おうと思ったら1500円したので帰ってきた
642 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:55:08 ] 季刊だったのでやっぱ買いに行くことにした
643 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 20:59:23 ] お店閉まってた><
644 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 15:28:24 ] 買ってきた。 冷静に考えると、2冊分の金で 専門誌買えばよかったかもしれない。
645 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 16:54:44 ] >>644 読む価値ある?
646 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 16:58:32 ] 前編ってことは1月号でも特集やるのか?
647 名前:デフォルトの名無しさん [2008/10/06(月) 18:16:03 ] 萩原本でいいと思う。
648 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:32:01 ] >>644 言おうと思ったけど黙っていたのに気づいてしまったか
649 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:47:03 ] 立ち読みしてきたんだが、「モダンシンタックス」って何?
650 名前:デフォルトの名無しさん [2008/10/06(月) 20:40:16 ] そりゃおまえ現代文法だろ
651 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:25:39 ] NSViewってコントローラー無くても四角形とか描写できるよね。 あれはなんで? コード見ても描写を担う関数が仮引数とか受け取ってるみたいだけど・・・・・・・。 一体この仮引数はなんなの?
652 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:52:57 ] >>651 何を引き受けているのかってことかな? 確かにNSViewって不思議。 他のオブジェクトだったらIBとXcodeはアウトレット、アクションとコントラーを介して つながっているけど、NSViewってクラスでそのままリンクさせることができるもんね。