Objective-C
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
05/01/29 16:18:12本当に興味が無いOSだよねw
Macでの標準的な言語であるObjective Cのスレすら無いし。
過去にはあったんだろうけど。
0809デフォルトの名無しさん
2006/10/30(月) 22:55:46エラー/警告が出るのは、他の class からインスタンス変数を @public として操作した場合の話じゃないかな
0810デフォルトの名無しさん
2006/10/30(月) 23:03:190811デフォルトの名無しさん
2006/10/30(月) 23:09:340812デフォルトの名無しさん
2006/10/30(月) 23:41:11いつの間にか翻訳、英語版に追いついてるな。
ObjC 2.0でまた置いて行かれそうだが。
0813デフォルトの名無しさん
2006/11/05(日) 02:24:57早い話、
グローバル変数
const int foo = 100;
- (id)init {
[super init];
self->foo = foo;
return self;
}
上記のような感じでグローバル変数でインスタンス変数を初期化したいのです。
何か良い方法は無い物でしょうか?
0814デフォルトの名無しさん
2006/11/05(日) 02:40:510815デフォルトの名無しさん
2006/11/05(日) 02:49:14元々はC++のソースで、namespaceで対応されている部分なのですが……。
やはり同名のグローバル変数にはアクセス出来ないのでしょうか?
0816デフォルトの名無しさん
2006/11/05(日) 04:25:590817デフォルトの名無しさん
2006/11/05(日) 04:30:18手元で確かめずに言ってすまんけど。
0818デフォルトの名無しさん
2006/11/05(日) 20:16:00なるほど、Objective-C++という逃げ道がありましたね……。
何の問題も無くクリア出来ました。ありがとうございました。
0819デフォルトの名無しさん
2006/11/06(月) 09:26:41Objective-C++ じゃない場合でも以下でいけるんじゃね?
const int foo = 100;
static int getFoo(){ return foo; }
- init{
self->attr = getFoo();
return self;
}
0820デフォルトの名無しさん
2006/11/06(月) 12:48:51http://www.informit.com/articles/article.asp?p=665128&seqNum=3&rl=1
GCC のテストスートにObjC2.0のサンプルコードがあるらしい
http://gcc.gnu.org/viewcvs/branches/apple/trunk/gcc/testsuite/objc.dg/
0821デフォルトの名無しさん
2006/11/07(火) 17:06:10Windowsで使えるObjCコンパイラってないの?Cygwin+gccは面倒い。
0822デフォルトの名無しさん
2006/11/07(火) 20:38:030823デフォルトの名無しさん
2006/11/15(水) 14:48:56クロージャが無いって明言されてるorz
0824デフォルトの名無しさん
2006/11/15(水) 19:08:380825デフォルトの名無しさん
2006/11/15(水) 21:46:05もししてたらインテルのコンパイラも使えるの?
0826デフォルトの名無しさん
2006/11/15(水) 21:56:07Cに変換するプリプロセッサも出回ってるからそれ使えばIntelのC/C++ Compilerも使えるかと。
0827デフォルトの名無しさん
2006/11/15(水) 22:05:50Smalltalkでdo:メソッド見たときは感動したんだよな
0828デフォルトの名無しさん
2006/11/15(水) 22:19:070829デフォルトの名無しさん
2006/11/15(水) 22:33:37でも至るところにデザインパターンを見ることができて面白いよね
Booleanクラスに何もしないifTrue:とifFalse:を定義して
TrueクラスのifTrue:がクロージャーを評価し、
FalseクラスのifFalse:がクロージャーを評価する
ここまでObjective-Cに求めるつもりはないけど
クロージャーを導入するとどうしてもよりSmalltalk化しちゃいそうだね
0830デフォルトの名無しさん
2006/11/15(水) 23:39:48アラン・ケイもそんなふうに言っているよね。彼の手を離れてからずいぶんとLISP化しちゃったから。
0831デフォルトの名無しさん
2006/11/15(水) 23:44:56クロージャは今回入らなかっただけで、いずれ入ると思うよ。
0832デフォルトの名無しさん
2006/11/16(木) 00:22:53茶々入れでスミマセン。
厳密には Boolean に定義されている #ifTrue: と #ifFalse: はあくまで仮想メソッド、
つまり、サブクラスで再定義されることが期待されるメソッド…という位置づけになっていて
(C++ のオブジェクト指向の影響)、引数ブロックを無視する #ifTrue: や #ifFalse: は
False、True クラスにそれぞれ普通に再定義されています。現実は、あまりおもしろみがないですね。
もっと夢のない話をすると、メッセージ ifTrue: [] や ifFalse: [] はコンパイル時にはインライン展開されて
しまうので、実際にはメソッドとしての #ifTrue: や #ifFalse: がコールされることはなかったりもします。
(なので、#ifTrue: や #ifFalse: の定義を書き換えるイタズラをしても、実際には何も起こせません)。
0833デフォルトの名無しさん
2006/11/26(日) 18:12:510834デフォルトの名無しさん
2006/11/26(日) 21:16:510835デフォルトの名無しさん
2006/11/27(月) 01:12:06実装は各クラスで好き勝手にしていいか、すでに他のクラスを継承していて抽象クラスを使えない場合はプロトコル。利便性を考えて、プロトコルの参考実装として抽象クラスを用意することもある。
使い分けようとしなくても、実装を何度も見直すうちに自然と使い分けられるようになると思うよ。
0836デフォルトの名無しさん
2006/12/03(日) 00:19:53ライン指定は出来ます。
gcc 4.0.1-Apple
gdb 6.3.5-Apple
0837デフォルトの名無しさん
2006/12/03(日) 07:06:16> Objective-C method: b -[Foo bar], or for an action method example, b -[Foo bar:]
0838デフォルトの名無しさん
2006/12/04(月) 22:16:51メッセージ呼び出しとおなじ書式なんですね。
失礼しました。
0839デフォルトの名無しさん
2006/12/31(日) 01:55:01見た目だけでも、メジャーな言語風だったら、かなり敷居が下がると思うんだけど。
この書き方のメリットって、何かあるの?。
0840デフォルトの名無しさん
2006/12/31(日) 11:43:19そんなに見た目って敷居になるのかな?Cocoa と他のクラスライブラリの違いのほうが余程問題だと思うけど...
たとえば Cocoa Java があったけど、だからといってそんなに書きやすかったかというと疑問。
[[[ の数がはじめに判らないのが面倒なのは同意。メリットは、つねに引数に名前が書いてあるので、あとで読んだときになにをやっているかが分かりやすい、かな。
0841デフォルトの名無しさん
2006/12/31(日) 17:33:200842デフォルトの名無しさん
2006/12/31(日) 18:25:56というか、[ ] はあったけどそれはクロージャだったので、用途が違ったんでは...
0843デフォルトの名無しさん
2006/12/31(日) 23:52:380844デフォルトの名無しさん
2007/01/01(月) 00:04:54http://journal.mycom.co.jp/column/objc/012/
メソッドスウィズリング (Method Swizzling) とかも。
http://www.cocoadev.com/index.pl?MethodSwizzling
まあランタイムのAPI呼べば何でも出来ます。
0845デフォルトの名無しさん
2007/01/01(月) 00:18:35ありがとうございます。ランタイムの弄りかたさえわかれば何でも出来るのか。
0846デフォルトの名無しさん
2007/01/02(火) 01:57:16[ ] はなかったけど、
receiver selector:arg
って形は同じでしょ。
0847デフォルトの名無しさん
2007/01/02(火) 06:22:380848デフォルトの名無しさん
2007/01/02(火) 08:22:31動的言語のメソッド呼び出し方法なんて一種類しか無いような。
0849デフォルトの名無しさん
2007/01/03(水) 22:45:09いっこいっこ開いてメニュー選ぶのかったるいです。
0850デフォルトの名無しさん
2007/01/03(水) 23:23:380851デフォルトの名無しさん
2007/01/03(水) 23:37:09emacs elisp インデント
などとGoogleで検索してみましたがよくわかりませんでした。
当方少しのコマンドラインなら打てます。例えば
find . -name *.m -exec emacs -batch -indent {} ¥;
などといった簡単なやり方ではなくて、何か特殊な方法なんでしょうか?
0852デフォルトの名無しさん
2007/01/04(木) 02:00:270853デフォルトの名無しさん
2007/01/04(木) 05:56:55でぐぐればいいんじゃないかな。
http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_21.html
もちろんObjective-Cモードにしてね。
0854デフォルトの名無しさん
2007/01/04(木) 11:44:55ありがとうございます。
それみても私の理解不足で、エディタ内で行う編集作業のコマンド集にしか見えないです。
>>852
ごめんなさい。
すれ違いとのことで以降はemacsスレッドを探してそこで聞いてきます。
0855デフォルトの名無しさん
2007/01/04(木) 22:07:540856デフォルトの名無しさん
2007/01/04(木) 22:11:43NeXT Step には独自改良版の GNU Indent が対応していたそうですがそれ以外だと単体の整形ツールは存在しません。
現状私の知る範囲ですとXcode、emacsなどの「エディタ」のソース整形機能を引っ張ってくるほかないです。
0857デフォルトの名無しさん
2007/01/04(木) 23:15:25NeXTが独自改良したならばソースがどっかにころがってんじゃねーの?
GNUって逝ってんだから。
ぐぐっても出てこなかったけど(w
0858デフォルトの名無しさん
2007/01/04(木) 23:56:07動的な言語だと難しいかもしれんが
ttp://www.tamacom.com/global-j.html
0859デフォルトの名無しさん
2007/01/08(月) 14:16:12出てて良いね。
でも、ProjectCenterの*.gormをクリックしても、Gormの起動に失敗してしまう。
何か設定とかあるのかな。
0860デフォルトの名無しさん
2007/01/13(土) 00:09:59*/System/Applicationsにパスを通してできました。
一応簡単なサンプルを作ってみたんだけど、
あまり期待してなかったのもあったから、使ってみてxcodeとほとんど同じような感じで使えて
予想以上に便利なんでびっくりした。
これってLinux等のGUIアプリの作成でもうちょっと普及してもよさそうだけどな。
0861デフォルトの名無しさん
2007/01/25(木) 12:35:540862デフォルトの名無しさん
2007/01/25(木) 17:58:12http://pc9.2ch.net/test/read.cgi/mac/1149300142/
0863デフォルトの名無しさん
2007/01/25(木) 18:23:400864本田
2007/01/25(木) 19:47:35http://opentechpress.jp/developer/article.pl?sid=07/01/23/0121247
>COCOTRON
http://www.cocotron.org/
0865デフォルトの名無しさん
2007/01/25(木) 21:04:500866デフォルトの名無しさん
2007/02/22(木) 20:50:41メソッドを別スレッドで実行するわけではないよね?
0867デフォルトの名無しさん
2007/02/23(金) 08:29:29リモート側の応答を待たないだけということじゃないかな。
実は別スレッドで受信待ちして、デリゲートで通知とかあるのかもしれないけど。
0868デフォルトの名無しさん
2007/02/23(金) 14:35:390869デフォルトの名無しさん
2007/02/23(金) 16:25:24NSConnection 使わなければまったく意味はないです。
0870デフォルトの名無しさん
2007/02/24(土) 15:28:13http://www.appleinsider.com/article.php?id=2519
これまた問題にならないかね。
0871デフォルトの名無しさん
2007/02/24(土) 20:04:220872・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2007/02/24(土) 21:41:360873デフォルトの名無しさん
2007/02/24(土) 22:15:010874デフォルトの名無しさん
2007/02/26(月) 02:04:30誰もObj-Cなんて名前の製品出さないってば。
0875デフォルトの名無しさん
2007/02/26(月) 11:13:24まぁコンパイラはgccだし将来的に使うやつが万に一つくらいで
出てくるかもしれないとかで取ってるのかねぇ…
0876デフォルトの名無しさん
2007/02/26(月) 12:49:51Appleが商標を取得しなおす理由はよく判らない。
http://ja.wikipedia.org/wiki/Objective-C
0877デフォルトの名無しさん
2007/03/01(木) 15:45:11http://www.apple.com/legal/trademark/appletmlist.html
"Objective-C"は登録されていない商標。
0878デフォルトの名無しさん
2007/03/02(金) 01:21:47"Borland Objective-C (TM) Compiler"
みたいな名称になるんでしょ。
0879デフォルトの名無しさん
2007/03/02(金) 02:03:45なーんて言ってたら、マジでVistaでCore Audioをまんまパクられたから
焦って商標を取得したとか?
0880デフォルトの名無しさん
2007/03/02(金) 15:07:39よくわからんのだけど、SunがJavaの商標を持ってたりMSがC#の商標持ってたりするの?
0881デフォルトの名無しさん
2007/03/02(金) 16:42:130882デフォルトの名無しさん
2007/03/28(水) 18:37:41そもそもWindowsで使えるObjective-Cの処理系ってある?
0883デフォルトの名無しさん
2007/03/28(水) 18:51:420884デフォルトの名無しさん
2007/03/28(水) 21:17:48# ってか他にまともに動く処理系ってある?
0885デフォルトの名無しさん
2007/03/28(水) 21:19:16今のところは実用的だと思うけど
0886・∀・)っ-○◎●
2007/03/29(木) 01:28:09Win32のメッセージAPIまわりがObj-Cのメッセージに綺麗にラップされてるならまだわかるが
0887デフォルトの名無しさん
2007/03/29(木) 02:48:14まぁまったくその通りだと思うのだが>>882がラッパを書いてくれればOK
0888デフォルトの名無しさん
2007/04/02(月) 21:18:45コンパイラオプションにあるあらかじめ用意されたクラスしか使えないの?
0889デフォルトの名無しさん
2007/04/03(火) 02:18:05http://www.mhatt.aps.anl.gov/dohn/programming/gcc/gcc_7.html#SEC158
こういう話?
0890デフォルトの名無しさん
2007/04/05(木) 20:17:50それそれ!
どうもありがとうございます!
0891デフォルトの名無しさん
2007/04/13(金) 12:39:32今月4月にCocoaプログラミングの無料セミナーの初級・中級・上級を東京初台
のアップルセミナールームで開催し ます。次期OS Leopardには、Objective-Cの
APIのみで提供される新機能がたくさ んあります。今後、Cocoaの習得はMac OS
ソフトの開発に必須となります。是非 この機会をご活用下さい。講師はHMDTの
木下誠さんです。
http://developer.apple.com/jp/rss/adcjapan.rss
0892デフォルトの名無しさん
2007/04/22(日) 20:16:44NSURLRequest内容:
{
Accept = "text/plain";
"Accept-Encoding" = "gzip, deflate";
"Accept-Language" = ja;
"Cache-Control" = "no-cache";
Connection = close;
Host = "news21.2ch.net";
Pragma = "no-cache";
Range = "bytes=6198-";
Referer = "http://news21.2ch.net/namazuplus/subject.txt";
"User-Agent" = "Monazilla/1.00 (Jane/0.01)";
}
NSURL内容:http://news21.2ch.net/namazuplus/dat/1177098491.dat
他方、cURLで取得しようとするときちんと差分が取得できます。
curl -H 'Range: bytes=6198-' -v -A 'Monazilla/1.00 (Jane/0.01)' -H 'Accept: text/plain' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Connection: keep-alive' http://news21.2ch.net/namazuplus/dat/1177098491.dat
0893デフォルトの名無しさん
2007/04/23(月) 08:06:01この辺が原因なのでしょうかね、ほかに何かおかしな事をやってるのでしょうか、
NSURLConnectionのバグ?
0894デフォルトの名無しさん
2007/04/23(月) 16:50:01curl に渡している物が違うのはわざとですか?
ステータスコード 416 の意味は何かご存知ですか?
Accept-Encoding : gzip の場合は何が起こりますか?
NSURLConnectionのバグだと思うのでしたらバグレポート出せばよいと思いますよ。
0895デフォルトの名無しさん
2007/04/23(月) 20:05:10ストリームで受け取る場合に挙動はかわらないっぽいです。
curlでAccept-Encoding : gzipを付けなかったのは-vで出されるヘッダフィールドはzipがかからないと考え、
gzip に渡して解読できないかもと思ったからで、416の本筋ではないです。
ヘッダを全くそろえても、NSURLConnection側のみ416エラーが出てます。
ただし、Range設定しない場合はきちんとダウンロードできます…。
今はとりあえずCore Foundationで直読みできるかどうか試してるところです。
0896デフォルトの名無しさん
2007/04/23(月) 20:12:25つまりcurlのverboseを見るため、意図してAccept-Encodingヘッダを飛ばしてます。
416とはRange指定範囲が本体の範囲から外れている事を意味していると思うのですが、
もし違う解釈があるのなら指摘いただけるとありがたいです。
curlでは正常に範囲指定が受け付けられているのに、NSURLConnectionでは範囲外と返ってくる。
ヘッダ情報が微妙に違うのか、何が原因なのかよくわからないのです。
0897デフォルトの名無しさん
2007/04/23(月) 22:37:460898デフォルトの名無しさん
2007/04/24(火) 12:55:18かつ
レンジ指定の場合
そのレンジは”何に対して”のレンジでしょう?
元のコンテンツですか?違いますか?
違う場合は、何に対してですか?
0899デフォルトの名無しさん
2007/04/25(水) 08:09:24curl -H 'Range: bytes=6198-' -A 'Monazilla/1.00 (Jane/0.01)' -H 'Accept-Encoding: gzip, deflate' -H 'Accept: text/plain' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache'
-H 'Connection: keep-alive' http://news21.2ch.net/namazuplus/dat/1177098491.dat | gzip -d -c
curl: (18) transfer closed with outstanding read data remaining
あれ、zip元のデータ長ではないのですね…
0900デフォルトの名無しさん
2007/04/25(水) 22:09:45不意のコネクション切断等のときに、
その続きを取得する時のことを考えれば、
この動作が”正しい”ことが分かると思います。
http コンテンツで 2ch の dat の様に差分を取得できる物って
そんなに無いと思いますよ。
0901デフォルトの名無しさん
2007/04/29(日) 22:42:59@protectedまたは@publicなインスタンス変数にアクセスするのって
お前ら的にはどうなの?
0902デフォルトの名無しさん
2007/04/29(日) 22:48:350903デフォルトの名無しさん
2007/04/29(日) 23:40:48メソッド内でselfを書き換えるとself->fooはもちろんとして
修飾なしのfooも実体が書き換えた後のインスタンスのインスタンス変数になるみたいなのですが、
これって処理系(gcc)依存の挙動でしょうか?それとも言語規約通りの挙動でしょうか?
すなわち、メソッド内において(& foo == & self->foo)が常に成り立つのでしょうか?
0904デフォルトの名無しさん
2007/05/05(土) 03:16:03C言語→Objective-C→D言語
《忌まわしき現実》
C言語→C++→JAVA→C#
0905デフォルトの名無しさん
2007/05/05(土) 04:36:28《忌まわしき事実》
C++(膨張した言語仕様への反省)→Java(もっと簡素・洗練しろ!)→C#
0906デフォルトの名無しさん
2007/05/05(土) 06:41:41C → C++ → Perl → ASP → PHP → Ruby → Java
0907デフォルトの名無しさん
2007/05/05(土) 09:17:030908デフォルトの名無しさん
2007/05/05(土) 13:28:30レス数が900を超えています。1000を超えると表示できなくなるよ。