Objective-C
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
05/01/29 16:18:12本当に興味が無いOSだよねw
Macでの標準的な言語であるObjective Cのスレすら無いし。
過去にはあったんだろうけど。
0002デフォルトの名無しさん
05/01/29 16:18:56http://pc5.2ch.net/tech/kako/990/990574267.html
0003デフォルトの名無しさん
05/01/29 16:19:32少なくともC++よりはマシっぽいんだけど。
0004デフォルトの名無しさん
05/01/29 16:22:580005デフォルトの名無しさん
05/01/29 16:32:530006デフォルトの名無しさん
05/01/29 16:42:05@interface testApp : Gtk_App
{
Gtk_Window* winMain;
Gtk_Layout* testLayout;
Gtk_Label* testLabel;
Gtk_Button* testBtn,*testBtn2;
Gtk_Adjustment* hadj,*vadj;
}
- initApp:(int* )argcp:(char*** )argvp;
- free;
- button_press_event:(id)anobj :(GdkEventButton* )event;
- clicked:(id)anobj;
@end
0007デフォルトの名無しさん
05/01/29 16:42:37- initApp:(int* )argcp :(char*** )argvp
{
[super initApp:argcp :argvp];
hadj = [[Gtk_Adjustment alloc] initWithAdjustmentInfo:0:0:0:0:0:0];
vadj = [[Gtk_Adjustment alloc] initWithAdjustmentInfo:0:0:0:0:0:0];
testLabel = [[[Gtk_Label alloc] initWithLabelInfo:"Objective-C"] show];
testBtn = [[Gtk_Button alloc] initWithLabel:"greeting"];
[testBtn connectObj:"button_press_event" :self];
[testBtn connectObj:"clicked" :self];
[testBtn show];
testBtn2 = [[Gtk_Button alloc] initWithLabel:"test2"];
[testBtn2 connectObj:"button_press_event" :self];
[[testBtn2 connectObj:"clicked" :self] show];
testLayout = [[Gtk_Layout alloc] initWithLayoutInfo :hadj :vadj];
[testLayout put:testLabel :(gint)0:(gint)0];
[testLayout put:testBtn: (gint)30:(gint)30];
[testLayout put:testBtn2: (gint)30:(gint)60];
[testLayout show];
winMain = [[Gtk_Window alloc] initWithWindowInfo:GTK_WINDOW_TOPLEVEL];
[[winMain add:testLayout] show];
[winMain signal_connect:"delete_event" signalFunc:gtk_main_quit funcData:NULL];
return self;
}
0008デフォルトの名無しさん
05/01/29 16:43:16{
g_print("Freeing me\n");
gtk_main_quit();
return [super free];
}
- button_press_event:(id)anobj :(GdkEventButton* )event
{
g_print("Button %d was pressed\n",event->button);
return self;
}
- clicked:(id)anobj
{
printf("A thing was clicked, object is %#x\n",(unsigned int)anobj);
if(anobj == testBtn)
[testLabel set_text:"Hello,world!"];
else if(anobj == testBtn2)
[testLabel set_text:"clicked by test2"];
return self;
}
@end
0009デフォルトの名無しさん
05/01/29 16:44:08{
id myApp;
myApp = [[testApp alloc] initApp:&argc :&argv];
[myApp run];
return 0;
}
前スレの最後に載ってたけどgtk弄るだけでこんなかっこよくなる言語なんて初めて見たぜ
0010デフォルトの名無しさん
05/01/29 17:14:16勝手に俺のレスパクってスレ立てるなよw
0011デフォルトの名無しさん
05/01/29 17:16:41○こんな括弧よくでる言語なんて初めて見たぜ
0012デフォルトの名無しさん
05/01/29 17:17:550013デフォルトの名無しさん
05/01/29 17:19:170014デフォルトの名無しさん
05/01/29 17:20:360015デフォルトの名無しさん
05/01/29 17:27:38さらにいないMac板に移ってカキコが無くなり、消えた。
0016デフォルトの名無しさん
05/01/29 17:43:110017デフォルトの名無しさん
05/01/29 17:47:060018デフォルトの名無しさん
05/01/29 17:48:420019デフォルトの名無しさん
05/01/29 17:51:58自作自演乙
0020デフォルトの名無しさん
05/01/29 19:05:27今のところ技術的な話題は無し。
0021デフォルトの名無しさん
05/01/30 01:30:04マカは偉そうにPCの使い心地に対して文句を言うくせに、
使い心地が良くなるように工夫はしない「クリエイタ」が多いですね。
0022デフォルトの名無しさん
05/01/30 01:31:26こんなキモイ言語いらね
C♯の構文で
x86/PowerPCのネイティブがはければ最強なのに
0023デフォルトの名無しさん
05/01/30 01:35:580024デフォルトの名無しさん
05/01/30 01:36:120025デフォルトの名無しさん
05/01/30 01:39:160026デフォルトの名無しさん
05/01/30 01:39:26http://www.gnustep.org/resources/documentation/ObjectivCBook.pdf
0027デフォルトの名無しさん
05/01/30 17:54:53を併せ持つ言語だと思う。
GUI部分はオブジェクト拡張部分でさくっと実装、
(画像、音声処理の)エンジン部分はCでねちねち実
装という場合に、もっとも真価を発揮すると思う。
0028デフォルトの名無しさん
05/01/30 17:56:58騒ぎ立てる人を見掛けると、いつも不思議に思っている。
0029デフォルトの名無しさん
05/01/30 21:11:260030デフォルトの名無しさん
05/01/30 21:13:42そういう連中はCライクな言語しか触った事がないんだよ。
0031デフォルトの名無しさん
05/01/30 23:40:320032デフォルトの名無しさん
05/01/31 00:04:16微妙・・・C++慣れるとObjective-C行くのも抵抗はあるぞ?
興味あるなら直接行けば(゚з゚)イインデネーノ?
正直、考え方とかを除くと言語自体はそれ程覚える所はない・・・
0033デフォルトの名無しさん
05/01/31 00:19:220034デフォルトの名無しさん
05/01/31 00:46:200035デフォルトの名無しさん
05/01/31 00:50:50なんでそう思うんだろう…
0036デフォルトの名無しさん
05/01/31 01:19:47どうもです。アーロンの本はC++を知ってるのを前提にって事になっているので、C++知らないので読むのやめちゃったんですね。
0037デフォルトの名無しさん
05/01/31 01:28:25オブジェクト指向が特別重要でないと考える、ならば、オブジェクト指向の概念を理解できずに挫折した
これは成り立つかどうかは怪しいね。
オブジェクト指向の概念を理解できずに挫折した、ならば、オブジェクト指向が特別重要でないと考える
これは成り立つかどうかは難しいね。
0038デフォルトの名無しさん
05/01/31 02:20:330039デフォルトの名無しさん
05/01/31 02:33:05いや珍しくはないと思う。
0040デフォルトの名無しさん
05/01/31 02:35:13brainf*ck
0041デフォルトの名無しさん
05/01/31 06:17:34Objective-Cってそのカテゴリなのか。
確かに文法はちょっと変態的かもしれないけど。
0042デフォルトの名無しさん
05/01/31 06:59:08Objective C (626 projects)
他の代表的な言語と比べても桁一つ以上少ないな。
C (14193 projects)
C# (2135 projects)
C++ (14640 projects)
Delphi/Kylix (1683 projects)
Java (13888 projects)
Perl (5637 projects)
Visual Basic (2027 projects)
http://sourceforge.net/softwaremap/trove_list.php?form_cat=160
0043デフォルトの名無しさん
05/01/31 06:59:220044デフォルトの名無しさん
05/01/31 10:02:06C#がそこまで使われていたなんて知らなかった。
逆にVBがそんなに使われていないとも知らなかった。
0045デフォルトの名無しさん
05/01/31 10:42:420046デフォルトの名無しさん
05/01/31 11:02:07*オープンソースでは*わりと使われているみたいですね
0047デフォルトの名無しさん
05/01/31 14:04:03VBってオープンソース向けではないでそ
0048デフォルトの名無しさん
05/01/31 19:05:32オープンソースでそれだけ使われているってことね。
Objective-Cがオープンソース向けかどうか知らないけど、
オープンソース向けとしてなら少ないし、
オープンソース向けでないとしても、
同じくオープンソース向けでないVBよりも少ない。
0049デフォルトの名無しさん
05/01/31 21:26:540050デフォルトの名無しさん
05/01/31 21:38:25そんなこと言ったらCだってオープンソースだし、Javaだってオープンソースだ。
0051デフォルトの名無しさん
05/01/31 22:54:20>>36
OOPやってた香具師ならアポのPDFと、その辺にあるネットの
説明ぐらいで充分。元々大した量じゃない
後はサンプルなんか感触つかめばエエ話
0052デフォルトの名無しさん
05/02/01 01:08:27CができてOOPが理解できてれば、すんなり入れて楽に使えるから、たしかに導入時のハードルは低いな。
0053デフォルトの名無しさん
05/02/01 04:46:39忠実に実現しているのが分かると思う。
第1版は絶版らしいので第2版を紹介
ttp://www.amazon.co.jp/exec/obidos/ASIN/4775303716/
今風にMacOSX向けの記述が追加されてるそうな。
0054デフォルトの名無しさん
05/02/01 11:45:580055デフォルトの名無しさん
05/02/01 13:21:41基本的にはできない。
Objective-C(っというかNSxxのCocoa[OpenStep]フレームワーク)は
WinのCOMやboostのスマートポインタみたいに参照カウンタ方式。
NSでautorelease poolとかを使えばある程度の管理はしてくれ
るけど、Javaのようなもんじゃない
Objective-CのライブラリでGCもどきを誰かが作ってたきもする
が失念
>>53
史実っていうかSmalltalkに似せようとしたのがObjective-C
でそ?C++とコンセプトが違うから仕方ない
# あーテンプレート使いテー
0056デフォルトの名無しさん
05/02/01 16:05:53うーん。言語仕様(マニアックに突っ込まなきゃ)だけなら
Objective-C、C++、Java、C#、その他も覚える量は大して
変らんと思うよ。
実際ある程度の物を作るんだったら、フレームワーク覚えるのが
一番時間かかる(OOP関連除けば)んだから。。
0057デフォルトの名無しさん
05/02/01 17:06:340058デフォルトの名無しさん
05/02/01 17:09:000059デフォルトの名無しさん
05/02/01 17:43:13そうか?
C++の方が先だったので実際にC→Objective-Cをやった訳
ではないけど、覚え易さに強調(売りに)するほどの差は無い
とは思うがね。まぁどっちでも良いわさ。
C→Objective-Cも、C→C++も別に大変ってわけでも無いし
0060デフォルトの名無しさん
05/02/01 19:46:190061デフォルトの名無しさん
05/02/01 19:56:24アーー、どんな拡張っスか。
僕様チャン頭ワりーんで、わかんねーッ
アヒャww
0062デフォルトの名無しさん
05/02/01 20:01:28なーんかやな感じなんだよなあC++
0063デフォルトの名無しさん
05/02/01 20:14:59俺はそこが好きなんだよね……
0064デフォルトの名無しさん
05/02/01 20:18:130065デフォルトの名無しさん
05/02/01 20:30:010066デフォルトの名無しさん
05/02/02 04:11:21どうするのかとか聞くスレかと思いきや。
Objective-Cとは何か? って
もはや新しく言語が出来てどういう言語なのか話しているのと同じレベルだな。
昔からある言語なのに使われていないと言うことが良くわかった。
0067デフォルトの名無しさん
05/02/02 04:27:38そういえばObjective-C++なんてあったようななかったような。
0068デフォルトの名無しさん
05/02/02 04:46:35【雑談】Objective-C【禁止】
0069デフォルトの名無しさん
05/02/02 07:53:010070デフォルトの名無しさん
05/02/02 14:08:06http://pc7.2ch.net/test/read.cgi/mac/1091927026/
0071デフォルトの名無しさん
05/02/02 14:53:09http://202.228.189.75/
0072デフォルトの名無しさん
05/02/02 14:53:59怪しいから踏みたくないなぁ…
0073デフォルトの名無しさん
05/02/02 15:32:44http://homepage.mac.com/mkino2/spec/objectiveC++/objectiveC++.html
0074デフォルトの名無しさん
05/02/02 17:15:00>>71 は森永製菓だから大丈夫
0075デフォルトの名無しさん
05/02/02 17:35:55Objective-C プログラミング言語
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/index.html
0076デフォルトの名無しさん
05/02/02 19:01:15Objective-C と C++ の Rhapsody っていうより
ただしっちゃかめっちゃかに見える
0077デフォルトの名無しさん
05/02/02 20:54:37{obj message]
でobj がnil でも落ちなかったよね?
0078デフォルトの名無しさん
05/02/02 22:35:560079デフォルトの名無しさん
05/02/03 00:43:380080デフォルトの名無しさん
05/02/03 00:45:030081デフォルトの名無しさん
05/02/03 02:12:37みんなGCCくらい持ってるでしょ?
なら,
#import <objc/Object.h>
int main(int argc, char* argv[])
{
id obj = nil;
[obj new];
return 0;
}
を
gcc Test.m -Wno-import -lobjc
とコンパイルしてみればいいじゃない。
やってみれば分かるが,警告なしでコンパイルは通り,実行時も何もエラーは出ない。
nilはメッセージを何でも受け付ける。
0082デフォルトの名無しさん
05/02/03 02:19:44できた。
ちょっと構文規則でも読んでくる。
0083デフォルトの名無しさん
05/02/03 11:01:50ともかくとして、疲れたから寝る。おやすみ。
0084デフォルトの名無しさん
05/02/03 15:52:310085デフォルトの名無しさん
05/02/03 15:53:49ObjCは未知のサブクラスのインスタンスを呼び出せる。
0086デフォルトの名無しさん
05/02/03 16:20:02今でも nib っていうのがあるけど
0087デフォルトの名無しさん
05/02/03 17:02:12No More カーボン!
0088デフォルトの名無しさん
05/02/03 20:57:05nilで死ぬことないから、逆にチェックを厳密にやらないと
分かりづらいバグが出るだろうね。
しかし当たり前の話だけどnilはOKなのに
releaseしたゴミポインタにメッセージを
送ると普通にSEGVで死ぬのがムカつく(w
[obj release]
obj=nil;
これで安全。
0089デフォルトの名無しさん
05/02/03 21:00:20autorelease pool つかうとどこが悪くて落ちるかわかんなくて
結構デバッグ大変じゃない?
0090デフォルトの名無しさん
05/02/03 21:13:26なんか前半と後半で矛盾したことを言ってるぞ。
>releaseしたゴミポインタにメッセージを
>送ると普通にSEGVで死ぬのがムカつく(w
ここで死んでもらわんとわかりづらいバグになるだろうがw
0091デフォルトの名無しさん
05/02/04 01:10:22え、QTKitってCocoaでバリバリQuickTimeいじれるようになるんじゃないの、、、
NSMovieViewって基本的なことしか今はできないですよね?
いろいろやろうとすると結局Carbonっていうのがなぁ、、、
QTKitでCarbonと同じようにCocoaからQTがいじれるのかなーと思ってます。
0092デフォルトの名無しさん
05/02/05 16:25:45nibってInterface Builderの、だよね。
変更したインスタンスは保存できんよ。
0093デフォルトの名無しさん
05/02/06 17:04:210094デフォルトの名無しさん
05/02/06 18:16:20Appleの=gcc な訳だがw
0095デフォルトの名無しさん
05/02/06 20:47:270096デフォルトの名無しさん
05/02/07 03:19:480097デフォルトの名無しさん
05/02/07 11:29:15開発はめちゃくちゃ楽やね。もちろん最初は情報がなかなか捜せなくて、数行
で書けることをWebで見つけ出すのに数時間なんてことやってたけど。Winに
もGNUStep入れてみようかと思ってる。
0098デフォルトの名無しさん
05/02/11 19:12:150099デフォルトの名無しさん
05/02/12 21:14:32思うのだが、なぜか人気がない。why?
0100デフォルトの名無しさん
05/02/12 21:24:13ところでWindowsで使えるんか?
Cocoaが無いと意味ないか。
0101デフォルトの名無しさん
05/02/12 21:56:300102デフォルトの名無しさん
05/02/12 22:53:14そのほかの環境でやるとしたらGNUStep + ObjCかGTK+ + ObjCってところ?
0103デフォルトの名無しさん
05/02/15 09:42:28字面
0104デフォルトの名無しさん
05/02/15 15:19:34C/C++,Java,VBみたいにhoge.funcとかhoge->funcと左から右へ
単純に移動するだけですめばいいんだけど
0105デフォルトの名無しさん
05/02/15 19:39:45は主語と述語っぽくて読みやすいよ。
英文として読み下せるよ。ってどっかの外人が言ってた。
0106デフォルトの名無しさん
05/02/15 23:49:440107デフォルトの名無しさん
05/02/18 21:28:07try - catch 中に生成したオブジェクトをdeleteしようがなくて
メモリリークの危険バリバリだったよーな気がする。
これって今どーなってる?
0108デフォルトの名無しさん
05/02/18 22:37:390109デフォルトの名無しさん
05/02/22 18:55:50GTK+ の Objective-C バインディングというと,
* GTKKit
* GToolkit
* gnome-objc
あたりがあるんだけどどれもメンテナンスされてないんだよねぇ…?
昔 gnome-objc で遊んでたけど結構 buggy でいくつか patch 書いて送ったけど
完全無反応だったし…
# まぁ C の API 直接叩けばいいんだけどさ…
0110デフォルトの名無しさん
05/02/25 13:01:36Cocoa バインディング入門
キー値コーディング(Key Value Coding)
キー値監視について(Key Value Observing)
0111デフォルトの名無しさん
05/02/25 15:04:26以下のプログラム、核は出来ています。このまま使用しても目的は達成できます。が、
http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/CSJS2EUC.C
http://tokyo.cool.ne.jp/kuonnnokizunanbalivetehe/CEUC2SJS.C
この2つのソースコードをJISを経過させずに直接変換させるにはどうしたらいいでしょうか?
0112デフォルトの名無しさん
05/02/25 15:05:470113デフォルトの名無しさん
05/02/26 04:56:52仕様書いたポストイットを俺の端末に貼って帰りやがった
最初は普通に VisualC++ で作ってたが途中で上司の態度がムカついてきたんで
GNUStep と MinGW と コーディング用に Meadow 落としてきて
Objective-C と GNUStep の Foundation と Win32API の不気味なコラボレーションで
仕様通りのツールを仕上げてやった
俺が辞めた後でソースみて気絶する奴が出ない事を祈る
0114デフォルトの名無しさん
05/02/26 08:04:44GJ! と言っておこう。
0115デフォルトの名無しさん
05/02/26 17:44:09その上司は次の誰かに朝までの修正を夜9時に渡して帰るだけだぞ。
内容が解らんので何とも言えんが、因みに本当に非道いケースでは
上司が定時帰宅で責任は部下に擦り付ける罠。
あとその成果物って他のPCでも動く?
0116デフォルトの名無しさん
05/02/26 17:48:46113じゃないがobjc.dllとgnustep-base.dllいっしょに入れときゃ動くでしょ。
0117デフォルトの名無しさん
05/02/26 23:32:11世の中はC、C++、C#、Java、VBがほとんどを占めている訳か?
「Cocoaはやっぱり」以外にOSXでのプログラミングを支援する書籍が無い!
Appleは何を考えとるんだ・・・。
英語版をなんとかして読むしかありませんか。
0118デフォルトの名無しさん
05/02/26 23:41:24イマドキ「日本語の参考書がないから勉強できまちぇん」
とかヌカしてる連中は必要ないということでしょう。
0119デフォルトの名無しさん
05/02/26 23:50:07ヒレガス本,萩原本,HMDTは?
萩原本は出版社がなくなったみたいだから手に入りにくいかも知れんけど。
Objective-Cの言語についてだったら日本語翻訳がある。
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/index.html
0120デフォルトの名無しさん
05/02/26 23:50:23>「Cocoaはやっぱり」以外にOSXでのプログラミングを支援する書籍が無い!
これはあんまりだろ。
0121デフォルトの名無しさん
05/02/26 23:55:59>>120
書籍ベースの参考書についてはJavaやC++みたいな
習得人口の多い言語と比べるべきでは無かったですね。
0122デフォルトの名無しさん
05/02/27 00:40:30思うんだけど....
APIリファレンスがちゃんとあるんだしさ。
0123デフォルトの名無しさん
05/02/27 02:12:50俺なんて講義でObjective-Cによるフレームワークのを使うからってんで
簡単な紹介とポインタ示してこういうものがあるから覚えてこいでおしまいだったぞ。
当然そっから先の講義のほとんどやレポートに必要だった。
0124デフォルトの名無しさん
05/02/27 04:05:16* C言語が使える
* 少くとも一つのオブジェクト指向言語が使える
人ならば学習コストは低いでしょうけど…
昔 "10 minutes learning objective-C"(だったかな?) とかいう Web page
を読んで文法覚えました。
当時 C や Java を覚えた後だったんで覚えるのに1日はかからなかったなぁ。
#10分じゃ無理だったけど
0125デフォルトの名無しさん
05/02/27 04:55:33うわ、ほんとだ。知らなかった。
http://www.dgcr.com/cgi-bin/backnumber/back.cgi?mode=right&year=2004&month=9&day=17
0126デフォルトの名無しさん
05/02/27 10:10:34ちなみに、プログラミングの知識は0に近く、WindowsでHSPという言語でちょこっとやったことがある程度です。
0127デフォルトの名無しさん
05/02/27 11:06:54http://www.amazon.co.jp/exec/obidos/ASIN/4898143997/
辺りかなぁ。
0128デフォルトの名無しさん
05/02/27 11:43:37中村本は取っ付きやすいとはおもうけどCの知識が0だときついよ。
Cの入門書とセットで読むといいかも。
0129デフォルトの名無しさん
05/02/27 12:39:07だべってないでお前らが本書けばいいだけじゃん
一人一殺だ
0130r
05/03/02 23:57:23あのさ、NSImageViewのサブクラスを作って、
-(void)mouseUp:(NSEvent*)event;
をオーバーライドして、
画像上のマウスクリックのイベントを拾おうとしたんだが、
なんか、mouseUpメソッドが呼ばれないみたいだったんだ。
で、試しに
-(void)mouseDown:(NSEvent*)event;
も、ついでにオーバライドしてみたら、
mouseUpもmouseDownも呼ばれるようになった。
mouseUpとmouseDownって、ペアでオーバライドしなきゃいけないの?
これってマカーには常識?
0131デフォルトの名無しさん
05/03/03 02:27:37副作用で直ったと思われ
0132デフォルトの名無しさん
05/03/03 18:39:51良く在るC++のクラスライブラリと違ってOSの一部なので、ソースが無い。
かといって、JDKのように挙動が自明でもない。
試行錯誤させられる亊が多過ぎる。
0133デフォルトの名無しさん
05/03/03 18:41:38std::stringですら遥かにまし
0134デフォルトの名無しさん
05/03/03 19:21:210135デフォルトの名無しさん
05/03/03 22:25:190136デフォルトの名無しさん
05/03/03 23:15:51あるの?
0137デフォルトの名無しさん
05/03/04 01:12:28文法もすっきりしている、好きになりそうだ。
0138デフォルトの名無しさん
05/03/04 01:39:01すごいな。
漏れはずっとC++使って来て、PublicBetaを試したとき、
Objective-C自体の書式はすぐに分かったのだけど、
IBとPBの連携の意味を理解するのに半年掛かってしまった。
資料見ても意味分からないから試行錯誤&挫折の繰り返しでなかなか意図を見抜けなかった。
で、ようやくポトペタでGUIアプリが作れるようになったんだけど、
結局Cocoaのクラス構成とかの流儀に馴染む前に嫌になってしまったよ……。
0139デフォルトの名無しさん
05/03/04 08:50:58オブジェクト解放のタイミングが分かりづらくなってる気がする。
なかなか気付きにくいよ「イベントループの末尾で削除」なんて。
0140デフォルトの名無しさん
05/03/04 10:19:26マジほしいな、これは。
0141デフォルトの名無しさん
05/03/06 13:05:38ttp://www.rubyist.net/~matz/20050304.html
>どうやらObjective-Cの「カテゴリ」と呼ばれる機能が、以前から悩んでいたselector namespaceに近いもののようだ。基本的な概念は理解できるものの、実際の挙動(と実装)がイメージできず苦しんでいたので、参考にできるものがあるのはありがたい。
>しかし、ちょっとGoogleしてみた範囲内では、その仕様はよくわからなかった。具体的な挙動や実装について参考になる資料はないものだろうか。
>あれ? まてよ。
>今、改めてGoogleしたページを読み返すと、別に有効範囲が静的スコープであるとは書いてないな。そうするともしかしてカテゴリってのは、ただ単に「インスタンス変数が追加できないMix-in」なのか。それだったらすっごい残念なのだが。
>selector namespaceのある言語といえば、他にSmallscript (S#)やJavaScript (EcmaScript 4.0)などもあるが、いずれも現時点で私には理解できていない。
>情報提供歓迎。
0142デフォルトの名無しさん
05/03/07 12:12:31でほぼ正解じゃなかったかな…?
メソッドも追加ができるだけでオーバーライドすらできないからそれ以下かな?
0143142
05/03/07 13:13:57オーバーライドはできたかも…
0144デフォルトの名無しさん
05/03/08 22:09:19全く等価なもんなんでしょうか。
例えばObjective-Cのクラス Fugaが定義されているとして、
次の2行は等価? 非等価?
id p = [[Fuga alloc] init];
Fuga* p = [[Fuga alloc] init];
0145デフォルトの名無しさん
05/03/08 22:17:130146デフォルトの名無しさん
05/03/08 22:25:34Mix-inって、クラスを特定することなく定義できる必要があると思うんだけど。
Objective-Cのカテゴリって定義時にクラスを指定するから、他のクラスで使うことができない。
これをMix-inというのだろうか。そもそもMix-inとは?
0147142
05/03/09 13:43:29わたしの中での Mix-in に対する認識は
* 基本となる型(Flavor)が存在する
* その型に対して追加機能を提供する型が Mix-in
* 機能追加すること自体も Mix-in と呼ぶ(?)
* 機能追加は,実装でも仕様でもOK
* プロトタイプ言語には Mix-in は存在しない(必要ない)
* C++ の多重継承でも Mix-in (の概念)は存在する(らしい)
という感じです。
なので特定の型(Flavor)に機能追加するだけでも Mix-in だと思ってますが…
世間一般での Mix-in の定義はどうなんでしょうね?
0148デフォルトの名無しさん
05/03/09 18:46:33ダイナミックバインドってid経由でしか働かないんだっけ
0149デフォルトの名無しさん
05/03/09 20:53:44> * C++ の多重継承でも Mix-in (の概念)は存在する(らしい)
というか、多重継承だからこそ mix-in が可能なんじゃないか?
Ruby は多重継承ができないけど、 mix-in があるので
多重継承と似たことができますよ、ってことにしてるんでしょ?
0150デフォルトの名無しさん
05/03/09 21:04:48C++ では Mix-in を表現するに多重継承を使う方法がある
0151デフォルトの名無しさん
05/03/09 21:14:190152デフォルトの名無しさん
05/03/09 21:29:40http://developer.apple.com/ja/documentation/Cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_8.html
0153デフォルトの名無しさん
05/03/09 23:04:510154デフォルトの名無しさん
05/03/10 16:28:59でもCocoaに限らない話題希望
0155デフォルトの名無しさん
05/03/10 16:46:04Cocoa以外でobj-c使う場面ってどんな場面よ
0156デフォルトの名無しさん
05/03/10 16:48:130157デフォルトの名無しさん
05/03/10 16:51:190158デフォルトの名無しさん
05/03/10 17:14:380159142
05/03/10 17:25:10Mix-in の概念は実装の追加のみに限定されるものでもないと思うんだが…
Java の interface や Objc の protocol も Mix-in な型として使われ
る場合があるし,それも Mix-in と呼べると思うけど…
Mix-in について解説したドキュメントでいいのないかな?
Mix-in評論家(?)の日記くらいか?
ttp://www.rubyist.net/~matz/0128.html
0160デフォルトの名無しさん
05/03/10 22:45:410161デフォルトの名無しさん
05/03/11 00:02:58テキストがあれば、それの最初から最後まで。
心配しなくてもそんなに分量はない。
けと、その都度実践していかないと(つまり、ソースを作っては試す)
身にはつかない。
0162デフォルトの名無しさん
05/03/11 01:11:55でも、多くの人がポインタで挫折すんだよねー。
まぁ、今は良い参考書もいっぱいあるから、昔に比べりゃ全然楽だ。
0163デフォルトの名無しさん
05/03/11 01:40:32話てるのか何か良く分からないんです。
0164デフォルトの名無しさん
05/03/11 01:42:50>でも、多くの人がポインタで挫折すんだよねー。
それは数あるポインタの解説書がことごとく間違っていたり
嘘言っていたりして学習者の混乱を増長させているから。
0165デフォルトの名無しさん
05/03/11 02:05:420166デフォルトの名無しさん
05/03/11 02:23:510167デフォルトの名無しさん
05/03/11 03:15:52において、
「*(p+i)はp[i]って書き方もできます」って仕様は余計だと思う。
これのせいで、ポインタと配列は全く別ものなのに、
なんだか同じもののように初心者を混乱させている希ガス。
0168デフォルトの名無しさん
05/03/11 05:20:100169デフォルトの名無しさん
05/03/11 08:06:55Tigerを買うかどうかは、そこの評価次第なんだけど。
0170デフォルトの名無しさん
05/03/11 11:37:37一番の売りはUML風味のクラス図自動生成とかでない?
その辺実際どの位使えるのかは確かに気になる所。
Rationalのアレ並みにとは言わんけどさ(w。それなりにパパッと書いたのがぐりぐり動いてるよーだといいな
0171デフォルトの名無しさん
05/03/11 12:40:57もう少し、Cocoaプログラマが増えてもいいと思うんだが。
Macを再評価する動きというのは無いものか。
0172デフォルトの名無しさん
05/03/11 13:18:32Developing with Core Image
http://developer.apple.com/macosx/tiger/coreimage.html
0173デフォルトの名無しさん
05/03/11 13:20:47EOFっていうベースがあるから、
そこそこ行けそうな気がする。
なんで別けたんだろうね。
0174デフォルトの名無しさん
05/03/12 00:27:53Carbonだと思っていた。
0175デフォルトの名無しさん
05/03/12 01:33:37Core Image使うところは、.mにせにゃならん。
0176デフォルトの名無しさん
05/03/12 15:12:42ポインタは難しい的な先入観もたせるのも
どうなんだろうなって感じだよね。
何の先入観も無しにやってみて難しくて挫折するのは
しょうがないとして、余計な先入観のせいで混乱しちゃうと
ちょっとね。
0177デフォルトの名無しさん
05/03/12 17:22:57わかる人は両方をちゃんと使い分けてるけど、説明される時はこのうち1つ側の説明しかされないし
0178デフォルトの名無しさん
05/03/12 23:38:06もしかしてメモリやアドレスの概念を出さずに説明されるのだろうか?
またはCPUやメモリの概念程度の基礎知識すらない奴がC言語を学んでいるのか?
0179デフォルトの名無しさん
05/03/12 23:56:55少なくともオレらは。
0180デフォルトの名無しさん
05/03/13 03:34:30って、今頃そんなのをやれっても無理あるよなぁ。
0181デフォルトの名無しさん
05/03/13 08:58:190182デフォルトの名無しさん
05/03/13 12:13:040183180
05/03/15 01:26:13いや、漏れではなく今頃の人に教えるのにアセンブラって言うのも厳しいもんがあるよなぁと。
漏れなんかはTK-80をガキの頃に親から奪って遊びだした世代なんで最初はハンドアセンブル
しかなかったんだよな。
今だとそういういい教材はあるけれどなかなかにニッチだしなという事で。
0184デフォルトの名無しさん
05/03/15 06:31:470185デフォルトの名無しさん
05/03/15 07:40:380186デフォルトの名無しさん
05/03/15 08:54:28今でもアセンブラの知識は役に立つが、
全くもってスレ違い。
0187デフォルトの名無しさん
05/03/15 23:12:17>>158のテクニックの実装方法について、
まじめに考えてみようぜ
0188デフォルトの名無しさん
05/03/16 00:16:110189デフォルトの名無しさん
2005/03/27(日) 01:31:22Object をNSObjectにしたいけど、リンクでエラーがでます。
Cocoaのライブラリを探してリンクすればいい、という発想はおかしいですか?
0190デフォルトの名無しさん
2005/03/27(日) 02:04:35つけとけ
0191デフォルトの名無しさん
2005/03/27(日) 11:41:020192デフォルトの名無しさん
皇紀2665/04/01(金) 16:42:300193デフォルトの名無しさん
2005/04/03(日) 16:03:44ttp://homepage.mac.com/mkino2/backnumber/2004_10.html#October%2020_1
ttp://www.hmdt-web.net/bbs/bbs.cgi?bbsname=mkino&mode=res&no=248&oyano=248&line=0
Mac OS X v10.4 Tiger
ttp://developer.apple.com/ja/macosx/tiger/index.html
Xcode 2.0
ttp://www.apple.com/jp/macosx/tiger/xcode.html
QTKit
ttp://blog.so-net.ne.jp/MyCometG3/2005-03-26-1
ttp://homepage.mac.com/mkino2/backnumber/2005_03.html#March%2025_1
ttp://slashdot.jp/journal.pl?op=display&uid=15678
Dashboard
ttp://numata.aquasky.jp/programming/dashboard/dashboard.shtml
0194デフォルトの名無しさん
2005/04/17(日) 12:08:04スレ違いすまん。
0195デフォルトの名無しさん
2005/04/17(日) 16:11:01そんな金の無い俺は夏まで待ちますが。
これだけではなんなので、今Cocoa入門本としてヒレガス本を買うなら原著の第二版がお勧め。
日本語版=第一版は開発環境として10.2を対象としてるので情報が古い。
第二版では10.3=Xcodeに対応して、、GNUstepについてもちょこっと触れていたりする。
著者のページからサンプルも落とせるので、第一版を持っている人なら、
新旧のソースを見比べるだけでも勉強になるかもしれん。
http://www.bignerdranch.com/products/cocoa1.shtml
Xcode2.0対応の第三版も出そうな気もするが参考までに。
0196デフォルトの名無しさん
2005/04/17(日) 17:16:320197194
2005/04/17(日) 19:32:51ヒレガス本ってのは黄色い表紙でべスパだか何かが写ってる奴ですよね?
いまこれを読みながらCocoaプログラミングの勉強中です。Unixyな使い方だけでは
もったいないかなと思って。で、ますますMac欲しいなぁ、と。
>>196
OSXってMac以外で動作可能なんですか?自宅にラック導入する予定はないのでXserveはパスね。
0198デフォルトの名無しさん
2005/04/17(日) 21:06:02OSXはMacだけ。
GNUstepなら他のプラットフォームでいろいろいける。
が、i18n関係はまだまだダメなので(w
是非そっち方面にも助力を
0199デフォルトの名無しさん
2005/05/20(金) 02:03:500200age
2005/05/26(木) 17:04:19NSString* str = [NSString stringWithUTF8String:"test"];
で取得した str は 何時 [str release]; すべきなのでしょうか?
0201デフォルトの名無しさん
2005/05/26(木) 17:34:52そもそも release するべきでない。
0202デフォルトの名無しさん
2005/06/06(月) 08:55:32たしかにそうだけど、NSAutoreleasePool のインスタンスが用意されてなかったらメモリリークの悪寒。
0203age
2005/06/06(月) 10:00:13ワーカスレッド(POSIXスレッド)内で
NSString* str = [NSString stringWithUTF8String:"test"];
を行った場合、どのNSAutoreleasePoolが使われるのでしょうか?
0204203
2005/06/06(月) 10:59:18NSAutoreleasePoolは、スレッド毎に独立しているのでしょうか?
0205デフォルトの名無しさん
2005/06/06(月) 15:51:59>>203,204
NSAutoreleasePool はスレッドを生成するときに、プログラマが自分で用意するものだと思われ。
要するにスレッドごとに存在する必要あり。
ttp://developer.apple.com/samplecode/SimpleThreads/listing3.html
とか見るよろし。
もっと言うと、AppKit(NSApplicationMain) を使ってない場合は、メインスレッドにも NSAutoreleasePool は(自動では)用意されないんで、この場合も自前で用意してやる必要がある。
GNUStep で遊ぼうとして、その罠にはまった人間が約一名(おれだが)。
あと、ワーカスレッドってのが何を意味してるのかわからんが、pthread_create とかで直接 POSIX スレッドを生成して云々って話なら、やめておいた方が良さそう。つーかその場合、おそらく NSAutoreleasePool がそもそも使えない気がする。
素直に NSThread 使いましょう。
それはそれとして、203(200 も?)の名前欄の age はコテハンなのか、それとも age てるのを主張したいだけなのか、それが問題だ(そうか?)
0206200
2005/06/06(月) 16:24:46やはり、POSIXスレッドは使わないほうがよさそうですね...。
0207デフォルトの名無しさん
2005/06/06(月) 16:43:03> つーかその場合、おそらく NSAutoreleasePool がそもそも使えない気がする。
ttp://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Concepts/AutoreleasePools.html
Note: If you are creating secondary threads using the POSIX thread
APIs instead of NSThread, you cannot use Cocoa, including
NSAutoreleasePool, unless Cocoa is in multithreading mode. Cocoa
enters multithreading mode only after detaching its first NSThread. To
use Cocoa on secondary POSIX threads, your application must first
detach at least one NSThread, which can immediately exit. You can test
whether Cocoa is in multithreading mode with the NSThread class method
isMultiThreaded.
0208205
2005/06/06(月) 16:53:51ごめん、英文読み違ってたか。
あらかじめ NSThread を使って一つスレッドを生成しておけば、Cocoa が multithreading mode ってのになって、その後は POSIX スレッドでも Cocoa(NSAutoreleasePool 含む)を使えるようになる。
マルチスレッドモードかどうかは、NSThread クラスの isMultiThreaded メソッドで確認できる。
…ってな理解で良い?
0209デフォルトの名無しさん
2005/06/08(水) 23:34:030210デフォルトの名無しさん
2005/06/10(金) 00:30:51>混ぜるな危険
確かにおれもそう思うが、Objective-C++ で書かれたコードとか読んでると、なんかどうでも良くなってくるぞw
0211age
2005/06/15(水) 23:34:33以下のように作成された NSString* selstr は何時解放するべき、まはた何時解放されるのでしょうか?
%pの出力は毎回変わりますが、メモリリークは起きていないようです。
- (IBAction)button1Click:(id)sender
{
SEL sel = @selector(button1Click:);
NSString* selstr = NSStringFromSelector(sel);
NSLog(selstr);
NSLog(@"%p", selstr);
}
0212デフォルトの名無しさん
2005/06/16(木) 00:56:120213デフォルトの名無しさん
2005/06/16(木) 09:33:10何時解放されるのでしょうか?
[pool release] のときでしょうか?
0214デフォルトの名無しさん
2005/06/16(木) 19:35:27ちみはメモリ管理のことがよくわかってない風味なので、
ttp://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html
ここのページを隅から隅まで読む事をお薦めする。
あと、厳密には NSAutorelasePool がするのは『解放』じゃなくて、
単に release メソッドを呼ぶことだ。
もしそのインスタンスに対して、どこかで retain が使われてれば、
実際には解放されないじょ。
0215211
2005/06/16(木) 22:19:09http://www.tech-arts.co.jp/macosx/macosx-jp/htdocs/4600/4618.html
0216デフォルトの名無しさん
2005/06/17(金) 08:00:310217デフォルトの名無しさん
2005/06/17(金) 09:25:520218デフォルトの名無しさん
2005/06/17(金) 12:30:560219デフォルトの名無しさん
2005/06/17(金) 13:28:02ドキュメントなさ過ぎ。
0220デフォルトの名無しさん
2005/06/17(金) 16:00:270221デフォルトの名無しさん
2005/06/17(金) 17:16:170222デフォルトの名無しさん
2005/06/17(金) 21:06:130223デフォルトの名無しさん
2005/06/18(土) 02:36:580224デフォルトの名無しさん
2005/06/18(土) 02:59:22ありすぎ>ある>なさすぎ>ない
こうじゃないの?
0225デフォルトの名無しさん
2005/06/18(土) 03:00:21ある>ありすぎ>なさすぎ>ない
理由
過ぎたるは及ばざるが如し
0226デフォルトの名無しさん
2005/06/20(月) 20:48:52しすぎ>>する>>しない>>しなさすぎ
|| || || ||
潔癖性 普通 不潔 ゴミ屋敷
な?
0227デフォルトの名無しさん
2005/06/21(火) 03:29:370228デフォルトの名無しさん
2005/06/21(火) 13:46:44しすぎ>>する>>しない>>しなさすぎ
|| || || ||
ヤリチン 一般人 インポ 童貞
0229デフォルトの名無しさん
2005/06/22(水) 14:48:28O b j e c t i v e - C は 童 貞
0230デフォルトの名無しさん
2005/06/22(水) 14:57:34ありすぎ: » 1
ある: ≥ 1
なさすぎ: ≈ 0
ない: = 0
0231デフォルトの名無しさん
2005/06/22(水) 16:43:070232デフォルトの名無しさん
2005/06/22(水) 17:18:55NSWindowのkeyDown:やperformKeyEquivalent:ではcommand等の修飾キー"だけ"押したのはわからないぽいんですが、
どうすれば取れますか?
0233デフォルトの名無しさん
2005/06/22(水) 21:11:390234232
2005/06/22(水) 21:32:41というか自己解決
ファーストレスポンダで
- (void)flagsChanged:(NSEvent *)theEvent
をオーバーライドですね
NSResponder見てませんでした
0235デフォルトの名無しさん
2005/07/08(金) 02:17:14抽象クラスがないとかクラス変数がない等の点が
Javaに比べていまいち使いにくい気がするんですが
これは漏れの認識不足のせいですか?
0236デフォルトの名無しさん
2005/07/08(金) 02:26:550237デフォルトの名無しさん
2005/07/08(金) 15:49:13アクセス指定子はないけどヘッダに書いたら公開扱いで書かなかったら
非公開扱いってことにして使うんだろう.
# 実際にはヘッダに書かなくても呼出せるはずだから private ではないけれど…
抽象クラスはあったら嬉しいかもしれんがなくてもそれほど困らない.
逆に Java に出来なくて ObjC に出来ることとして category 使って既存クラス
にメソッド追加したり override したりとかがある.
コンパイル時の静的型チェックのゆるさとか考えても全体的に Java よりも
柔軟でプログラマ任せの言語になってると思う.
#というより Java が堅すぎとも言えるけど…
0238デフォルトの名無しさん
2005/07/08(金) 21:46:06認識が不足しているのは
×誤 使いにくい
○正 使い慣れない
という部分だな
0239デフォルトの名無しさん
2005/07/28(木) 21:55:330240デフォルトの名無しさん
2005/07/29(金) 01:44:57保守する暇があるなら新Mac板のCocoaスレの質問に答えてあげてよ!
0241デフォルトの名無しさん
2005/07/29(金) 02:34:540242デフォルトの名無しさん
2005/08/08(月) 20:39:10Xcode 1.5でコンパイルしたら10.2.8ではもう動かなくなってしまいました。Xcodeからコンパイルして10.2.8でも動くようにするオプションなどはありませんか?
0243デフォルトの名無しさん
2005/08/09(火) 01:03:32っている設定がカスタマイズのところにあったはず。
それを入れた上で、ビルド設定を見直せばいけるのではないだろうか。
すまんがいまMacが手元にないので確認できない....
0244デフォルトの名無しさん
2005/08/10(水) 20:45:09非常に参考になりました。どうもありがとうございます
0245デフォルトの名無しさん
2005/08/19(金) 20:08:31Delphiの話なんですが、リンクするだけで確保と開放の組み合わせ数が一致しているかどうか検出できるライブラリがあります。
開放洩れがあると、アプリの終了時に警告ダイアログが出ます。
似たような事をCocoaアプリで行う方法を知っている方は居ないでしょうか?
# Fundationでコマンドツールを作った時は標準出力に開放洩れ警告が出るので、組み込みで機能があるような気もしています。
0246デフォルトの名無しさん
2005/08/22(月) 00:57:00http://www.big.or.jp/%7Ecrane/cocoa/7000_cocoaNote/cocoaNote_050424.117.pdf
0247デフォルトの名無しさん
2005/08/22(月) 13:25:16ありがとうございます。
MallocDebugは以前から使っていますが、終了時点で内部を歩けなくなるので、開放洩れの確認には向いていないと思います。
# WindowやDocument単位では出来ますけど、それもすごい手間が必要です。
単純に、「確保が500回で開放が480回なんで、20個どっかにリークしてるよん」みたいな情報が欲しいと思っています。
0248デフォルトの名無しさん
2005/08/23(火) 07:19:21ふざけるな
0249デフォルトの名無しさん
2005/08/24(水) 01:40:030250デフォルトの名無しさん
2005/08/26(金) 13:21:01ここにちょこっと紹介されている→ ttp://webkit.opendarwin.org/blog/
0251デフォルトの名無しさん
2005/08/26(金) 20:37:33使ってみました。
実行中のプロセスに対して使うコマンドであるようです。
0252デフォルトの名無しさん
2005/08/28(日) 01:01:36[]が嫌い
0253デフォルトの名無しさん
2005/08/28(日) 01:03:460254デフォルトの名無しさん
2005/08/28(日) 01:28:510255デフォルトの名無しさん
2005/08/28(日) 01:40:56あの表記とCocoaのおかげでクラスと構造体の違いとかオブジェクト指向という
考えとかにピンと来た。
Objective-Cのあの記法は「Cのオブジェクト指向拡張なんだ」という発想から
来てるんだろうね。Cという割とマシンに近いレイヤーと、オブジェクトの
メッセージのやり取りのレイヤーを分ける、みたいな。逆にC++のCに習った
記法は「Cは本当はこうあるべきだ」みたいな発想からなんだと思う。
>>254
というわけで、[]とったらただのCになるようにしたかったからああいう風に
なったんじゃないかな。
0256デフォルトの名無しさん
2005/08/28(日) 11:25:19最近ちょっとあっちのクラスがどーなってるのか気になって仕方ない(w
0257デフォルトの名無しさん
2005/08/28(日) 16:58:070258デフォルトの名無しさん
2005/08/28(日) 17:45:160259デフォルトの名無しさん
2005/08/28(日) 18:14:330260デフォルトの名無しさん
2005/08/28(日) 21:26:22どんな視点から見てもとてつもない差があると思われ
0261デフォルトの名無しさん
2005/08/28(日) 23:02:550262デフォルトの名無しさん
2005/08/28(日) 23:28:31>>256
SoftwareICは知らないけど、Cocoa以外のクラスライブラリならPortable
Object Compilerのライブラリもあるよね。こっちは使ってみた?っていうか、
使ってみた人いるかな。実はあんまり期待してないので見てないんだけど…。
0263デフォルトの名無しさん
2005/08/30(火) 01:16:40結局今生き残っていて、サポートされ、改良され続けているのはAppleのCocoaと
GNUstepという結局OpenStepの末裔の2つだけなわけで。
Brad Coxの元祖Objective-Cの為のSoftwareIC(なんかICpakって名前で101(Foundation)と
201(GUI)という見ようによってはOpenStepと変わらない構成っぽいことはぽいのだけど、
言語仕様的にも
ttp://wwwa.dcns.ne.jp/~nito/objective-c/answer-16.html
のFAQに書いてある通り結構いろいろ違いがあるみたいだし、当然そうなりゃライブラリも構成が
当然違うだろうなぁ?という感じではあるんだけど。
今やStepstoneもBradCoxのサイトも消えちゃってるし、余計に気になってねぇ(笑)
PorgtableObjectCompilerも面白そうではあるけど、ちっと嫌〜んな感じがあって(笑)
やっぱり手を出しちゃいないんだけどね。
#なんのこたぁない、NSObjectじゃないルートクラスが見てみたいだけっつーだけなのかもしれない(笑)
0264デフォルトの名無しさん
2005/08/31(水) 02:27:12よく覚えてないけど、そういえばPOCの人はOpenStep的な発展にかなり批判的
だったっけね。
そういえば、Swarmとかいうシミュレーション?のソフトでObjectvie-Cが使われ
ている、みたいなのをちょくちょく見たな。調べてみたらこんなのが。
http://www.swarm.org/swarmdocs-2.2/set/set.html
http://www.quintessa.co.jp/study.html
ちょっとみた所だと、なんかcreateBeginでオブジェクトを作ってから
パラメーターを設定してcreateEndで初期化を完了する、みたいなことをやる
みたいだった。あとフォーマルなプロトコルがかなりたくさんあったな。
0265デフォルトの名無しさん
2005/08/31(水) 10:48:30Objective-Cはそれまで知らんかったけど簡単に書けるからいいよね。
0266デフォルトの名無しさん
2005/09/01(木) 16:44:230267デフォルトの名無しさん
2005/09/02(金) 13:10:52同感。
出版社がつぶれたのは不幸だけど、がんばって他から新刊出して欲しい。
新しい例外や同期の構文とかも加筆したやつ。
0268デフォルトの名無しさん
2005/09/02(金) 22:37:39http://www.fukkan.com/vote.php3?no=29943
投票しても復刊時の購入義務は無いので、ご安心ください。
0269デフォルトの名無しさん
2005/09/03(土) 07:23:120270デフォルトの名無しさん
2005/09/03(土) 10:27:560271デフォルトの名無しさん
2005/09/03(土) 17:55:1010.5_Xcode対応で出して欲しいゆ
0272デフォルトの名無しさん
2005/09/04(日) 09:35:53http://pcweb.mycom.co.jp/column/objc/001/
・第1回
CocoaとObjective-Cと動的なオブジェクト指向- Cocoaハックの第1歩
・第2回
Objective-Cの動的型付け
・第3回
Cocoa実現の肝- クラスとそのメソッドの調査方法をチェック
・第4回
ターゲット/アクションパラダイム(1) - 動的特性を利用したデザインパターン
0273デフォルトの名無しさん
2005/09/04(日) 20:31:480274デフォルトの名無しさん
2005/09/09(金) 23:49:05潰れたのか…道理でなかなか見つからないと思っていた。偶然近くの古書店で
見つけた割れは好運であったか!
>>267
投票しようとしたが、登録していない人はどうすれば良いのか分からなかった
のでバイバイ。サイトの作り悪いねここ。
0275デフォルトの名無しさん
2005/09/10(土) 00:26:17検索してみるといいかも。
もちろん図書館によるけど、意外と蔵書しててくれたりするので、借りてみるといいかもしれない。
うちの市の図書館にも1冊あったよ。
0276デフォルトの名無しさん
2005/09/17(土) 17:23:45登録して、投票しますた。
発売3日前に買ったが、そろそろばらけてきた。
Objective-Cはそのものについての本があれだけだったのに本当に残念。
最新内容も加筆したのが出たら、是非欲しい。
0277デフォルトの名無しさん
2005/10/17(月) 03:44:35D言語の事前条件・事後条件・不変条件とか。
0278デフォルトの名無しさん
2005/10/17(月) 13:04:38断る
0279デフォルトの名無しさん
2005/10/17(月) 15:53:04利用できる言語が増える分には構わんぞ
ライブラリでなく言語仕様のほう頻繁に弄られちゃたまったもんじゃねー
0280デフォルトの名無しさん
2005/10/17(月) 22:37:350281デフォルトの名無しさん
2005/10/17(月) 22:43:070282デフォルトの名無しさん
2005/10/18(火) 19:57:15インナークラスというか、Smalltalkのブロックみたいなものだろ。
すげー欲しい。
0283デフォルトの名無しさん
2005/10/19(水) 17:29:07このコンパイラはサポートしていたりする。
ttp://users.pandora.be/stes/compiler.html
0284デフォルトの名無しさん
2005/10/20(木) 02:16:550285デフォルトの名無しさん
2005/10/21(金) 19:03:29うれしいことだ。
0286デフォルトの名無しさん
2005/10/21(金) 22:09:060287デフォルトの名無しさん
2005/10/22(土) 02:14:59そんなに評判のいい本なのかコレ
0288デフォルトの名無しさん
2005/10/22(土) 02:53:00これぐらいしか無いという点の方が大きいと思う。
他にも無くは無いけどStepStoneやらNextStepやらが対象だったりして
今から読むには辛い内容だったりする。
できればMacに依存しない(早い話がGnuStepの)本が出て欲しいけど
難しいだろうな。
0289デフォルトの名無しさん
2005/10/25(火) 00:02:30スーパークラス、サブクラス、全然関係ないクラス〜
自由〜
0290デフォルトの名無しさん
2005/10/25(火) 03:07:480291デフォルトの名無しさん
2005/10/25(火) 11:39:25恐怖や憎しみも
0292id型ばんざいの人
2005/10/26(水) 00:40:10いじっていた。オブジェクト指向を自分なりに理解したのは
Objective-Cを通じてだ。
後になって、C++を勉強した際に、ポリモーフィズムを実現
するためには基底型のインスタンスに派生型をはめ込む
必要があるというのを知り、妙な制限をかけるもんだと思った。
今は仕事でJavaをやっているけど、やっぱりObjective-Cが
一番だよ。誰も使ってないけど
。・゚・(ノД`)・゚・。
0293デフォルトの名無しさん
2005/10/26(水) 15:56:22ポリモーフィズムできないじゃんとか思ってた
0294デフォルトの名無しさん
2005/10/31(月) 20:43:22いい統合開発環境ないかなぁ
0295デフォルトの名無しさん
2005/10/31(月) 23:08:12Objective-C 使ってテキストデータ(CSV or XMLなどなんでもよい
が)をSQL文を使って扱うくらい簡単に、
データ抽出したり、ソートしたりする方法ありませんか?
0296デフォルトの名無しさん
2005/10/31(月) 23:10:120297デフォルトの名無しさん
2005/11/01(火) 01:05:180298デフォルトの名無しさん
2005/11/06(日) 17:29:36マカーって本当にスキル低いな。
そういうライブラリを自分で作るか、そういう事が出来るライブラリを使うんだよ。
OCじゃなくて、Cで十分。
0299デフォルトの名無しさん
2005/11/06(日) 18:59:310300デフォルトの名無しさん
2005/11/06(日) 19:05:540301デフォルトの名無しさん
2005/11/08(火) 21:37:58いかにもMacで描かれた絵が懐かしい。「ソフトウェアIC」とか「マジノ線防衛」とか。
0302デフォルトの名無しさん
2005/11/09(水) 01:29:00元祖のアレ?
いいなぁ。
0303デフォルトの名無しさん
2005/11/10(木) 16:00:51B.J. コックス/A.J.ノボビルスキーの方だ.
0304デフォルトの名無しさん
2005/11/17(木) 01:04:31unix の grepとかsortコマンドを利用する
0305デフォルトの名無しさん
2005/11/19(土) 21:00:010306デフォルトの名無しさん
2005/11/20(日) 00:09:250307デフォルトの名無しさん
2005/11/22(火) 18:32:55Objective-Cの文法解説日本語サイトみたいなのお願いします。
↓
0308デフォルトの名無しさん
2005/11/22(火) 19:10:460309デフォルトの名無しさん
2005/11/23(水) 04:39:45参考になりました。
思ったより簡単そうですね
Windowsで使えると良いのですが
0310デフォルトの名無しさん
2005/11/23(水) 11:47:17GNUStep
0311デフォルトの名無しさん
2005/11/23(水) 14:49:21持ってないあわれなおまいらのためにわざわざ投票してやってもいい。
しかし条件がある。おれさまは投票だけして買わなくてもいいのか?
0312デフォルトの名無しさん
2005/11/23(水) 16:08:42発売決定したら買うかどうか選択できるし
その時に欲しくなるかもしれないしね
0313デフォルトの名無しさん
2005/11/24(木) 01:52:49投票しても購入義務は生じないから、
持っていない自分としては是非投票して欲しい。
0314デフォルトの名無しさん
2005/11/24(木) 14:02:190315デフォルトの名無しさん
2005/11/25(金) 02:13:01よくわからない
0316デフォルトの名無しさん
2005/12/07(水) 10:22:24書店に残ってるから買っちゃおうかな・・・高いけど
0317デフォルトの名無しさん
2005/12/09(金) 10:25:240318デフォルトの名無しさん
2005/12/09(金) 12:49:23OSXじゃ嫌なの?
0319デフォルトの名無しさん
2005/12/09(金) 12:50:15今のPCで動かしたら爆速なんじゃないか?
0320デフォルトの名無しさん
2005/12/09(金) 19:59:32ドライバ類が当時より困ったチャンな事になるかもしれんけどな(汗
0321デフォルトの名無しさん
2005/12/12(月) 16:04:480322デフォルトの名無しさん
2005/12/31(土) 17:19:12「やっぱ Objective-C は遅いのか、動的バインドだし」とか思ってたが、
ObjectAlloc を使えるようになってただ一つのメモリリークが発見でき、
そこを直したらフレームレートが超改善した。
この場を借りて Obj-C の神様に懺悔しまつ。
0323デフォルトの名無しさん
2006/01/20(金) 02:12:00appleがdocumentをpdfで提供してるとは知らなんだ
このスレとあわせてこれから読みます
0324デフォルトの名無しさん
2006/01/21(土) 00:44:31Windows しかないので Cygwin の Gcc でお勉強。
…リンクができねぇ。
Cygwin Gcc では ObjC は含まれていないんだと。
http://cygwin.com/faq/faq.programming.html#faq.programming.objective-c
VMware 上の Linux で出なおします。
0325デフォルトの名無しさん
2006/01/21(土) 04:32:10Mingwだっけ?
あっちはどう?
GNUstepのWin版に使われてる位だから動くと思うんだけど。
0326デフォルトの名無しさん
2006/01/21(土) 08:39:29まぁLinuxでProjectCenterとかGorm使った方が楽しそうだけど。
0327デフォルトの名無しさん
2006/01/21(土) 10:16:01当時でもドライバ類は困ったチャンだったから今のPCじゃ全滅でしょう。
>>321
VirtualPC上で問題なく動いてます。速度もそれなり。
NEXTSTEP/OPENSTEPなんて今のWindowsのUIから比べるとかなりクソですが。
0328324
2006/01/21(土) 12:38:00>326
情報ありが�d。
GNUStep でも同様のエラーでますた。
原因は gcc のオプション -lobjc を最後にしていなかったから… orz
オプションの類は前置きする癖がついていて、何度も何度も
gcc -o Sample.exe -lobjc Sample.m
としてました。gcc の使い方から出直しです。
-lobjc 最後にしたら Cygwin でもコンパイル・実行できました。
C をポインタで挫折して Java に逃げ込んだ私ですが、地道に出直します。
ありがとうございました。
0329デフォルトの名無しさん
2006/01/24(火) 09:49:19C++のような複雑怪奇流動的なものじゃなければ
いいんだが。
0330デフォルトの名無しさん
2006/01/24(火) 11:31:48>Objective-Cの特徴を一言で言うと
(Smalltalk + C) / 2
0331デフォルトの名無しさん
2006/01/24(火) 11:38:14ObjectiveC,smalltalk メッセージ指向
C++,Java クラス指向
メッセージ指向って何さ、メソッドとどう違うのさという意見もあり、
smalltalk派とC++派の喧嘩(という程でもないが)の種になったりする。
この辺も参考に
ttp://homepage.mac.com/mkino2/oop/messaging.html
ttp://sumim.no-ip.com:8080/wiki/725
0332デフォルトの名無しさん
2006/01/24(火) 13:40:08それは動的、静的と言い換えてもよくない?
0333デフォルトの名無しさん
2006/01/24(火) 18:13:14ただメモリは解放してあげないといけない
…のが良かったり、悪かったり。
カリカリには行けないけど、気はそんなに緩められず。
こんなんで良いのか?と思いつつ、楽に作れて動いてる。
とても微妙な感じのする言語ですね。
0334デフォルトの名無しさん
2006/01/24(火) 18:17:140335デフォルトの名無しさん
2006/01/24(火) 19:43:35言葉遊びかもしれんが、動的、静的というより、
オブジェクトの結合が粗か密かという方が適切な気がする。
言語研究者や言語オタならうまく説明できるんだろうなあ。
0336デフォルトの名無しさん
2006/01/24(火) 19:47:19Appleの実装ならobjc_msgSend()とか
0337デフォルトの名無しさん
2006/01/24(火) 20:08:06ありがとう。Mac じゃないけど、gcc なんでちょっと試してみます。
0338332
2006/01/24(火) 20:14:43それはやっぱりバインディングが静的か動的かと言ってるように
見えるんだけど、違うのかな。
「オブジェクト同士の結合が疎 」
⇔ 「Cocoa BindingとかDuck Typingが可能」
⇔ 「動的要素大」と。
0339デフォルトの名無しさん
2006/01/24(火) 22:34:15みたいな動機の部分と実際の実装(?)ってことじゃないのかな?
0340デフォルトの名無しさん
2006/01/24(火) 22:47:58まあそういうことだあね。どっちに注目するかの差でしかない。
動的ってのは結構なメリットだと思うんだけど、
なんでメッセージ指向は流行らないんだろうな。
0341デフォルトの名無しさん
2006/01/24(火) 23:35:14・遅い(或は、見るからに遅そう)
・メモリ喰い(ランタイム情報いっぱいくっつける)
・実行時バグは見つけ辛い(静的ならコンパイル時に弾いてくれるのに)
・静的マニアが多い(こいつらが一番問題)
Objective-C はクロージャを捨てたのが間違いだよなぁ。
動的言語としては中途半端な感じ。
0342デフォルトの名無しさん
2006/01/24(火) 23:41:26亀レスだが、NSXML が使えるんじゃないかな...
0343デフォルトの名無しさん
2006/01/24(火) 23:44:15>・実行時バグは見つけ辛い(静的ならコンパイル時に弾いてくれるのに)
OS X 標準だとクラッシュしたらスタックトレースが出て、
どのメソッドのどの行で死んだかすぐわかるのでそれほど問題ではないっす。
0344デフォルトの名無しさん
2006/01/25(水) 00:27:040345デフォルトの名無しさん
2006/01/25(水) 01:15:14重要なのは言語ではない。その背景にある概念である。 by グラディ・ブーチ
実装面での話に置き換えようとした場合(きっとそれはたいてい成功しますが)、
もとの言葉の意図するところとは違ったところに着地するような気がします。
とりあえず、メッセージングについて知りたければ、その発案者であるケイの
書いたものを読むのがいいと思います。
http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en
http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
それでもなお、そんなの「動的」でいいじゃん、と 332 が思うのならそれまでで。
0346デフォルトの名無しさん
2006/01/25(水) 01:22:540347デフォルトの名無しさん
2006/01/25(水) 10:45:09インスタンス変数の動的追加が出来れば、クロージャじゃなくてもいい。
0348デフォルトの名無しさん
2006/01/26(木) 01:10:35メソッドの動的追加も出来なきゃ嫌なんだが。あと、関数リテラルも。
0349デフォルトの名無しさん
2006/01/26(木) 10:10:38ランタイム関数で出来なかったっけ?
0350デフォルトの名無しさん
2006/01/27(金) 07:48:00とても悲しい。 Objective-C サポートしてくれ〜>インテル
0351デフォルトの名無しさん
2006/01/27(金) 09:13:12日本語おかしいけど、どうせ ICC の話だろ。もう一回寝ろ。
0352デフォルトの名無しさん
2006/01/28(土) 04:56:07出来るなら、マジやり方教えて欲しい。
0353デフォルトの名無しさん
2006/01/28(土) 16:47:37本当に???
過去の資産とか、どうするつもりなんだろう1?
0354デフォルトの名無しさん
2006/01/28(土) 17:29:17騙されてんじゃねーよ。ちょっとは自分で調べれ。
0355デフォルトの名無しさん
2006/01/28(土) 20:12:100356デフォルトの名無しさん
2006/01/28(土) 23:46:24非存在の証明は原理的に不可能
ソフトウエア開発者の常識
0357デフォルトの名無しさん
2006/01/28(土) 23:48:100358デフォルトの名無しさん
2006/01/29(日) 19:10:200359358
2006/01/29(日) 19:34:510360デフォルトの名無しさん
2006/01/31(火) 01:22:05ぐぐったら GSANTRL なるものが出てきたんだけど、情報が少ないのとサンプルが全く無いのでどうしたもんかなと。
0361デフォルトの名無しさん
2006/01/31(火) 04:55:54生成されたコードをほかのツールにかけるとか?駄目か。
0362デフォルトの名無しさん
2006/01/31(火) 05:07:180363デフォルトの名無しさん
2006/01/31(火) 16:20:090364デフォルトの名無しさん
2006/02/01(水) 00:26:28アドバイスありがと。
> C との違いがほとんどないので、
=> Objective-C は C との違いがほとんど無いので、
==> Objective-C は C のコードも利用できるので
> 自前で C に落とすプリプロセッサを書いて
=> BNF などの構文定義から 自前で C に落とすプリプロセッサを書いて
==> BNF などの構文定義から、構文解析の対象を入力として適当な構造体を作る
C のコードを、生成するプリプロセッサを自前で書いて
Objective-C は C のコードも利用できるので、BNF などの構文定義から、
構文解析の対象を入力として適当な構造体を作る C のコードを、
生成するプリプロセッサを自前で書いて、生成されたコードをほかの
ツールにかけるとか?
すまん、がんばったけどアドバイスを理解できんです。なんとなくだけど、
Objective-C は C のコードを利用できるから、lex/yacc なり flex/bison なりで
生成した C コードを Objective-C から利用すればいいんじゃん?
ってことですかね?
0365デフォルトの名無しさん
2006/02/01(水) 00:43:58俺もそういう質問だと思ってたけど。勘違いだったらスマソ。
Objective-C を使って構文解析するという話だったら、lex/yacc で
良いと思うよ。
0366360
2006/02/01(水) 01:04:39すんません。言葉足らずでした。
"Objective-C を使って構文解析する" という話でした。
ありがとう。
>361
質問悪かったです。すまぬ。
0367361
2006/02/01(水) 02:32:500368デフォルトの名無しさん
2006/02/01(水) 03:43:040369デフォルトの名無しさん
2006/02/09(木) 12:45:22しかも遅レスで超スマソ
0370デフォルトの名無しさん
2006/02/10(金) 13:32:31クロージャはなくてもなんとかするけど、例外がないとちょっとつらい。
0371デフォルトの名無しさん
2006/02/10(金) 14:16:13NextSTEP 系列なら NS_DURING / NS_HANDLER / NS_ENDHANDLER
Panther 以降の Cocoa なら @try / @catch (/ @finally)
0372デフォルトの名無しさん
2006/02/10(金) 15:14:07クロージャってCommandパターンのことか?
0373デフォルトの名無しさん
2006/02/10(金) 17:17:40Stepstone -> NeXT -> Apple って権利が移ってると思ってたんだけど。
Apple が拡張した Objective-C のみが Objective-C って名乗れるのでは?
0374デフォルトの名無しさん
2006/02/10(金) 17:22:53さんくす。@try/@catch/@finallyか。あたらなディレクティブが増えてるんだな。
これって、Foundationでも使われているの?
つまりPanthor以降のCocoaでは@try/@catch/@finallyをふんだんに使っているのか気になる。
例外処理をつかう・使わないではプログラミングスタイルが大きく違うので。
>>372
違う。イメージはなんとなくわからなくもないが。
クロージャは手続きと、それがアクセス可能な変数をいっしょにしたもの。
クロージャを使うと、手続き(処理)をデータとして扱う事ができ、メソッドの引数に渡したりできる。
つまり引数として整数や文字列を渡すのと同じ感覚で手続き(処理)を渡す事が出来る。
LispやSchemeでは関数がクロージャ。RubyやSmalltalkではブロックがクロージャ。
コマンドパターンも処理をオブジェクトとするための手法ではあるんだけど、外の変数にアクセスできないため、クロージャとはふつういわない。
つか、クロージャは言語の機能、コマンドパターンはデザインパターンのひとつ。比較する対象が違う。
0375デフォルトの名無しさん
2006/02/10(金) 23:09:46Smalltalkのブロックは最初びっくらこいた。
if文がメッセージで、その引数がブロックなんだよな確か。
あそこまでドラスティックにはやりたかないけど。
0376デフォルトの名無しさん
2006/02/11(土) 00:47:21便利なのにね。button を押した時の callback を button 毎に設定する
時とか、イテレーションの処理本体を引数で渡したりとか。
0377デフォルトの名無しさん
2006/02/11(土) 00:51:08数字なんかのリテラルにもメッセージをおくって計算させてたと思う。
個人的にネタで「オブジェクト指向ならこれくらいしないとなぁ」って言ってたレベルより徹底してる
0378デフォルトの名無しさん
2006/02/11(土) 01:33:250379デフォルトの名無しさん
2006/02/11(土) 23:57:20後者は兎も角、前者は Cocoa ではアレだな、
ボタンのメソッドでアクションを登録するというよりは、
Interface Builder でボタンからコントローラにコネクションを張る
(どのコントローラのどのメソッドを実行するか指定する)ので...
まあクロージャあったほうが面白いけど。
0380デフォルトの名無しさん
2006/02/12(日) 07:18:26同意。376はVisualBasicが頭にあるんじゃないかな。
0381デフォルトの名無しさん
2006/02/13(月) 14:41:38@try関係は言語に組み込まれただけで、NS_DURINGとかのマクロと互換性あり。
Cocoaのほとんどのメソッドが例外を投げない状況に変化は無い。
>>372
クロージャは、下記が判り易いと思う。
ttp://kmaebashi.com/programmer/devlang/object.html
0382デフォルトの名無しさん
2006/02/13(月) 20:15:150383デフォルトの名無しさん
2006/02/14(火) 01:24:040384デフォルトの名無しさん
2006/02/14(火) 06:54:50違う。無名クラスからは生成された箇所のローカル変数にアクセスできない。
finalつけた変数にはアクセスできるらしいけど。
0385デフォルトの名無しさん
2006/02/14(火) 12:03:58そこそこ便利ではあるけど、クロージャではないね。
もっとも、クロージャのある言語にも無名クラスは欲しい(できれば
レキシカル環境へのアクセスのあるクロージャとしての構成で)。
0386デフォルトの名無しさん
2006/02/14(火) 23:30:07クロージャとは別に無名クラスが欲しい場面を教えてくれ。
参考にする。
0387デフォルトの名無しさん
2006/02/15(水) 06:05:480388デフォルトの名無しさん
2006/02/15(水) 06:28:42Schemeでも勉強してみようかな。
0389デフォルトの名無しさん
2006/02/15(水) 08:14:430390デフォルトの名無しさん
2006/02/16(木) 02:22:04なつかしいね。まだ開発やってんのかな?
0391デフォルトの名無しさん
2006/02/16(木) 13:49:29まだ続いてるよ(笑)
Gwydion Dylanは今はgccのバージョンアップ絡み?で停滞気味かね?
OpenDylan(Functional Developerのオープン版)に主力メンバーが注力してる感じ。
が、svcとか見る人でないと進展はないようにしか見えない罠(w
0392デフォルトの名無しさん
2006/02/16(木) 21:21:16どんな言語なの?
つか、このすれとはどういう関係で?
0393デフォルトの名無しさん
2006/02/16(木) 21:33:41Apple つながりでね。
0394デフォルトの名無しさん
2006/02/17(金) 15:09:24ずいぶんと古い文書が見つかった
0395デフォルトの名無しさん
2006/02/18(土) 00:15:18http://www.opendylan.org/
こことか、
http://monday.sourceforge.net/wiki/
ここらから眺めていくといいんじゃないだろか?
0396デフォルトの名無しさん
2006/02/18(土) 02:38:250397デフォルトの名無しさん
2006/02/18(土) 09:54:50それより、るびまの他言語訪問、今回はDylanらしい。
0398デフォルトの名無しさん
2006/02/22(水) 14:04:440399デフォルトの名無しさん
2006/02/22(水) 16:42:21前あったが落ちた。
0400デフォルトの名無しさん
2006/02/22(水) 23:27:34何が面白いのか理解出来んが、MONO に call-in するインターフェイスを
書けば良いんじゃないの。
0401デフォルトの名無しさん
2006/02/26(日) 19:25:310402デフォルトの名無しさん
2006/02/26(日) 19:48:550403デフォルトの名無しさん
2006/02/27(月) 03:09:51girlfriend を autorelease して渡す
奇特な友人は居ないと思われ...
0404デフォルトの名無しさん
2006/02/27(月) 10:46:540405デフォルトの名無しさん
2006/02/27(月) 19:06:40ちょっと彼女に会わせてあげる、みたいなノリじゃね?
0406デフォルトの名無しさん
2006/02/27(月) 20:52:00[myFriend release];
myFriend = nil;
0407デフォルトの名無しさん
2006/02/27(月) 21:14:14- (nil)release
{
[>>406 dealloc];
[super release];
}
0408デフォルトの名無しさん
2006/03/03(金) 05:32:070409デフォルトの名無しさん
2006/03/04(土) 00:41:330410デフォルトの名無しさん
2006/03/08(水) 18:51:45@implementation girlFriend
後はまかせた
0411デフォルトの名無しさん
2006/03/08(水) 19:28:07クラスはGirlですか
0412デフォルトの名無しさん
2006/03/08(水) 19:38:360413デフォルトの名無しさん
2006/03/08(水) 21:09:57{
self = [super init];
if(!self) return nil;
if( [aBoyFriend height] < 170.0 ) return nil;
boyFriend = [aBoyFriend retain];
return self;
}
0414デフォルトの名無しさん
2006/03/09(木) 20:17:14asyncSocket
smallsocket
等ライブラリがあるようですが、どれを使っても同じ問題が発生しています
問題
Javaで書かれたサーバーに接続し、Objective-Cクライアント側のsocketとstreamをcloseしてもサーバー側では分からないのです。
他の言語でクライアント側を書いた時は、クライアント側でcloseすると、サーバー側で検知されました。
これってOSXでは通常の動作でしょうか?どのようにしたら、サーバー側で検知できるでしょうか。
サーバー側のsocketに何かプログラムが必要でしょうか。
現在は、javaサーバー側のsocketでタイムアウトが発生するまで検知されません。
どなたか教えて頂けませんか。
0415デフォルトの名無しさん
2006/03/09(木) 22:36:320416デフォルトの名無しさん
2006/03/10(金) 11:06:52LANの外に出るとほとんど機能しない。
クライアントが先に送信バイト数を送るか、最後に終了コードを送って、サーバ側に切断させるのが正解。
またサーバ側は、タイムアウトでも切断するようにする。
0417デフォルトの名無しさん
2006/03/10(金) 13:01:38closeが検出されないことが驚きでした
このような動作は Objective-C+OSX だけではないでしょうか
Realbasicでも検出されました
javaやWINDOWS環境でも検出されます
何か間違っているでしょうか
0418デフォルトの名無しさん
2006/03/10(金) 17:15:46その後閉じる。
0419デフォルトの名無しさん
2006/03/10(金) 17:31:33なので とりあえず close だけで 閉じても サーバー側ではわからないのですね
正常にクライアントソケットを閉じてるのですからサーバーソケット側で
他の言語環境と同じように検知したいのですが
こういう動作はObjective-C+OSXが初めてです
なぜ検知をしたいかというと不正なクライアントを識別する機能と関係しています
もし検知されないとしたら Objective-C+OSX のクライアントから 適当なサーバーに繰り返し接続して
放置しておくだけで DoS攻撃ができちゃいますよ
0420デフォルトの名無しさん
2006/03/10(金) 19:18:150421デフォルトの名無しさん
2006/03/10(金) 19:25:46帰れ馬鹿。
0422デフォルトの名無しさん
2006/03/10(金) 19:45:48これからもずっと狭い世界で生きていってください
0423デフォルトの名無しさん
2006/03/10(金) 20:02:22そしてキミのトラブルwに類似した例で困ってる人なんか、ググっても誰も見つからなかったんだろ?
そこで気付くべきだ。狭い世界で生きてるのは自分だとなw
0424デフォルトの名無しさん
2006/03/10(金) 20:07:46だいたいソケットのcloseは、ルータを跨ぐと伝わらないからインターネットでは使えない。
それに、終了コードで文字コードとかって何の話だ。
telnetで試せないような物を作っている気配がするぞ。
コマンドストリームなら英文字列のコマンドを送る物だし、データストリームは先にバイト数を通知する物だ。
まずネットワークプログラムの本で、定石なプロトコルの作り方を勉強した方が早いと思うぞ。
あとうまくいかない時は、まっさきに自分の不勉強を疑え。
そんな弱い心だと、腕が上がらんぞ。
0425デフォルトの名無しさん
2006/03/10(金) 20:44:56>ソケットのcloseは、ルータを跨ぐと伝わらない
Objective-C+OSX 以外は伝わりますよ
java RealBasic その他ウィンドウズの環境でも
0426デフォルトの名無しさん
2006/03/10(金) 21:17:320427デフォルトの名無しさん
2006/03/10(金) 21:58:46>終了コードを送る場合 文字コードとかあるじゃないですか
意味わかんね。自分の中で話閉じるな。
0428デフォルトの名無しさん
2006/03/10(金) 22:00:48>なぜ検知をしたいかというと不正なクライアントを識別する機能と関係しています
だったら、なぜサーバからクローズしない。
0429デフォルトの名無しさん
2006/03/10(金) 22:35:41socketのcloseとdisconnectの仕様についてが元々の質問です
Objective-C+OSX 以外のsocketの仕様については一部述べています
その上でObjective-C+OSXのsocketの仕様についてお尋ねしているのです
問題を切り分けた上で質問しているということです。
>だったら、なぜサーバからクローズしない。
httpのように直ぐ切断するものでなくて 接続が続くタイプのサーバーだからです
0430デフォルトの名無しさん
2006/03/10(金) 22:40:42プロトコルも当然自分で規定してるんだろう?
切断用のコマンドなりなんなり決めればいいじゃないか
0431デフォルトの名無しさん
2006/03/10(金) 22:50:12ただsocketの段階で他の環境と動作が異なっているので 質問しました
プロトコルがテキストベースの場合CRLFなどを読むコードを書かないとsocketの切断処理を書けない
のであれば 特殊だと思いましたので 間違っているのかどうか確認したかったのです
とりあえず動かすということでなくて 問題を切り分けした上で プロトコル関係なく
OSXのsocketの動作として どうなのかが質問のポイントです
0432デフォルトの名無しさん
2006/03/10(金) 22:52:55のであれば
正:プロトコルについて いろいろ決めて そのコードを書かないとsocketの切断処理を書けない
のであれば
0433デフォルトの名無しさん
2006/03/10(金) 22:58:21RealBasic, Java, Windows環境でも検出されるというが、
言語環境とOS環境も混同してる。
当然、UNIX Cの socketでも確認したんだよな?
0434デフォルトの名無しさん
2006/03/10(金) 23:06:26ネットワークプログラミングのスレとかに移動してもらえると助かるのだが。
0435デフォルトの名無しさん
2006/03/10(金) 23:06:35あなたが勝手に間違っているだけとしか 思えませんが
UNIX C の socket とは何ですか?
なぜ そんなもので確認する必要があるのですか?
0436デフォルトの名無しさん
2006/03/10(金) 23:07:04と言ってもObjective-Cから中で呼び出しているようですが 今度確認してみます
Windowsの言語と言っても沢山ありますから ウィンドウズ環境とまとめただけです
TCP socketのクローズについて聞いているのですが
プロトコルのクローズについての返答が多いです
0437デフォルトの名無しさん
2006/03/10(金) 23:09:58こういうやつが多いのですか マカーは
0438デフォルトの名無しさん
2006/03/10(金) 23:17:500439デフォルトの名無しさん
2006/03/10(金) 23:22:39質問の意味が直ぐわかる方が半分ぐらい
うざがってか なんでか からむ人が半分ぐらい
という感じだったからです
0440デフォルトの名無しさん
2006/03/11(土) 00:16:27単にライブラリの誤用だと思いますけど。
ライブラリは止めて、NSStreamかCFStreamを直接使ってみたらどうです?
0441デフォルトの名無しさん
2006/03/11(土) 00:38:06ライブラリといってもソースを読みましたが単純なものでしたが
できるだけ低レベルAPIでやってみます
0442440
2006/03/11(土) 01:08:38クライアントが終了コマンドを送ってそのままクローズすると、コマンドが届かなかったりします。
切断は、終了コマンドを受け取ったサーバ側が行う事が定石です。
0443デフォルトの名無しさん
2006/03/11(土) 01:10:200444デフォルトの名無しさん
2006/03/11(土) 01:32:310445デフォルトの名無しさん
2006/03/11(土) 05:51:19Objective-C+OSXのsocketでcloseを検知しませんでしたので質問しました
予期しないクライアントの接続方法についてサーバー側では常に定石外のことも考えるべきだと思います
。を使わない時は、も使いません いつも使わないわけではありません
失礼しました
0446デフォルトの名無しさん
2006/03/11(土) 14:40:010447デフォルトの名無しさん
2006/03/15(水) 00:36:570448デフォルトの名無しさん
2006/03/16(木) 21:03:39-- not me. you never know what's been released in there..
0449デフォルトの名無しさん
2006/03/17(金) 08:03:12-- 僕は遠慮しとくよ。 何がリリースされてるか判らないからね。
0450http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 21:30:52もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0451デフォルトの名無しさん
2006/03/25(土) 23:22:170452デフォルトの名無しさん
2006/03/27(月) 10:25:14( ⌒ ヽ MonaOSにlibobjc移植してみたけどコンパイルできない・・・
∪ 。ノ
∪∪
0453デフォルトの名無しさん
2006/03/28(火) 11:45:350454デフォルトの名無しさん
2006/03/28(火) 12:43:09C++とかC#とかぐちゃぐちゃだよ
単にObjective-Cが使いたかっただけなんだ
0455デフォルトの名無しさん
2006/03/28(火) 18:55:290456デフォルトの名無しさん
2006/03/28(火) 19:10:570457デフォルトの名無しさん
2006/03/29(水) 00:51:280458デフォルトの名無しさん
2006/03/29(水) 20:49:220459デフォルトの名無しさん
2006/03/30(木) 09:50:39どっちも使えねぇという意味で違わない
0460デフォルトの名無しさん
2006/03/30(木) 19:29:03alloc] init] と new ] の違いは、
後者は普通使わなくて前者をよく使うというだけでは、慣習的に。
0461デフォルトの名無しさん
2006/04/02(日) 01:58:470462デフォルトの名無しさん
2006/04/02(日) 10:24:390463デフォルトの名無しさん
2006/04/02(日) 13:46:300464デフォルトの名無しさん
2006/04/02(日) 15:01:110465デフォルトの名無しさん
2006/04/02(日) 15:14:500466デフォルトの名無しさん
2006/04/02(日) 16:00:49いい読みだが、漏れはあんな負け組さんじゃない。
0467デフォルトの名無しさん
2006/04/02(日) 16:51:42これだろ?
「Objective‐C―MacOS Xプログラミング入門 MacOS Xプログラミング入門」
荻原 剛志 (著)
Human Interface Guidelines も復刊してくれ
0468デフォルトの名無しさん
2006/04/02(日) 19:09:490469デフォルトの名無しさん
2006/04/02(日) 19:53:050470デフォルトの名無しさん
2006/04/02(日) 22:32:34あれってどうやって実装してるの?
0471デフォルトの名無しさん
2006/04/02(日) 23:36:49単純にsingletonじゃねーの?
if (_object==nil){
_object = [[Hoge alloc] init];
}
return _object;
Hoge alloc, Hoge initは非公開にしてこんなかんじ?
もうちょっといろいろしてると思うけど
#そういう話じゃない?
0472デフォルトの名無しさん
2006/04/03(月) 00:26:410473デフォルトの名無しさん
2006/04/03(月) 09:31:45普通にinitでもファイルスタティックな変数に入れた共有インスタンスを返せばいい。
0474デフォルトの名無しさん
2006/04/03(月) 13:10:45Objective-C Mac OS Xプログラミング
荻原 剛志 (著)
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797333340/
0475デフォルトの名無しさん
2006/04/03(月) 19:53:46Singletonっていうんですね。デザインパターンについてはあまり勉強してませんでした。
0476デフォルトの名無しさん
2006/04/03(月) 20:27:51前作を持っている人は購入の必要はなさそうですか?
0477デフォルトの名無しさん
2006/04/05(水) 03:47:17ヘッダインクルードすると大量のエラーが出ますが
やっぱりアウト?
0478デフォルトの名無しさん
2006/04/05(水) 06:57:200479デフォルトの名無しさん
2006/04/08(土) 18:24:500480デフォルトの名無しさん
2006/04/08(土) 20:34:310481デフォルトの名無しさん
2006/04/09(日) 01:15:38前の本との比較としては
・CHAP13「アプリケーションの構造」CHAP19「キー値コーディング」が追加。
・CHAP11「オブジェクトのコピーと保存」にアーカイブとプロパティリストについて追加
・第8章「例題:カードゲームのシミュレーション」が削除
という感じ。ディープすぎる内容が本文からコラムに移されていたりと
読みやすさとしても良くなってると思うよ。
0482デフォルトの名無しさん
2006/04/09(日) 07:59:45高いしなー
0483デフォルトの名無しさん
2006/04/11(火) 15:22:510484デフォルトの名無しさん
2006/04/11(火) 15:57:46ヤフオクで高値で売ろうとしていたが、
復刊に気付かず売り抜けられなかったってこと?
0485デフォルトの名無しさん
2006/04/11(火) 16:45:44wktkしながら読みはじめる所。
次は、ヒレガス本のTiger版が欲しい。
つか、TigerであれだけAPIが増えたのに、それ関係の書籍が出ていないし。
0486デフォルトの名無しさん
2006/04/11(火) 17:21:24出したがらない。mixiのどこだったか忘れたけど2年がかりで
Macプログラム本を書いたのにボツにされた人がいた、とか
書いてあったよ。
0487デフォルトの名無しさん
2006/04/11(火) 18:22:280488デフォルトの名無しさん
2006/04/11(火) 18:42:14是非Web公開してほしいじゃないか
0489デフォルトの名無しさん
2006/04/11(火) 19:06:19んなこたあない
Macプログラム本は種類が少ないから結構売れる。
0490デフォルトの名無しさん
2006/04/11(火) 20:48:52じゃあおまえが出版社つくって売ってやれ
0491デフォルトの名無しさん
2006/04/14(金) 11:37:31ソースきぼん。
0492デフォルトの名無しさん
2006/04/14(金) 17:03:33購入推奨。
ただし、スレッド周りダメっぽい。
volatileとメモリバリアの区別が付いていないように読める。
0493デフォルトの名無しさん
2006/04/14(金) 23:25:05本人か周りの人だろ。ローカスか広文かBNN
って、全部出版社潰れたんだっけ?
0494デフォルトの名無しさん
2006/04/16(日) 14:31:49たしか、別タスクで書き替えられる可能性のある変数の変更がちゃんと反映されるように保障する指定
0495デフォルトの名無しさん
2006/04/16(日) 15:16:35それもあるけど最適化もしない。
while (i--);
なんて文は大抵最適化で消されるけど、
iがvolatileだったら消されずに実行される。
0496デフォルトの名無しさん
2006/04/17(月) 00:03:09値段見て愕然とした、米買えなくなるから諦めた。
0497デフォルトの名無しさん
2006/04/17(月) 00:23:18違う。最適化コードの出力を禁止するだけ。
組み込みとかでメモリにI/Oが割当たっている時に、
書き込みが省略されたりすると意味が変わってしまう時に使う。
一方ハードウェアの実行時最適化(命令の並べ替え)には影響しないので、
マルッチスレッド下での排他制御には意味を持たない。
メモリバリアとか、メモリの可視性とかを調べよう。
0498デフォルトの名無しさん
2006/04/17(月) 01:04:49>>494は排他なんて言ってない。
変更が反映されると言ってるだけだから、参照だけだろ。
むしろvolatileだけで排他なんかかけたら問題だw
0499デフォルトの名無しさん
2006/04/17(月) 08:49:31違う。参照も保証されない。
お前もメモリバリアを勉強し直せ。
0500デフォルトの名無しさん
2006/04/17(月) 09:23:370501デフォルトの名無しさん
2006/04/17(月) 12:15:16そうね。
Cの場合は下記を参照
http://www.yuasa.kuis.kyoto-u.ac.jp/~yasugi/4/par.html
Javaはこのあたり参照
http://www.netgene.co.jp/java/concurrentTips.html
C/C++の場合は、volatileはスレッド間のメモリ可視制御を何もやっていないけど、
Javaについては意味がある。
現状Cocoaの場合、インラインアセンブラでメモリバリアを差し込むか、
メモリバリアを入れるOSコールを呼び出す必要がある。
Cocoaが下請けに使っているpthreadについては、「メモリ同期を行う関数」一覧があるので調べられる。
が、Cocoaのどのクラスのどのメソッドが該当するのかは、ドキュメントが見当たらないので推測になる。
念のために書いておくが、494の認識はマルチプロセッサ登場前は概ね正解だった(それでもCPUによる)。
そのため嘘を書いている本は大量に残っている。
ちゃんとした本はあまり無いが、Effective C++を書いたエロイ人のドキュメントもあるので、
英語が読める人には推奨しておく。
http://www.nwcpp.org/Downloads/2004/DCLP_notes.pdf
0502デフォルトの名無しさん
2006/04/17(月) 16:08:59マルチスレッド書いたことないのですいません
0503デフォルトの名無しさん
2006/04/17(月) 17:02:49問題無い。lock系の操作はメモリバリアが入ってる。
ダメなのは、「4バイト以下のvolatile変数を使えばロックを使わないで済む」という勘違い。
複数のスレッドが変数にアクセスする場合の選択支は二つあって、
・常にlockして読み書きする。
・読み書きのポイントにメモリバリアを入れる。
のどちらか。
後者の方が性能面で有利だけど、前者を使う方がミスが少ない。
@synchronizedを使うのが一番確実。
ちなみにダメな理由を大雑把に説明すると、最近のCPUはアセンブラコードの順番を勝手に入れ替えて最適化処理をやっている。
その結果、コード上とは異なる順番でメモリ上の変数が書き換わったりしている。
これは単一のCPUから見る限り問題無い(ように最適化されてる)のだけど、他のCPUで動作するスレッドから見ると不味い事になる。
例えば、カウンタとフラグに関係を持たせたりしていると、タイミング次第で誤動作してしまう。
他にもCPU単位にメモリキャッシュがあったりするので、一部の変数の書き換えだけが延々と他のCPUに見えない時もある。
0504デフォルトの名無しさん
2006/04/17(月) 17:33:08その・・・日本語で・・・
0505デフォルトの名無しさん
2006/04/17(月) 18:00:46期待値に達しているか判らないが、萩原本にはNSLock関係も載っている。
コラムのvolatile関係を読み飛ばせば問題無いのでは無いかと思う。
0506デフォルトの名無しさん
2006/04/17(月) 20:46:350507デフォルトの名無しさん
2006/04/17(月) 21:22:31リア工房の俺でも買えたぞ
0508デフォルトの名無しさん
2006/04/17(月) 21:57:51素直に諦めろ
0509デフォルトの名無しさん
2006/04/17(月) 22:05:040510デフォルトの名無しさん
2006/04/17(月) 22:38:150511デフォルトの名無しさん
2006/04/17(月) 23:59:040512デフォルトの名無しさん
2006/04/18(火) 00:38:330513デフォルトの名無しさん
2006/04/18(火) 07:02:470514デフォルトの名無しさん
2006/04/18(火) 08:59:260515デフォルトの名無しさん
2006/04/18(火) 19:43:490516デフォルトの名無しさん
2006/04/24(月) 21:07:270517デフォルトの名無しさん
2006/04/25(火) 01:18:54やっぱC系の言語って基本的に趣味の領域なのかなと。
大規模開発だと「プログラマに任せる」っていう設計思想は
危険すぎるから。
「これで、Objective-Cのオブジェクト型は、原理的に動的型であり、
静的な型は目安にすぎないことが理解できただろう。
言語として型の厳密性を保証することはなく、適切なオブジェクトが
代入させるかどうかの判断は、プログラマやフレームワークにまかされることに
なる。実際にコードを書いてみると、このいわばルーズな文法が、非常に
楽であることに気づく。
しかし、次のような疑問も浮かぶだろう。そんないい加減なコンパイルで、
本当に実行時大丈夫なのか、と。これに対しては、次のように答えることが
できる。正しいオブジェクトが渡るかどうかはプログラマが保証することで
あり、ある程度の経験を積めば、基本的には大丈夫だろう、と。 」
なんてことを自信満々に言っちゃってる『ダイナミックObjective-C』の
作者さんはきっと企業内でコード書いたことないんだろうなあ。
ガベコレも導入するみたいだけど、なぜ Java を捨てたのか?Jobs との因縁か?w
こんなマイナー言語をメインに据える Apple ってソフト自社生産の任天堂路線?
デザイン的に洗練されれば Windows でもいいのに、Vista のスタートボタンを
糞にした MS に未来はないよ。とほほ
0518デフォルトの名無しさん
2006/04/25(火) 01:26:51一定比率で存在するへたれプログラマを相手にしてないんじゃね? > Objective-C の適用領域
0519デフォルトの名無しさん
2006/04/25(火) 02:40:51Java は捨てていないし、小規模開発が趣味の世界ではない訳だが。
型云々も大事だけれど、個人的にはクロージャを捨てたのが残念。
0520デフォルトの名無しさん
2006/04/25(火) 04:32:44著者は企業プログラマじゃなかったっけ?
0521デフォルトの名無しさん
2006/04/25(火) 06:47:31>Java は捨てていないし
つ http://developer.apple.com/documentation/Cocoa/Conceptual/LanguageIntegration/index.html
Important: Features added to Cocoa in Mac OS X versions later than 10.4 will not be added to
the Cocoa-Java programming interface. Therefore, you should develop Cocoa applications using
Objective-C to take advantage of existing and upcoming Cocoa features.
0522デフォルトの名無しさん
2006/04/25(火) 06:54:18型チェックがあるおかげで、へたれでもとりあえず動くものが作れるってのは
企業にとってプラスなのかマイナスなのか。
0523デフォルトの名無しさん
2006/04/25(火) 08:07:35「型チェックがあるおかげで、へたれでもとりあえず動くものが作れる」→×
「型チェックがあるおかげで、へたれがコンパイルを通すのに時間がかかり、スケジュールが遅れる」→○
へたれが作ったものはコンパイルできるってだけで、動くって言いきるには無理があるぞ。
Objective-C ってーか動的な型付け言語は、「プログラマ==ユーザ」という環境下で最大のメリットが
出てくるもんだと思う。
0524デフォルトの名無しさん
2006/04/25(火) 08:20:11便利なのは認めるけど、自分をあんまり信じられないから
コンパイル時の型チェックで内部変更の変更必要箇所を探させてたから
チェック方法が1つ減るから。
#Squeak(Smalltalk)も同じ理由で苦手
0525デフォルトの名無しさん
2006/04/25(火) 09:29:04「とりあえず今までどおり使えるけど、Javaはこれ以後サポートしないよ」
っていうのは、Javaを半ば捨てたのと一緒では?
>523
誰かが言ってたんだけど
「どんなプログラマでもJavaでは平均的なプログラマになれる」
「LISPではプログラマは力量にあったプログラムしか書けない」
というのがあった。Javaだったらヘタレを雇っても安心、というのはある。
Obj-Cだったら能力のあるプログラマじゃないと
良いものを書いてもらえなさそう。
そういう意味で >524 には激しく同意。自分は信じられない。
0526デフォルトの名無しさん
2006/04/25(火) 09:29:300527デフォルトの名無しさん
2006/04/25(火) 10:07:15が、単に経験が足りない。
企業内でJavaを使ってWebベースのシステムを書かされているエンジニアは多い。
しかし良く考えれば、XMLやJSPをJavaのコードと結合するためにリフレクションまみれのフレームワークを使わされている。
そしてある日、「それだったら、全部動的言語で良くね?」と悟る。
実際rubyやphpでシステムを書き出すと、馬鹿らしくてJavaを使う気が失せるし、XMLがインフレを起こしている事に気がつく。
その後にObjective-Cを触ってみると、たぶん作者さんと同じ心境になれる。
>>519
クロージャをCのランタイムに載せたら神だと思うが。
匿名クラスや、匿名メソッドと勘違いしていないか?
0528デフォルトの名無しさん
2006/04/25(火) 10:08:09WinでもMacでも動くんだから。
適材適所でしょ。
0529デフォルトの名無しさん
2006/04/25(火) 12:30:06>Java VM って Java で書いてあるの?
確か、C/C++で書かれてあったはず。
0530デフォルトの名無しさん
2006/04/25(火) 12:59:50Cocoa-Javaはこれ以上新しい機能を追加しないってだけで
Javaを捨てたわけではないと思うけど。
0531デフォルトの名無しさん
2006/04/25(火) 13:05:36なるほど。
じゃあ、Java 自体が趣味の領域なんだろうね。 >517
0532デフォルトの名無しさん
2006/04/25(火) 15:41:20チェックの多い言語は書き方がある程度強制されるから多人数向き
0533デフォルトの名無しさん
2006/04/25(火) 17:03:05まだ捨てられてないんだっけ?
0534デフォルトの名無しさん
2006/04/25(火) 19:03:44それより面倒なのがプリミティブな型を使うとき
ヘッダーにメソッド書いておかないとコンパイルできなかったり、動作がおかしかったり
NSNumberを使うとタイプ量が多くて面倒臭い
0535デフォルトの名無しさん
2006/04/25(火) 19:24:310536デフォルトの名無しさん
2006/04/25(火) 20:20:510537デフォルトの名無しさん
2006/04/25(火) 20:35:51その通りだな。
0538デフォルトの名無しさん
2006/04/25(火) 21:05:36既に退職してる。
0539デフォルトの名無しさん
2006/04/25(火) 21:12:11あほですか?
低レベル(基礎的)な部分でC系の言語を使うのは全く問題ない。
フレームワークもまたしかり。
ただそういったランタイムor実行環境に依存する部分を公開するのは頂けない。
バグや変更があったときに影響が大きすぎる。
だからObjective-Cは頂けない。なんでもできるとか言って喜んでる奴は
やっぱり趣味でコード書いてる奴の言うことだと思う。
構造体化でカプセル化も容易にくずせる言語をObjectiveって...
「オブジェクトっぽいC」もしくは「オブジェクト的な皮を被せただけのC」
ってことなんだね。
0540デフォルトの名無しさん
2006/04/25(火) 21:30:28うんまあ、最後の段落はまさにその通りなんだけどさ、
キミの使ってるOSって何で書かれてるかな。
多分Cだと思うよ。
それはなんでかな。
ランタイムや実行環境をいじれるからだよね。
ハードウェアに合わせてバリバリチューンも出来るからだよね。
でまあ、キミの価値観だとOSって趣味の領域なのかね。
0541デフォルトの名無しさん
2006/04/25(火) 21:32:330542デフォルトの名無しさん
2006/04/25(火) 21:55:48最終成果物がイメージ(設計)できると動的のほうが効率いい
0543デフォルトの名無しさん
2006/04/25(火) 22:49:090544デフォルトの名無しさん
2006/04/25(火) 22:53:52まあ極端な言い方をすればそうだね。
OSを純粋な「ソフトウェア」かと言えば俺は違うと思うから。
要は一部の「オタク」的な人間がハードウェアに依存した
部分でごちゃごちゃやってる部分はみたくないというか、
ソフトにとっちゃ本来はどうでもいいことじゃない?
これからは少しは変わるかも知れないけど、依然として
iLifeを使いたければMac上でなければならないし、Windowsで
使い勝手のよかったソフトはマック上で同じように動かすこと
ができないなんて、もしくは買い直せなんてユーザーにとったら
やっぱり何それって感じだと思うよ。
所詮はハードのおまけかと。
個人ユースだったらOSがバージョンアップするごとに
ソフトが動かなくなっても「好きで付いてきてるんだろ」的な
態度でもなんとかなるけどw、
企業向けじゃそうはいかないからな。
なぜJavaがこれほど社会的な基盤として、また企業の商売道具として
発展し続けているかといえば、ソフトはソフトだと言えるところに
俺はあると思ってる。だからこそオープンソースという勢力を巻き込んで
そのソフトを使用するのに今までウン万円も支払わなければいけなかったことが
変わりつつあるんじゃないかな。Eclipse しかり、OpenOffice しかり。
Objective-C をかじってみて気がついたのは、Appleは所詮ソフトを
Macのおまけとしかみてないんじゃないかってことなんだよ。
0545デフォルトの名無しさん
2006/04/25(火) 23:42:550546デフォルトの名無しさん
2006/04/25(火) 23:50:26それは悟りじゃない。単に面倒くさくなっただけ。
動的言語を使用した方が良い局面が増えているのは事実だが、
一事が万事というのはプログラマ的じゃない。
0547デフォルトの名無しさん
2006/04/26(水) 06:56:48Objective-Cだってそういう発想から作られている。
でも今現在、出来るだけ今あるものを使おうとすると、Objective-Cはありえない。
JavaやC++の最大のメリットは型チェックでもクラス指向でもなく、使っている人が多いということ。
それとソフトがハードのおまけと考えてるのはAppleより、SunやIBM。
ハードを第一に考えるから、オープンソースに肩入れできる。
Appleも頑張っちゃいるが、Appleにとってはソフトも大事な売り物である以上、
全てをユーザーに委ねる訳にはいかない。
Xcodeがあれば俺は満足だけどね。
0548デフォルトの名無しさん
2006/04/26(水) 11:56:21>それとソフトがハードのおまけと考えてるのはAppleより、SunやIBM。
IBM にとってはハードもオマケだろ。サービスで喰ってるんだから。
>ハードを第一に考えるから、オープンソースに肩入れできる。
RedHat みたいな企業の事はどうお考えで?
0549デフォルトの名無しさん
2006/04/26(水) 12:35:51使用者が多いほうがえらい的な話になってるようなんで
別板いったほうがよくねすか?
Java や C++ に開発者がいっぱいいて資産がたくさんあって
うれしいならソレ使えばよろし。ここは「メモリを直接ドライブできるのに
動的結合できるなんて、ハァハァ」ていうひとのスレだと思うし。
0550デフォルトの名無しさん
2006/04/26(水) 13:27:32どうもCが嫌いみたいだから、C叩きスレとかに行けばいいと思う。
0551デフォルトの名無しさん
2006/04/26(水) 14:28:12その場に応じて主張を変える所なんかもそっくりだし。
枯れ木も山の賑わい。
ほっとけばいいんじゃない?
0552デフォルトの名無しさん
2006/04/26(水) 21:19:11ではなんで今あって、よっぽど使ってる人が多い言語の Cocoa-Java Interface を
Apple は捨てるんでしょうね?
Microsoft の .NET 戦略をみてもソフト会社だけあってか、ハードから
隔離させようとしてるのに、Apple は何でこんなマイナーで泥くさい言語にこだわるのか。
0553デフォルトの名無しさん
2006/04/26(水) 21:42:45まあAppleの戦略について、ここで語ってもしかたないべ。
ところでマイナーなのは間違いないが、Objective-Cは泥くさいか?
エレガントでスマートなコードを書いてる自信はないけどさ。
0554デフォルトの名無しさん
2006/04/26(水) 22:02:38setValueForKey(a,b)なんて泥臭くてw
0555デフォルトの名無しさん
2006/04/26(水) 22:09:15ハードとは十分「疎」になってるでしょ。OPENSTEP は SPARC でも
動いてたんだから。Apple からしたら、Java の様に OS からも「疎」
にする必要は無いし、Objective-C で問題無いんじゃないの。
C の資産を丸ごと使えるわけだから、ユーザベースが少ない事が問題に
なるケースは少ないだろうし。
0556デフォルトの名無しさん
2006/04/26(水) 22:35:07Mac OS Xネイティブアプリケーション開発用としては、Javaを捨てたってこと
でしょ。そんな余裕があったらCocoaの機能増やすし、JavaはJavaで
Cocoaに併せてる暇があったら、さっさと6.0に備える、ってことでしょ。
実際5.0 Release 4のリリースは困難を極めたわけだし。Developer Preview 7
まで行くなんていままで無かったぞ。
Java自体は開発しつづけないと、サーバOSとしての用途が恐ろしく限られて
しまうので、結構必死に開発してるようだが。
あとCocoa+Javaという形じゃなくて、Java側からJavaのやり方で、Cocoaの
ビューをAWT内で使う方法とかは作られてるね。Cocoa Componentとか。
0557デフォルトの名無しさん
2006/04/26(水) 22:36:460558デフォルトの名無しさん
2006/04/26(水) 23:05:32そこは本質ではないんだろうけど。
0559デフォルトの名無しさん
2006/04/27(木) 08:37:51http://pcweb.mycom.co.jp/column/objc/006/
0560デフォルトの名無しさん
2006/04/27(木) 10:47:220561デフォルトの名無しさん
2006/04/27(木) 12:37:41機械的にバインディングを作れないので、力尽きたのでは無いかと思われ。
あとJavaのGCが動くタイミングで落ちる等の不具合が、とうとう直せなかったような気がする。
0562デフォルトの名無しさん
2006/04/27(木) 13:45:15そういうバグがあったのか。
もしかしてそれって、
Cocoa+Java で(明示的に生成していない) NSAutoreleasePool でコケてたのと根は一緒?
0563デフォルトの名無しさん
2006/04/27(木) 20:32:380564デフォルトの名無しさん
2006/04/27(木) 20:51:24それはすごく欲しい。
0565デフォルトの名無しさん
2006/04/27(木) 21:30:400566デフォルトの名無しさん
2006/04/27(木) 22:20:460567デフォルトの名無しさん
2006/04/27(木) 23:03:42SmalltalkならSUnit、JavaはJUnitがありますが
0568デフォルトの名無しさん
2006/04/27(木) 23:07:04ttp://www.cocoadev.com/index.pl?UnitTesting
あたり。
0569デフォルトの名無しさん
2006/04/28(金) 02:43:15Cocoaの実用的な範囲であれば、リフレクションでなんとかなる。
ポージングとかの変態領域は、JDK7で予定されている動的クラス生成を待つ必要があるだろう。
0570デフォルトの名無しさん
2006/04/28(金) 02:47:10何をやるにも困らないぐらいのライブラリがあったし。
0571デフォルトの名無しさん
2006/04/28(金) 04:01:470572デフォルトの名無しさん
2006/05/01(月) 08:08:13>JavaやC++の最大のメリットは型チェックでもクラス指向でもなく、使っている人が多いということ。
激しく同意だなーこりゃ
0573デフォルトの名無しさん
2006/05/01(月) 08:11:040574デフォルトの名無しさん
2006/05/01(月) 09:25:49一つしか言語を使っちゃ行けないわけでなし。
0575デフォルトの名無しさん
2006/05/01(月) 11:05:390576デフォルトの名無しさん
2006/05/01(月) 13:09:14set(value := a, key := b)
と書かせる言語も幾つかあるね。
0577デフォルトの名無しさん
2006/05/01(月) 16:13:06AppleScriptもレコード使えばそういうことができるな。
0578デフォルトの名無しさん
2006/05/01(月) 23:06:49なんかがある。Lisp 系と Smalltalk 系で扱いはちょっと違うけど。
0579デフォルトの名無しさん
2006/05/02(火) 09:57:50PL/SQLもいけるよ。
Oracleの拡張かもしんないけど。
0580デフォルトの名無しさん
2006/05/02(火) 10:05:550581デフォルトの名無しさん
2006/05/02(火) 11:24:48IBMやMSのサーバのストアードプロシージャは、PL/SQLじゃないの?
てっきりIBMのDB2がオリジナルで、ISOで標準化された物だと思っていたよ。
0582デフォルトの名無しさん
2006/05/02(火) 12:03:14IBM DB2は SQL PL
MSは Transact-SQL
というところでスレ違い化してきたので、あとはぐぐって。
0583デフォルトの名無しさん
2006/05/07(日) 15:27:54書いてあるという話...
うちでは man gcc-4.0 しないとダメだったけど。
http://theocacao.com/document.page/258
0584デフォルトの名無しさん
2006/05/09(火) 19:12:24VBも仲間にいれてやってください・・
0585デフォルトの名無しさん
2006/05/09(火) 23:35:34Smalltalk 系はメッセージ式の一部であり、構文拡張にもなるのが良いね。
単なる引数のラベルじゃない所が気持ち良い。
0586デフォルトの名無しさん
2006/05/18(木) 10:23:04VB のは本質的に違うんじゃない?
もしそれが OK なら Perl や Ruby も OK になる
0587デフォルトの名無しさん
2006/05/18(木) 13:15:100588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
2006/05/22(月) 23:28:32では早速はじめの一月分の金を払ってくださいw
0590デフォルトの名無しさん
2006/05/23(火) 00:12:110591デフォルトの名無しさん
2006/05/25(木) 11:37:57いや、「気がするけど」じゃなくて「一部である」と強気に主張してみる。
0592デフォルトの名無しさん
2006/05/25(木) 14:13:47セレクタの一部で分離、再配置はできない仕組み。
Objective-C も原則同じなのでは?
receiver do: #something for: #me
receiver …… メッセージレシーバ
do: #something for: #me …… メッセージ
do:for: …… メッセージセレクタ、もしくは、メソッド名
(前者はメッセージ寄りの呼び名、後者はメソッド寄りの呼び名。コロンも含める)
#something と #me …… 第1引数と第2引数
一般的な記法に当てはめると、
receiver.do:for:(#something, #me)
だから、LISP の機能の流れをくむキーワード引数とは別物。
0593デフォルトの名無しさん
2006/05/26(金) 09:15:09位置で指定することも、キーワードで指定することも両方できるうえに、
該当しないキーワードを自動的にDictionaryにいれさせることも可能。
例えばHTMLタグを生成するようなメソッドを定義するとき、知らないキーワードが指定されたら
それはHTMLタグの属性名だと判断して属性を出力する、なんてことができる。
スレ違いだけど、参考までに。
0594デフォルトの名無しさん
2006/05/26(金) 13:28:59と思ったが、メッセージ送信にそんなコストかけてらんないか・・・
0595デフォルトの名無しさん
2006/05/26(金) 13:52:28存在しないキーワード付きの変数が現れたときに、
エラーにするかわりにmapを構築して渡すだけでそ。
コストはゼロでは?
0596デフォルトの名無しさん
2006/05/26(金) 16:35:54なので、NSStringみたいな初期化構文はあっても良いかもしれない。
配列
[self dispose:@[@"Basic", @"SQL"]];
辞書
[self assess:@{@"Basic" => @"garbage", @"SQL" => @"taint"}];
構文糖だな(--;;
0597デフォルトの名無しさん
2006/05/29(月) 15:20:11これじゃダメなのかえ?配列の場合だけど。
0598デフォルトの名無しさん
2006/05/29(月) 15:22:120599デフォルトの名無しさん
2006/05/29(月) 16:08:02それの省略構文に過ぎないから構文糖。
0600デフォルトの名無しさん
2006/05/29(月) 16:10:580601デフォルトの名無しさん
2006/06/24(土) 00:58:44【境界を越える: Javaモデルを超える型定義戦略】
http://www-06.ibm.com/jp/developerworks/java/060621/j_j-cb05236.shtml
安全性と柔軟性
静的言語か動的言語かという議論の要点は、ある意味で安全性対柔軟性か、という点に尽きます。
静的言語の支持者達は、より安全な言語が良いのだと信じています。
動的言語の支持者達は、安全性のために費やされる労力を嫌います。
彼らにとって言語を評価するための鍵は、プログラマーの効率を最大にするためにいかに
素早く概念を表現できるか、という点です。
そうしたスペクトル分布の対極として、静的言語のエキスパートは、初期のバグを捉えることが
『可能』ならば捉える『べき』であり、言語の持つ制限はツールで補える、と主張するのです。
皆さんはプログラミング言語のユーザーとして、良きにつけ悪しきにつけ、ある時点で
その言語の型定義戦略の奴隷となっています。
筆者は動的モエ〜らしいけど、
確かにO/Rマッピングとかやってると静的なのが面倒に感じる場合があるし。
ただ、言語である程度規定しないと静的な面の利点を享受できないから、
Objective-C は C との互換性やシンプルであれという思想からそれらの利点を捨てた時点で、
代替物が豊富にある Java の方がやはりプラットフォームとしての魅力はあるなあと。
逆説的に言えば、そうした利点を土台にしたからこそ、豊富な代替物を
引き寄せたとも言えるかもしれないね。
0602デフォルトの名無しさん
2006/06/24(土) 14:24:55静的言語の安全性を生かして完成品を作る。
ってのが理想。
0603デフォルトの名無しさん
2006/06/30(金) 01:56:40制限がたくさん載っててびびった。
newすればコンストラクタも仮想関数も問題なしってことなの?
0604デフォルトの名無しさん
2006/06/30(金) 12:58:48Tiger以降なら-fobjc-call-cxx-cdtorsつけとけばいいんじゃないの。
0605デフォルトの名無しさん
2006/07/01(土) 02:42:33ググッたけど分からんかった。
objevtivecからc++のコンストラクタとデストラクタを呼ぶって意味なのかな?
とりあえず、純粋なC++コードが動作するってんならうれしいのだが。
0606デフォルトの名無しさん
2006/07/02(日) 09:25:41>-fobjc-call-cxx-cdtors
http://developer.apple.com/documentation/developertools/gcc-4.0.1/gcc/Objective_002dC-and-Objective_002dC_002b_002b-Dialect-Options.html
0607こぴぺ
2006/07/04(火) 17:31:53Cocoaセミナー中級編開催
7月11日(火)、8月1日(火)
http://developer.apple.com/jp/
・書類とアプリケーションの間の関係の解説
・テキストファイルの読み込みとその表示
・Cocoaのデザインパターン
・XMLのパース
・配列、辞書といった、Cocoaのコレクションクラス
・テーブルビュー、アウトラインビューの使用方法
0608デフォルトの名無しさん
2006/08/06(日) 12:00:570609デフォルトの名無しさん
2006/08/08(火) 04:22:52So compelling, Apple wrote Xcode 3.0 itself in it.
Enjoy modern garbage collection, syntax enhancements, runtime performance improvements, and 64-bit support.
At your own pace, since it’s backwards compatible with existing Objective-C source.
Write applications more quickly with fewer bugs using Objective-C in Xcode 3.0.
だってよ。GC ついたらしい。
http://www.apple.com/macosx/leopard/xcode.html
0610デフォルトの名無しさん
2006/08/08(火) 04:31:06だからNHKの司令塔であるNHK東京とNHK大阪は
上層部から制作現場・アナウンサーまで
「在日朝鮮人」「在日韓国人」「偽装帰化人」職員だらけ。
日本人関係者も韓国・北朝鮮・中国マンセーの創価・左翼(共産主義者)だらけ。
その結果、反日どころか売国放送ばかりする
さらに日本人から絞り取った受信料を使って
韓国に住んでる親類にタダで韓国ドラマを衛星放送してやっている。
だからNHKはスクランプル化に大反対。
日本国民の金を法権力で強制徴収してるのに
このまま外国籍人に好き勝手をさせていいのか?
ハッキリ言ってNHKの存在自体が主権在民を定めた憲法違反だ。
NHKや朝日などの売国マスコミ以外の
海外や日本の他の報道機関が既に過去に報道してバレてるカビの生えた古い事だけカキ集めて
あたかも自分だけがスクープしたかのような北朝鮮特番を恥知らずに放送するNHK。
「今まで私共NHKが隠蔽し握り潰して来た事実の集大成番組です」ってタイトルで放送すればピッタリだ。
日本社会と日本国民のNHKを見る認識と風向きが180度変わり
不安と恐怖にさいなまれて自分が韓国・北朝鮮・中国マンセーの「ポチ」じゃ無いと言い張り
アリバイ工作のハリボテ番組を必死で放送する恥知らずなNHK。
しかしもうそんな姑息で卑怯な言い訳やウソは通用しなくなっている事にさえ気付かない哀れなNHK。
でもどんな言い訳をしても売国奴の末路は悲惨なものだから覚悟しとけよNHK。
まさかそこまで追い詰められていたなんて知らなかったよNHK。
( ゚∀゚) アハハ八八ノヽノヽノ ヽ ノ ヽ ノ \ ノ \ / \ /
0611デフォルトの名無しさん
2006/08/08(火) 08:20:380612デフォルトの名無しさん
2006/08/09(水) 03:51:55さてと、昔NextStepでプログラミングをしていたので、マニュアルをひっぱり
だしてきてちょっとやってみますか。
ちなみに、「NEXTSTEP OBJECT-ORIENTED PROGRAMMING AND THE OBJECTIVE C
LANGUAGE」という本がありますが良い本ですよ。
もう売っていないでしょうけど、オブジェクト指向の本質的なことがうまく
書いてあります。
私は、C++もかなり長いことやっていて思いますが、C++はやはり言語仕様的
には強力なものがあり、加減を忘れるととことんまで機能を使いながらコー
ディングをしてしまいますが、アプリケーションの性質に応じてその機能を
使い方をどこまでにすれば良いのか判断にあぐねることが多いですね。
よくあるのが、多重継承をしまくると保存と読み出しの際に元に戻せなく
なったりします。これはjavaのinterface や、objcのprotocolやcategory的な
機能がなかったりするために基底型から目的のポインタを得るのに大変苦労
をします(C++の仮想基底型は本当のインターフェースとは異なると思います)。
そういう意味でオブジェクト指向といいながら、最後は型がはっきりわかる
javaやobjcのほうが現実には使いやすい言語じゃないかと思ったりもします(
アプリを作るというのは最後は小細工が必要なんです)。
さて、objc++を少しさわってc++のはかなさでも味わいますか....。
0613デフォルトの名無しさん
2006/08/10(木) 00:28:27またObjective-Cのために?gcc4系ってのは(汗。さすが。
で、その本なんだけど、AppleがRhapsodyの時に日本語PDFファイルで配布してたやつと大体一緒のやつかな?
しかしObjective-C 2.0ってGCとかどうでもいいんだけど(実質今のGNUstepでもアリだしさ)、言語仕様の拡張というかsyntaxが拡張されるっつーのが気になるなぁ。
BlockClosureとか使えるようにすんのか?とりあえずC++的な鵺には並んでほしいとこですが。
実際の仕様が貧乏人に公開されるのはもっと先だろうしなぁ。
0614デフォルトの名無しさん
2006/08/10(木) 14:20:32セットで、匿名ブロックが欲しい。
アレが無いと、クロージャの魅力が半減する。
0615デフォルトの名無しさん
2006/08/10(木) 19:42:14今のObjective-Cにクロージャってあったっけ?
あれはGCがないとちゃんとした実装は難しいと思うのだが。
0616デフォルトの名無しさん
2006/08/12(土) 03:40:17612です。たぶん、一緒でしょう。少し改定されていると思いますが。
OBJC-2.0といってもnamescopeもないし、ただ、C++と混在できるだけ。
やっぱりnamescopeがないのが一番困る。それとクラス静的変数を用意
してほしい。
クロージャについてはないですね。もともとベースがC++,Cなので難
しいでしょう。でも、GCCのC(C++にはない)の内部関数が使えるという
ことはパスカルスタックを実現しているはずなので、JAVAでいうロー
カルクラスによるクロージャチックなことが出来そうにも思うのですが
....。もう少しみてみないとわかりません。
でもクロージャが使えるようになると、もう違う言語ですね。GDBが追い
つかないように思います。そろそろOBJCもC#みたいに大変身するかも。
0617デフォルトの名無しさん
2006/08/12(土) 08:31:59>AppleがRhapsodyの時に日本語PDFファイルで配布してたやつと大体一緒のやつかな?
nyとかで流れないものかなぁ。
0618デフォルトの名無しさん
2006/08/12(土) 09:02:480619デフォルトの名無しさん
2006/08/12(土) 16:35:23どっかでひろった PDF もってるけど、基本的にいま Apple が配布してる
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html
とおんなじだよ。図版もずっとつかいまわしで、はじめにでてくる時計の絵とかも全く一緒。Apple 版のほうがページ数すくなかったりしますが、
それは
http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/index.html
とか
http://developer.apple.com/documentation/Cocoa/Reference/ObjCRuntimeRef/index.html
が切り出されて説明が加わってべつのドキュメントになってるから。
0620デフォルトの名無しさん
2006/08/12(土) 16:39:14http://www.channelu.com/NeXT/
とか Sun のこの辺
http://docs.sun.com/app/docs/coll/116.1?l=ja
とか GnuStep の
http://www.gnustep.org/developers/documentation.html
とか。
0621デフォルトの名無しさん
2006/08/12(土) 21:48:45Appleが翻訳した日本語版は
ttp://developer.apple.com/jp/documentation/japanese.html
で、その中に
Obj-C
ttp://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/index.html
とか
Cocoa基礎ガイド
ttp://developer.apple.com/jp/documentation/Cocoa/Conceptual/CocoaFundamentals/index.html
などあるね。
0622デフォルトの名無しさん
2006/08/12(土) 22:31:08まぁドラフトとれ次第、2.0をやってくれるだろ。
0623デフォルトの名無しさん
2006/08/13(日) 00:08:39>まぁドラフトとれ次第、2.0をやってくれるだろ。
つまり「泳げる頃には」読めるんですな(苦笑)
0624デフォルトの名無しさん
2006/08/13(日) 15:47:520625デフォルトの名無しさん
2006/08/13(日) 15:50:37>616のことね。
0626デフォルトの名無しさん
2006/08/13(日) 21:05:110627デフォルトの名無しさん
2006/08/13(日) 22:30:290628デフォルトの名無しさん
2006/08/14(月) 00:13:160629デフォルトの名無しさん
2006/08/14(月) 00:50:02いつになったら情報でてくるのか
0630デフォルトの名無しさん
2006/08/14(月) 08:36:49WWDCでクロージャの話はでた?
0631デフォルトの名無しさん
2006/08/14(月) 09:28:18ワラタ
GC って Boehm GC なの?
それともオリジナル?
0632デフォルトの名無しさん
2006/08/14(月) 09:52:46以前出てた情報ではオリジナル。
0633デフォルトの名無しさん
2006/08/14(月) 13:05:07Javaの匿名クラスはクロージャ風味を目指しているけど、準備と構文が煩雑すぎて愛されなかった。
C# 2.0の匿名ブロックぐらいが使い物になる境界線だと思う。
Java 7にも、ほぼ同じ構文が入る事になってる。
Objective-Cの場合、事前にInterfaceやdelegateを宣言する必要が無いと思うので、実装されれば幸福度は高いと思う。
0634613
2006/08/14(月) 15:13:33なるほど。あれのコラムとかは結構勉強になったもんす。
後のCocoa本(オライリーから翻訳でたけど)よりよっぽどこっちの方が役に立ったというか(笑)
Appleからは当時のオリジナルはないけど、NeXT絡みのサイトを調べるとまだ拾える所があったりするから不思議(笑)
個人的にはObjective-C 2.0ってGNUの方でも対応できるのだろうか?(GNUstepどうなるよ?)が今一番大きな心配だったり(笑)
0635デフォルトの名無しさん
2006/08/14(月) 17:46:500636デフォルトの名無しさん
2006/08/14(月) 19:51:15公開されてなかたっけ?
http://www.opensource.apple.com/darwinsource/10.4.7.x86/objc4-274/
0637デフォルトの名無しさん
2006/08/15(火) 03:23:23クラス化するのにグローバルにしかクラスが定義できないなんて最低だ。
使えん。クロージャなんかなくてもかまわん。
あと、Undoのマネージメントの仕組みも導入してほしいな。完璧でなくて
いいが、モデルがほしい。
0638デフォルトの名無しさん
2006/08/15(火) 03:51:42サンキュ。オリジナルなんだ。実装の詳細を見られるのが楽しみだ。
0639デフォルトの名無しさん
2006/08/15(火) 04:43:35だれもつっこんでないからいうけど、NamescopeじゃなくてNamespaceな。
日本語でいうと名前空間。
しかしNamescopeはなかなかいい造語のように思える。おまえ、センスあるよ。
0640デフォルトの名無しさん
2006/08/15(火) 04:52:180641デフォルトの名無しさん
2006/08/15(火) 12:33:30腐敗臭がする。
0642デフォルトの名無しさん
2006/08/15(火) 13:56:53つけあがらないようにつっ込んでおくが、Undoの仕組みはかなり前に導入されたぞ。
Cocoaのクラス一覧を良く眺めてミロ。
0643デフォルトの名無しさん
2006/08/15(火) 17:00:000644デフォルトの名無しさん
2006/08/18(金) 03:39:01あんなもの使えん。おまえ、本当にアプリつくっているの?
0645デフォルトの名無しさん
2006/08/19(土) 07:35:44俺はそれを使った事ないんだが、どうダメなのか簡単に。
0646デフォルトの名無しさん
2006/08/28(月) 10:44:520647デフォルトの名無しさん
2006/08/28(月) 11:12:040648デフォルトの名無しさん
2006/08/29(火) 04:10:160649デフォルトの名無しさん
2006/08/29(火) 14:46:030650デフォルトの名無しさん
2006/08/29(火) 17:33:49ごく一部でC++もあるらしいけど。
0651デフォルトの名無しさん
2006/08/29(火) 17:57:100652デフォルトの名無しさん
2006/08/29(火) 20:59:310653デフォルトの名無しさん
2006/08/30(水) 16:53:35そうだとすると Objective-C も使われてる事になるね。
あとは Perl, Python, Java 辺りも。
Kernel だけなら、C, C++, ASM, m4 くらいかな。
0654デフォルトの名無しさん
2006/08/30(水) 18:40:160655デフォルトの名無しさん
2006/08/30(水) 23:28:120656デフォルトの名無しさん
2006/09/03(日) 03:40:41YouOSあたりじゃない?
0657デフォルトの名無しさん
2006/09/04(月) 11:01:17FoundationKitのソースをざっと眺めてみたんだけど読みやすくて何をしてるかすぐ分かって最高。
美しいって素晴らしい。
0659デフォルトの名無しさん
2006/09/07(木) 00:30:200660デフォルトの名無しさん
2006/09/07(木) 09:02:47なんのいやがらせですか?
0661デフォルトの名無しさん
2006/09/07(木) 10:39:150662デフォルトの名無しさん
2006/09/07(木) 14:08:01* メソッド名の一部をパラメータの名前だと勘違いしている件について
0663デフォルトの名無しさん
2006/09/07(木) 16:00:18receiver message
というように、メッセージを受け取るオブジェクト(receiver)と、それに送るメッセージ
(message)をスペースなどで区切って記述する。
さらに、メッセージは、セレクタと0個以上のパラメータ(引数)で構成される。
セレクタはパラメータの数だけ : (コロン)を含み、メッセージとして記述する際には、
それぞれのコロンの後にパラメータ+スペースを挿入する特殊な記法をとる。たとえば、
receiver foo:arg1 bar:arg2
なら、メッセージは「foo:arg1 bar:arg2」、セレクタは「foo:bar:」。
コロンをひとつでも含むときは、セレクタは、かならずコロンで終わらせなければいけない。
換言すると、パラメータがあるときは、メッセージは必ずパラメータで終わる。したがって、
「foo:bar:baz」のようなセレクタや、それを含んだメッセージ(foo:arg1 bar:arg2 baz)は
使用できない。
なお、セレクタは、メッセージ送信の結果、起動することが期待されるメソッドの名前でもある
(両者は一致する)。
また、foo や bar を「キーワード」と呼ぶことがあるが、これはあくまで便宜的なもので、
言語仕様上、そうしたエンティティがあるわけではない(それらは結局、セレクタ、あるいは、
メソッド名の一部に過ぎない)。
0664デフォルトの名無しさん
2006/09/08(金) 11:45:28http://developer.apple.com/jp/documentation/japanese.html#CocoaSeminar1
0665デフォルトの名無しさん
2006/09/08(金) 18:07:490666デフォルトの名無しさん
2006/09/08(金) 21:18:170667デフォルトの名無しさん
2006/09/08(金) 21:53:260668デフォルトの名無しさん
2006/09/09(土) 00:12:26別にCとかC++でもいいけど、Javaは嫌。
0669デフォルトの名無しさん
2006/09/09(土) 11:49:38StepStone
0670デフォルトの名無しさん
2006/09/10(日) 09:46:15StepStone社ってまだあるんか?
0671デフォルトの名無しさん
2006/09/11(月) 20:41:250672デフォルトの名無しさん
2006/09/11(月) 20:43:220673デフォルトの名無しさん
2006/09/15(金) 18:47:440674デフォルトの名無しさん
2006/09/16(土) 09:42:360675デフォルトの名無しさん
2006/09/16(土) 11:08:360676デフォルトの名無しさん
2006/09/19(火) 00:57:050677デフォルトの名無しさん
2006/09/19(火) 01:29:36知ってる人いたら教えて。
0678デフォルトの名無しさん
2006/09/19(火) 02:22:40アップルは、魅力あふれる Xcode 3.0自身を使ってXcode 3.0を開発しました。
最新のガベージコレクション、強化された構文と改善されたランタイムパフォーマンス、
64ビットサポートをお届けします。
既存の Objective-Cソースとの下位互換性も備えているため、
自分のペースで作業を進めることができます。
Xcode 3.0のObjective-Cを使って、バグを減らしながらすばやくアプリケーションを記述できます。
0679デフォルトの名無しさん
2006/09/19(火) 18:26:270680デフォルトの名無しさん
2006/09/19(火) 19:00:500681デフォルトの名無しさん
2006/09/19(火) 19:48:48ワロタ
0682デフォルトの名無しさん
2006/09/19(火) 19:53:310683デフォルトの名無しさん
2006/09/19(火) 20:07:18他にもプロパティに指定できる属性がある。便利なのがivarだ。こいつはプロパティを指定した
名前のインスタンス変数にマッピングするものだ。
(コード。プロパティの属性ivarの例)
@interface Bar : Object
{
int iVar;
}
@property(ivar = iVar) int FooBar;
@end
getterやsetterのメソッドも別に指定することができる
(コード。プロパティのアクセサメソッドを個々に指定する)
@property(getter = whatBaby, setter = setFire:) id baby;
0684スマソ、こっちが先だ
2006/09/19(火) 20:08:43【プロパティ】
これはオレが見つけた中では追加された最大のものだ。こいつはグルーコードを書くために
費やす時間やコード量を節約してくれる。
Rubyの属性(attributes)のようにObj-C 2.0ではクラスのプロパティを定義することができる。
んでもって、プロパティの属性(nocopy, readonly, readwrite. etc)を指定すれば、コンパイラは
その指定に従ったKVC準拠のアクセサを生成する。もしそうしたければ、アクセサである
setVar:やvarメソッドをオーバーライドすることもできる。
(長いのでコード省略。属性無指定のプロパティとreadonlyのプロパティの例、アクセサのオーバーライド)
で、見りゃわかることはこんなことだ。
・プロパティは.(ピリオド)でアクセスできる。かんたんインスタンス変数アクセス(訳注:あとででてくる)は
->を使うことをヘンに思うかもしれんが、これはKVCとは関係ないってことで納得しとこう。
・デフォルトのプロパティの実装は、文字列みたいなオブジェクトすら"do the right thing"で扱ってる
ように見える。set時にコピーして、自分自身の解放時にもちゃんと解放するみたいだ。
少なくともdeallocのテストは見当たらないな。
・当たり前だがGroupオブジェクト中のPersonオブジェクトは初期化しなくちゃいけない
0685デフォルトの名無しさん
2006/09/19(火) 23:43:170686デフォルトの名無しさん
2006/09/19(火) 23:49:08私が書いた訳ではありませんが、丁寧に書かれているので紹介します。
http://wisdom.sakura.ne.jp/programming/objc/index.html
Objective-Cは名前からもわかるとおりオブジェクト指向言語です。
C系オブジェクト指向言語では、超メージャーな言語にC++があります。
Objective-CとC++の二つを見たとき、C言語に近そうなのは名前からもC++な気がしますが、実際にはObjective-CがよりC言語に近いです。
というよりはObjective-C=C言語+オブジェクト指向です。
そのため、Objective-CではC言語のソースがそのまま使えます。無駄になりません。
Objective-Cは現在、Mac OS Xの開発環境での主力言語ですが、決してMac OS X専用の言語ではありません。gccコンパイラでコンパイルできますから、gccがある環境をお持ちでしたらどこでも利用可能です。
興味のある方はぜひご一読くださいな。
0687デフォルトの名無しさん
2006/09/20(水) 00:17:080688デフォルトの名無しさん
2006/09/20(水) 01:26:39暗黙の self オブジェクトを使うことはできません。
http://wisdom.sakura.ne.jp/programming/objc/objc11.html
使えるだろ。
0689・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/09/20(水) 01:31:18ぶっちゃけSmalltalkの後継言語としてはRubyのほうが・・・。
RubyのCocoaバインディングがLeopardで標準サポートされるとか言う話を聞いたような。
0690デフォルトの名無しさん
2006/09/20(水) 07:37:500691デフォルトの名無しさん
2006/09/20(水) 10:45:48そこは平気で嘘や勘違いを呼ぶ記述が書いてあるから初心者にはおすすめしませんが。
っていう話は既出な気がする。
0692デフォルトの名無しさん
2006/09/20(水) 11:19:51+(oneway void)xxx;
-(oneway void)xxx;
以外は無視されます。つまり返値を待ちます。
上記(oneway void)の場合は、処理の終了を待たずに戻ってきます。
0693デフォルトの名無しさん
2006/09/20(水) 11:57:36LeopardでRubyCocoaが標準搭載されるそうです。
Cocoa-Javaは捨てられて、代わりにRubyって感じ?
Appleもお気に入りのよう。
0694デフォルトの名無しさん
2006/09/20(水) 12:52:010695デフォルトの名無しさん
2006/09/20(水) 14:18:020696デフォルトの名無しさん
2006/09/21(木) 02:10:500697デフォルトの名無しさん
2006/09/21(木) 03:46:18いやいや、使えないと思いますが。。。
もし使えたら、Java言語でのクラスメソッド内でthisが使えるということと同じになりますよ??
では逆に、クラスメソッドでselfが使えたとして、そのselfは何を指すのかお聞きしたい。
0698デフォルトの名無しさん
2006/09/21(木) 04:18:56> もし使えたら、Java言語でのクラスメソッド内でthisが使えるということと同じになりますよ??
いいえ、Objective-C は Java ではありません。
0699デフォルトの名無しさん
2006/09/21(木) 04:26:28失礼しました。Javaの話は忘れて下さい。今はObjective-Cの話ですものね。
では、クラスメソッドでselfが使えたとして、そのselfは何を指すのかということに関してはどうお考えですか?
0700デフォルトの名無しさん
2006/09/21(木) 04:31:55Inside an instance method, self refers to the instance; but inside a
class method, self refers to the class object.
ということです。
0701デフォルトの名無しさん
2006/09/21(木) 04:36:16クラスメソッド内でのselfはクラスオブジェクトを指すんですか。
それは初耳です。自分の勉強不足である可能性がかなり高いので、
確認のため紹介いただいた英文の出典を教えていただけないですか?
0702デフォルトの名無しさん
2006/09/21(木) 04:45:07あるいは
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html
の The Language > How Messaging Works
0703デフォルトの名無しさん
2006/09/21(木) 04:48:24丁寧な回答ありがとうございます。やはりAppleのDeveloper Connectionのページでしたね。
早速読んで勉強します。ありがとうございましたm(__)m
0704デフォルトの名無しさん
2006/09/21(木) 08:17:21Rubyでも同じですね。
smalltalk的で動的、というのがRubyと相性良い理由なのかな。
0705デフォルトの名無しさん
2006/09/21(木) 10:02:59> 自分の勉強不足である可能性がかなり高い
どうして、まっさきに、その可能性を疑わない?! オマエは mkino か?
0706デフォルトの名無しさん
2006/09/21(木) 13:01:23メタクラスとかよく分からない俺でも、Obj-Cのクラスはオブジェクトであって、
NSObjectのインスタンスメソッドをクラスオブジェクトに対して呼べるくらいは知ってるぞ。
0707デフォルトの名無しさん
2006/09/21(木) 17:07:41マクロ(スクリプト?)みたいな使い方が出来るようになるの?
0708デフォルトの名無しさん
2006/09/21(木) 17:23:330709デフォルトの名無しさん
2006/09/22(金) 00:07:42>NSObjectのインスタンスメソッドをクラスオブジェクトに対して呼べるくらいは知ってるぞ。
NSObjectクラスの-classメソッドなんかはそのいい例だね。
0710デフォルトの名無しさん
2006/09/22(金) 13:20:08[[NSObject new] class]; が NSObject なのは分かるのですが、
[NSObject class]; が NSObject になるのはなぜですか?
NSObject のクラスメソッドはどこに定義されているのでしょう。
0711デフォルトの名無しさん
2006/09/22(金) 13:25:52定義はどこって。。。
とりあえず宣言は Foundation/NSObject.h にあるけど。
>790を見なかったことにすれば全く問題ないね。
0712デフォルトの名無しさん
2006/09/22(金) 13:31:190713デフォルトの名無しさん
2006/09/22(金) 13:42:15ここ読むと分かるかも。
http://journal.mycom.co.jp/column/objc/016/
0714デフォルトの名無しさん
2006/09/22(金) 13:50:35ようし、お前らがその気ならこっちは
ProceduralSmalltalkだ
0716デフォルトの名無しさん
2006/09/24(日) 21:10:17Cocoaプログラマが一番取っ付きやすいWindows のAPIってなんでしょうかね。
0717デフォルトの名無しさん
2006/09/24(日) 21:52:070718・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/09/24(日) 22:11:280719デフォルトの名無しさん
2006/09/25(月) 03:25:50http://www.turboexplorer.com/jp/cpp
0720デフォルトの名無しさん
2006/09/25(月) 19:12:06GNUstep
www.gnustep.org
0721デフォルトの名無しさん
2006/09/25(月) 22:23:360722デフォルトの名無しさん
2006/09/26(火) 06:44:450723デフォルトの名無しさん
2006/09/26(火) 10:49:050724デフォルトの名無しさん
2006/09/26(火) 11:08:22WebObjects
.NET Framework
0725デフォルトの名無しさん
2006/09/26(火) 18:53:33クロスプラットフォームなソフトをObjective-Cで書きたいとか。
0726デフォルトの名無しさん
2006/09/26(火) 19:04:08古いバージョンのOSXで新しいAPIを使いたいとか。
0727デフォルトの名無しさん
2006/09/27(水) 09:52:43そんなに新しいAPI実装されてるの?
0728デフォルトの名無しさん
2006/09/27(水) 15:36:01Xcodeで新規プロジェクトとしてCocoa Applicationを作成→ビルド→
パフォーマンスツールを使用して起動からMallocDebugを選択→MallocDebugのLaunchボタン→
MallocDebugのポップアップからLeaksを選択(この時点でリークはなし)→
Cocoa Applicationのウィンドウをクリックするなりしてアクティブにする→
MallocDebugのUpdateボタンを押す→「40 bytes in 1 node」のリーク発生
さらにCocoa Applicationをアクティブにするたびにリークが増えていくのですが、
これって気にしなくてもいいんでしょうか?
ちなみにターミナルからexport MallocStackLogging=YESした後、openで起動して
leaksで確認したところ、やはりリークが起こっているようです。
0729728
2006/09/27(水) 15:41:02OSX 10.4.7
G4
Xcode 2.4
の環境です。
0730デフォルトの名無しさん
2006/09/28(木) 11:05:31「オブジェクトがdealloc済であることをチェックする」にはどうしたら良いでしょうか?
dealloc 済のオブジェクトなので、何かメッセージを送ると落ちてしまいますし、
かといって、nil になっているわけでもないので、STAssertNil によるチェックも
できません。
0731デフォルトの名無しさん
2006/09/29(金) 00:28:56自分も試しに、以前作った自作CocoaアプリのMalloc Debugやってみたら、
ウィンドウアクティブにするたびにリークが増えてくorz
一番最初はノーリーク。一回ウィンドウをアクティブにして、Updateすると、
40 bytes in 1 nodeのリーク。
症状全く同じだわ。
もしかして、アクティブにするたびに40bytesずつ増えてったりしない??
40 bytes in 1 node
80 bytes in 2 nodes
120 bytes in 3 nodes
160 bytes in 4 nodes
みたいに…
どなたかご存知の方いましたら、ご教示お願いします。
0732731
2006/09/29(金) 01:33:14やってみたら、なんと同じリークが…。ウィンドウアクティブにする
たびにリークが同じく40bytesずつ増えてく。
これって仕様なの??それとも他の理由が??
気にしなくていいということですかね?
もし本当にリークしてるなら、ウィンドウをアクティブにするのは
極力控えた方がいいってことなのかな〜(^^;)
0733・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/09/29(金) 02:04:090734731
2006/09/29(金) 02:46:52やっぱそうなんですかね。
Appleは自分のCocoaアプリをMallocDebugにかけてないとは思えないですが…。
本当にCocoaのバグなら残念です。
0735デフォルトの名無しさん
2006/09/29(金) 04:27:460736728
2006/09/29(金) 09:45:54英字入力状態:
Leak: 0x0581ad70 size=48 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x1b636f6d 0x2e617070 .{.t.....com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e52 le.inputmethod.R
0x6f6d616e 0x00000000 0x00000000 0x00000003 oman............
ひらがな入力状態:
Leak: 0x004a8d30 size=48 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x1e636f6d 0x2e617070 .{.t.....com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e4a le.inputmethod.J
0x6170616e 0x65736500 0x00000000 0x00000003 apanese.........
カタカナ入力状態:
Leak: 0x0584e340 size=64 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x27636f6d 0x2e617070 .{.t....'com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e4a le.inputmethod.J
0x6170616e 0x6573652e 0x4b617461 0x6b616e61 apanese.Katakana
0x00610076 0x006f0072 0x0076006f 0x00726525 .a.v.o.r.v.o.re%
全角英字入力状態:
Leak: 0x0574b260 size=64 instance of 'NSCFString'
0xa07b9674 0x0001078c 0x2d636f6d 0x2e617070 .{.t....-com.app
0x6c652e69 0x6e707574 0x6d657468 0x6f642e4a le.inputmethod.J
0x6170616e 0x6573652e 0x46756c6c 0x57696474 apanese.FullWidt
0x68526f6d 0x616e0072 0x00660061 0x0075006c hRoman.r.f.a.u.l
英字とひらがなの場合はウィンドウをアクティブにするたびにリークが増えますが、
カタカナと全角英字は増えません。やっぱinputmethodのバグですかね。
0737デフォルトの名無しさん
2006/09/29(金) 10:23:37Objective-C 2.0でガベージコレクションが導入されたら、
Cocoaも原理上リークがなくなるはずだ。
0738728
2006/09/29(金) 10:24:14どこか日本語で受け付けてくれるところはないんでしょうかね。
0739731
2006/09/29(金) 10:36:08おぉ、助かります!!早く解決されることを祈るばかりです。
できれば、Cocoaのバグではなくて、MallocDebugのバグであってほしいです。
0740デフォルトの名無しさん
2006/09/29(金) 21:16:08とりあえず思いついた方法
・ひとつ余分なretainをして、retainCount == 1となることを検証
・MallocScribble環境変数を設定して、idのサイズ分0x55になっていることを検証
0741デフォルトの名無しさん
2006/09/29(金) 21:20:21そもそもretainできない件
0742デフォルトの名無しさん
2006/09/29(金) 21:31:300743デフォルトの名無しさん
2006/09/29(金) 22:00:28確かに。自作クラスだったら-deallocをオーバーライドして通知のためのコード
入れればいいもんね。
0744デフォルトの名無しさん
2006/10/03(火) 22:26:27てかcocoaとかのライブラリーに興味あり
今とりあえずCを勉強中。preprocessorってコード読みにくい。。。
で、Cをひとまず覚えたらobjcの本とかPDFとか何を読むのがおすすめですか?
英語でかまいません。むしろ英語がよい。
0745デフォルトの名無しさん
2006/10/03(火) 22:45:17あと、Cをそんなに勉強する必要はないと思う。
http://developer.apple.com/documentation/Cocoa/
から好きなだけ読め。
言語自体は
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/
それをさっと眺めたら
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/
で実際にappをかいてみて、そのあと
http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/
で基本を学ぶのがいいと思う
0746デフォルトの名無しさん
2006/10/03(火) 22:54:10自作のCでやるクラス・ライブラリーは完成したんですか?
0747デフォルトの名無しさん
2006/10/04(水) 01:17:36すいません。よくわかりません。
>>745
サンクスです。本とかよりappleのpdfで十分ってことですね。
とりあえずcは基礎だけは勉強しておこうと思ってます。
structすらまだ学んでないので。。。
0748744
2006/10/04(水) 01:31:01CやJavaに比べて
ぱっとみCoreAudio, CoreImageは凄そうと思いました
0749デフォルトの名無しさん
2006/10/04(水) 02:39:430750デフォルトの名無しさん
2006/10/04(水) 09:28:13非常にダイナミックなところでしょう。
binding 多用しだすともう殆どスクリプト言語状態だと思います。
0751745
2006/10/04(水) 09:30:31充分かどうかは... 本もいいのがいろいろあるよ。
ヒレガスとか。
http://www.cocoadev.com/index.pl?CocoaBooks
に書評があるのでみてみてね。
0752デフォルトの名無しさん
2006/10/04(水) 20:57:38ひれがす?
0753デフォルトの名無しさん
2006/10/05(木) 06:36:370754デフォルトの名無しさん
2006/10/05(木) 08:20:410756・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/06(金) 06:37:450757デフォルトの名無しさん
2006/10/06(金) 11:40:450758デフォルトの名無しさん
2006/10/06(金) 14:38:050759デフォルトの名無しさん
2006/10/06(金) 15:35:070760デフォルトの名無しさん
2006/10/06(金) 15:37:170761デフォルトの名無しさん
2006/10/06(金) 15:46:140762デフォルトの名無しさん
2006/10/07(土) 00:37:380763デフォルトの名無しさん
2006/10/07(土) 00:39:140764デフォルトの名無しさん
2006/10/07(土) 01:16:130765デフォルトの名無しさん
2006/10/07(土) 01:52:05つーわけで、とりあえずcygwinでApacheモジュール作ってみた
0766デフォルトの名無しさん
2006/10/09(月) 10:18:53人から渡されたコード読んでるけど汚くってかなわん。
両刀使いだからWinでもMac用でもかまへん。
0767デフォルトの名無しさん
2006/10/09(月) 13:11:400768デフォルトの名無しさん
2006/10/09(月) 21:41:54もしくは中の人になれ。
0769デフォルトの名無しさん
2006/10/10(火) 01:00:55汚いソースの例が見たい
0770デフォルトの名無しさん
2006/10/10(火) 01:53:17ならばMonaも使ってると三所責めだな
0771デフォルトの名無しさん
2006/10/14(土) 20:42:550772デフォルトの名無しさん
2006/10/15(日) 00:09:03http://users.pandora.be/stes/compiler.html
0773デフォルトの名無しさん
2006/10/15(日) 13:31:16ちょっくら読んでみたけど、これってObjc -> Cに変換するプリプロセッサ?
0774デフォルトの名無しさん
2006/10/15(日) 14:08:580775デフォルトの名無しさん
2006/10/16(月) 22:38:16mac関連のプログラミング本はほとんどObjCで書かれていますが
この板ではObjCはあまり人気がないように見えます。
みなさんはぶっちゃけどの言語をお勧めしますか
0776デフォルトの名無しさん
2006/10/16(月) 22:44:330777デフォルトの名無しさん
2006/10/16(月) 23:21:460778デフォルトの名無しさん
2006/10/17(火) 00:30:34とまで言わないがかなりイイ!
0779デフォルトの名無しさん
2006/10/17(火) 06:51:470780デフォルトの名無しさん
2006/10/17(火) 10:12:35このスレできいて、違う言語があがればそれこそObjCを見限ろうと
思ってました
0781デフォルトの名無しさん
2006/10/17(火) 10:40:03Cは好きだけどCarbon onlyで書こうとは思わんし、Cocoa-javaも付け焼き刃の印象しかない
WebObjectsみたいに気合いが入ってなさそうだし>>Cocoa-Java
0782デフォルトの名無しさん
2006/10/17(火) 11:41:21気になったら遊んでみればいいし、飽きたら忘れれば良い
0783デフォルトの名無しさん
2006/10/17(火) 13:23:53C++ 知ってたらとりあえず一日でだいたい使えるようになる。
Cocoa の API をつかむのは案外時間いるかもだけれども。
0784デフォルトの名無しさん
2006/10/17(火) 13:38:360785デフォルトの名無しさん
2006/10/17(火) 14:40:340786デフォルトの名無しさん
2006/10/17(火) 15:06:24WebObjectsも気合いは入ってない
0787デフォルトの名無しさん
2006/10/17(火) 15:53:380788デフォルトの名無しさん
2006/10/17(火) 17:31:080789・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/17(火) 18:31:34まじでおすすめ
0790-○◎○
2006/10/17(火) 19:01:04危ぶめば道はなし。踏み出せばその一足が道となる。
迷わず行けよ。行けばわかる
ありがとう、ダンゴリオンさん
Cocoa-Ruby でいってみます
0791デフォルトの名無しさん
2006/10/17(火) 22:33:56あと、RubyCocoa は Objective-C+Cocoa をやってから
やっぱスクリプトがいいや〜、と移行するものであって
それではじめるものではないと思うけどどうでせう。
Obj-C 有る程度わかってないと Cocoa のドキュメント読めないでそ。
0792デフォルトの名無しさん
2006/10/22(日) 13:58:29メッセージ指向なオブジェクト指向言語の方がCocoa向きだよね
0793デフォルトの名無しさん
2006/10/22(日) 15:02:51>メッセージ指向
なんだそれ?
0794デフォルトの名無しさん
2006/10/22(日) 15:06:33Ruby は違うでしょ。単に動的なだけ。
0795デフォルトの名無しさん
2006/10/22(日) 20:38:38アラン・ケイのオブジェクト指向。メッセージングという考え方を表現や問題解決の中心に据える。
対して、C++、Eifflel、Java などが立脚しているのは「クラス指向」なビアルネ・ストラウストラップの
オブジェクト指向。抽象データ型を(Simulaの)クラスという機能を用いて実現するという考え方。
>>792,794
Ruby のポリシーは、「いろんな言語のいいとこどり」なので、オブジェクト指向についても
どっちつかず。
0796・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
2006/10/22(日) 20:43:12汚いが。
0797デフォルトの名無しさん
2006/10/23(月) 03:35:310798デフォルトの名無しさん
2006/10/23(月) 07:08:43解説アリガ�。
結局動的か静的かになるんだろうけど、どちらもオブジェクト指向つーのは分かりづらいな。
オブジェクト指向メッセージ指向?
オブジェクト指向クラス指向?
指向指向うるさいなw
0799デフォルトの名無しさん
2006/10/23(月) 09:51:02あとクラス指向って本当にStroustrupがベースなの?
0800デフォルトの名無しさん
2006/10/23(月) 21:03:11ケイのオブジェクト指向、ストラウストラップのオブジェクト指向でおk
動的か静的か…のくくりだと語弊があるかも。
ケイは静的型チェックを否定しているわけじゃなく、ストレスなしに使える
静的型チェック機構の存在を知らない…と言っているだけだし。
>>799
排他ではない。けれど、前提となるもの、視点が違うから適所でうまく切り替えるべき。
たとえば、ストラウストラップの…は抽象データ型に軸足をおいているから、
クラスやオブジェクトの中身の設計や見せ方に重きを置くけれど、ケイの…は
そういうことには頓着しない、とか。
別の例では、ストラウストラップの…は基本データ型との混在を許すが、ケイの…では論外、とか。
抽象データ型を SIMULA のクラスを使って…というアイデアは、ストラウストラップが
C++ の前身である C with Classes で試したのが最初。メイヤーは、C++ にあれこれ
いちゃもんを付けたり、ストラウストラップの主張を黙殺したりするけど、言っていることは
ほぼ、ストラウストラップ+α(契約によるプログラミング)の類で、新機軸を打ち出しているわけではない。
まあ、ストラウストラップ自身は「クラス指向」という言葉を使っているわけではないので、
(彼は、「抽象データ型のスーパーセット」、「継承によるプログラミング」と称している)
799が疑問を呈しているその「クラス指向」がなにかにもよるけれど…。いずれにせよ、
よく言われる「カプセル化・継承・多態性」とかのオブジェクト指向は、ストラウストラップので、
ケイのじゃない。
0801デフォルトの名無しさん
2006/10/24(火) 01:24:11ん、そうだっけ?
Smalltalk78の時点で継承という概念は導入されているし、メッセージを飛ばすSmalltalkはそもそも多態性だろう。
カプセル化については、オブジェクトを作るという行為そのものがカプセル化ではないのか。
0802デフォルトの名無しさん
2006/10/24(火) 01:49:39クラス指向とオブジェクト指向は、何を本質とするかであって、
単にマッピング出来るかどうかの問題じゃないんじゃないかな。
0803デフォルトの名無しさん
2006/10/24(火) 02:03:45いや。それは Smalltalk がその三点を満たしているかと問われれば、たしかにそうなるけど…。
でも実際のところ、ケイは彼のオブジェクト指向において、そういうことは言っていないし、目指してもいない。
本気でそう(「カプセル化、継承、多態性」がケイのオブジェクト指向においても要件である…)
と信じているなら、下のにひとおとり目をとおしてから出直してきてくれると助かる。
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en
http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html
http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html
もちろん、こうしたケイの意向があったとしても、Smalltalk ユーザーがそれを無視して、
ストラウストラップのオブジェクト指向を(部分的ながらも) Smalltalk を用いて実践したいと思ったとしても、
それを妨げるものは何もないわけだけれども…。
たとえば、この人なんか Smalltalker として有名だけど、典型的なストラウストラップの
オブジェクト指向実践者(の、わりに C++ には批判的なのが笑える)。
http://www.sra.co.jp/people/aoki/IntroductionToOOAOOD/chapter1/Chapter1.htm
0804デフォルトの名無しさん
2006/10/24(火) 02:20:10ダメってことはない。なぜなら、カプセル化、継承、多態性というのは、Smalltalk にも
当てはまるようにデフォルメされているから。Smalltalker はケイをないがしろにした上に、
ストラウストラップの考えも都合よく骨抜きにしてしまった。じつに傲慢な奴らだ。w
ただ、802 のいうことは当たらずとも遠からずで、ストラウストラップが要件としてあげた
ものは、抽象データ型、継承、仮想関数を用いた動的性…に加えて、静的型チェック、
多重継承、アクセス制御…なので、これにはちゃんと含まれている。
http://portal.acm.org/citation.cfm?id=679041
http://www.research.att.com/~bs/whatis.pdf (上の '90 改訂版。内容はほぼ同じ)
だから、真にストラウストラップのオブジェクト指向を実践するには、ほんとうは、
Smalltalk ではダメ(だからデフォルメして対応せざるをえなかったわけだけれども…)。
0805デフォルトの名無しさん
2006/10/24(火) 13:45:01呼ぶメソッドを実装されてるか、という1点にかかっているあたりクラス指向
というよりメッセージ指向な感じがするわけだけど、
Simula の末裔の C++ が template で似たようなスタイルを実現している(しかも
それが標準ライブラリとして広く使われている)あたりとか面白いですよね。
0806デフォルトの名無しさん
2006/10/25(水) 22:27:12In file included from linking.m:28:
objc/Object.h:38: error: 構文解析エラー before '{' token
objc/Object.h:43: fatal error: method definition not in class context
0807デフォルトの名無しさん
2006/10/25(水) 22:42:490808デフォルトの名無しさん
2006/10/30(月) 20:28:49の32ページに、
Objective Cでは、インスタンス変数にデフォルトで@protectedというラベルが付きます。GCC 4.0
では、これを明示的に警告するようになりました。また、将来のコンパイラではこれをエラーとし
て取り扱います。この問題を修正するには、Objective-Cインターフェイスでインスタンス変数のス
コープを明示的に指定してください。
ってあるんだけど、これってインスタンス変数を定義する時に今までは省略していた@protectedを書かなければいけなくなるってこと?
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:300909デフォルトの名無しさん
2007/05/05(土) 18:26:330910デフォルトの名無しさん
2007/05/05(土) 19:08:06まじで、最近は一部C言語に回帰しているね。
プレゼンテーションはJavaとC#に収束。
Web系以外のサーバーサイドは、C言語がいい場合がある。
0911デフォルトの名無しさん
2007/05/05(土) 20:05:240912デフォルトの名無しさん
2007/05/05(土) 23:41:59多機能という意味では。
しかしC++プログラマーの大半はC++を使いこなせていない。
大抵はベターCとして使っている。
だからほとんどのプログラマーにとってObjective-Cの機能は十分なんだ。
BorlandのVCL並のRADツールを備えたWindowsで使える統合開発環境さえあれば
Objective-Cは即座にC++を駆逐するだろう。
C++が普及したのはひとえにVisualC++の存在が大きい。
0913デフォルトの名無しさん
2007/05/06(日) 00:16:26まあ、C++はC and ++だからな。
C++をフルに使いこなすには、C標準ライブラリ使用禁止、非クラス関数禁止でもしないと
追加機能付きCとして使ってしまう。
0914デフォルトの名無しさん
2007/05/06(日) 02:43:540915デフォルトの名無しさん
2007/05/06(日) 07:50:010916デフォルトの名無しさん
2007/05/06(日) 17:52:53>BorlandのVCL並のRADツールを備えたWindowsで使える統合開発環境さえあれば
Mac OS XならXCodeとInterfaceBuilderがある。
ただObjective-CやれるのAppleぐらいだしWindowsへの進出はなさそうだな。
0917デフォルトの名無しさん
2007/05/06(日) 21:10:570918デフォルトの名無しさん
2007/05/06(日) 22:29:25と釣られてみるテスト。
0919・∀・)っ-○◎●
2007/05/07(月) 00:05:15いや、Windows進出の野望はあったにはあったみたいだよ。
YellowBoxってのが。
ポシャったけど。
APIとしてのQuickTime for Windowsを提供する予定は
無いようだしな。
0920デフォルトの名無しさん
2007/05/07(月) 01:47:52QuickTime 7.1 SDK for Windows (ZIP)
http://developer.apple.com/quicktime/download/
0921・∀・)っ-○◎●
2007/05/07(月) 02:03:32MacのQuicktime APIって、WindowsでいえばDirectXみたいな
もんじゃなかったっけ。
0922デフォルトの名無しさん
2007/05/07(月) 06:03:08それがわからんとWin対応のObjective-Cなんておいそれと作れたもんじゃない。
Obejective-CってのはC言語にオブジェクト指向とかGCとかをマクロ機能を使って搭載したやつだ。
だから言語そのものに機能を組み込んでいるC++とは違うんだな。
ただあれだよね。
常に機能を追加するという発想。
そこはC++と同じ。
JAVAやC#みたいに機能に制限を加えるという発想はない。
Objective-Cを普及させるならば案外その辺がポイントなのかもしれんと思った。
0923デフォルトの名無しさん
2007/05/07(月) 07:05:080924デフォルトの名無しさん
2007/05/07(月) 13:51:05まあ runtime の上の syntactic sugar であるのは事実だけども。
0925デフォルトの名無しさん
2007/05/08(火) 00:35:53間違いのように見えても、プログラマ様がお書きになられたコードは絶対なのです。
0926デフォルトの名無しさん
2007/05/08(火) 01:19:43OSを作るための言語だけの事はある。
0927デフォルトの名無しさん
2007/05/08(火) 06:52:220928デフォルトの名無しさん
2007/05/09(水) 00:50:530929デフォルトの名無しさん
2007/05/09(水) 22:09:08カスケード記法があればいいのに
Lispと違ってうまくインデントスタイルが組めないから読みにくい
0930デフォルトの名無しさん
2007/05/09(水) 22:30:270931デフォルトの名無しさん
2007/05/09(水) 22:36:270932デフォルトの名無しさん
2007/05/14(月) 11:33:35そのSmalltalkはLispの影響を受けているので、括弧が多くなるのはそういう理由からでしょう。
0933デフォルトの名無しさん
2007/05/14(月) 12:01:360934デフォルトの名無しさん
2007/05/14(月) 12:37:10すごい三段論法だな。w
というか、どうして lisp や smalltalk をろくに知りもしないのに
そういう見てきたような嘘をつくかなー。
objc が smalltalk の影響を受けているのは [ ] の中だけ。
というか、objc の [ ] の中は、smalltalk の世界。
objc は smalltalk のコードを C コンパイラに通すためのプリプロセッサとして
開発された経緯がある。そんなわけで、[ ] のネストの多さは objc の勝手な事情で
smalltalk とは無関係だよ。
あと、smalltalk への lisp からの影響は、everything is an object のポリシーや
クロージャ、ブロッククロージャメソッドのたぐいで、
S 式(つまりこの文脈でいうところの括弧の多さ)じゃあない。
ちなみに残念ながら objc は、これら(lisp からの影響)の恩恵の外にある。
メタクラスやメソッドはオブジェクトじゃないし、ブロッククロージャメソッドはおろか、
ブロック(クロージャ)すら使えない。これらは objc の言語拡張のやりにくさや
イントロスペクションの貧弱さ、コレクションの扱いにくさとして出てくる。
0935デフォルトの名無しさん
2007/05/14(月) 14:19:560936デフォルトの名無しさん
2007/05/14(月) 14:53:23危ない危ない…
0937デフォルトの名無しさん
2007/05/14(月) 16:53:09> ブロック(クロージャ)すら使えな
使える処理系もあるけどね。
0938デフォルトの名無しさん
2007/05/14(月) 19:43:360939デフォルトの名無しさん
2007/05/14(月) 21:09:12おかげでOjective-Cの勉強を諦めることが出来ました。
感謝します。
0940デフォルトの名無しさん
2007/05/14(月) 21:24:240941デフォルトの名無しさん
2007/05/15(火) 00:01:300942デフォルトの名無しさん
2007/05/15(火) 00:05:460943デフォルトの名無しさん
2007/05/15(火) 00:29:330944デフォルトの名無しさん
2007/05/15(火) 00:52:11それともMacについてきたからやっているの?
0945デフォルトの名無しさん
2007/05/15(火) 00:59:06ちなみにMacOSXについてるのは
Objective-C じゃなくて Objective-C++ だから
0946デフォルトの名無しさん
2007/05/15(火) 02:34:24> Objective-C じゃなくて Objective-C++ だから
ちがいます
0947デフォルトの名無しさん
2007/05/15(火) 16:14:25C++より先にObjCを学んだからC++使ってると違和感を感じることがある。
多分C++が先な人は逆なんだろうけど。
0948デフォルトの名無しさん
2007/05/16(水) 19:40:39virtualとか、何種類もあるキャストとか...
そんなわけで最近はruby。Cocoaも呼べるし。
0949デフォルトの名無しさん
2007/05/16(水) 22:01:250950デフォルトの名無しさん
2007/07/01(日) 21:02:320951デフォルトの名無しさん
2007/07/19(木) 04:34:520952デフォルトの名無しさん
2007/07/19(木) 09:40:00先にC++だったけどC++使ってると違和感を感じる
やっぱりObjective-Cの方がいいよ
0953デフォルトの名無しさん
2007/07/19(木) 09:50:28これって、MFCじゃね?
MFCとCocoaを比較したらCocoaがマシかもしれない。
でもMFCのトンデモ設計とちょーサイアクGUIビルダーよりましといった事に意味は無い。
0954デフォルトの名無しさん
2007/07/19(木) 22:22:060955デフォルトの名無しさん
2007/07/20(金) 02:14:360956デフォルトの名無しさん
2007/07/20(金) 08:50:11逆にMVCを開発者側が制御できない変なもの使ってられないよ。
MVCを変に制御して困るものでC++といえばMFC。
0957デフォルトの名無しさん
2007/07/20(金) 09:52:470958デフォルトの名無しさん
2007/07/20(金) 10:20:200959デフォルトの名無しさん
2007/07/27(金) 20:00:510960デフォルトの名無しさん
2007/08/06(月) 11:22:300961デフォルトの名無しさん
2007/08/06(月) 12:07:290962デフォルトの名無しさん
2007/08/06(月) 12:32:230963デフォルトの名無しさん
2007/08/07(火) 10:38:330964デフォルトの名無しさん
2007/08/07(火) 11:05:51Mac OS XとC++でポトペタ開発しようよ。
0965デフォルトの名無しさん
2007/08/07(火) 11:14:550966デフォルトの名無しさん
2007/08/07(火) 12:01:590967デフォルトの名無しさん
2007/08/07(火) 12:07:230968デフォルトの名無しさん
2007/08/07(火) 12:49:00インターフェースビルダーよりどこが凄いのか押しえて下さい!!!!
0969デフォルトの名無しさん
2007/08/07(火) 13:03:28他人のハイパーなコンポーネント使ったり、ネットに派生コンポーネントが溢れたりするお。
0970デフォルトの名無しさん
2007/08/07(火) 13:16:29Apple が提供してる以外の新規パレット自体をつくることもできるよ。
http://www.bignerdranch.com/palettes/
確かにネット上にカスタムパレットが溢れてはいないが ...
0971デフォルトの名無しさん
2007/08/07(火) 13:26:51やっぱ、クラス派生する場合にはそれが無いとスゲー足かせだお。
0972デフォルトの名無しさん
2007/08/07(火) 14:07:211) view はパレットから D&D してカスタムクラス
2) controller も最近はバインディング用のをパレットから D&D
3) model は手で書いても良いし、CoreData でも良い
だとおもうんだけど。
Apple 提供のパレットはソースコードは流石にないよ。でもドキュメントは(英語なら)完備してる。まあ GNUStep が 8割方再実装してるから読みたけりゃよめばいいけど。
ネットにころがってるのは、そもそも数が少ないけども、ころがってるやつはソースも配ってると思うよ
あと、Objective-C はカスタムクラスが面倒だったら、元クラスのソースコードもってなくても元クラスにメソッドを追加できるよ。これは非常に便利。
0973デフォルトの名無しさん
2007/08/07(火) 14:12:17やっぱ、そうだよね。
プロジェクトと強く結びついたカスタムクラスであって、
クラスライブラリのベースクラスが派生したハイパークラスで溢れる、
というイメージじゃないだよね。
0974デフォルトの名無しさん
2007/08/07(火) 14:21:490975デフォルトの名無しさん
2007/08/07(火) 14:25:37Apple 謹製の NSTextView, WebView は充分 Hyper な気がするけど。
あと、Cocoa ではクラス派生をする前に大抵の処理は delegate で済む気もする。
(コントローラが標準 view の機能を拡張できるみたいなかんじ)
ポトペタでハイパーなコンポーネントののってるページの例をなんか URL おしえてください
0976デフォルトの名無しさん
2007/08/07(火) 14:33:25ttp://norg1964.hp.infoseek.co.jp/delphianworld/
0977デフォルトの名無しさん
2007/08/08(水) 00:43:11o ふたつめのにはいっぱいカスタム GUI コントロールがのってるけど、
あんまり Apple はカスタムコントロールをつくるのは推奨してない気がするし、
そういうことすると OS X ぽくないソフトになりがちで嫌われがちだと思われる
0978デフォルトの名無しさん
2007/08/08(水) 00:45:43こういうカッコいいコントロールもあるよ。まあ Apple がまだ公開してない API を再実装した奴だけど、Interface Builder でふつうに配置してクラスの名前をこれにかえるだけで使える
0979デフォルトの名無しさん
2007/08/08(水) 01:38:51スライダーとか機能的にも不十分だしIBにあるパーツだけじゃ足りなくなってきたからパーツの作り方勉強しなきゃ。
0980・∀・)っ-○◎●
2007/08/08(水) 02:12:080981デフォルトの名無しさん
2007/08/08(水) 08:48:20これが今の時代の開発ではネック。
>そういうことすると OS X ぽくないソフトになりがちで嫌われがちだと思われる
だからコントロールを派生して元々OS Xの描画の上に描画を足したり処理を足したりするわけじゃん。
0982デフォルトの名無しさん
2007/08/08(水) 11:16:36ProKitでなんとかなるかもしれないけど。
0983デフォルトの名無しさん
2007/08/08(水) 11:40:52まあ確かに、機能豊富で、ちゃんと Cocoa の window にマッチするパレット集が一杯おちてたら便利だろうね。
もうちっとデヴェロッパ層が厚くならないとだめかな。
0984デフォルトの名無しさん
2007/08/08(水) 12:11:560985デフォルトの名無しさん
2007/08/08(水) 12:20:11この黒パネルはLeopardのIBで実装されてる。
0986デフォルトの名無しさん
2007/08/08(水) 12:25:15http://pc11.2ch.net/test/read.cgi/tech/1186543111/
0987デフォルトの名無しさん
2007/08/08(水) 12:29:14Cocoa の話が駄目とすると GNUStep も駄目?
0988デフォルトの名無しさん
2007/08/08(水) 12:37:220989デフォルトの名無しさん
2007/08/08(水) 13:39:09AppleがCocoaで新たに組み込んだ関係がうぜ〜って事じゃね?
IBの話すんならGORMの話しろや!ってきっといいたいに違いないと思ってるのだが(w
あ,クラスライブラリはどうでもいい言語そのものの話をしたいって人だったのかも>984
0990デフォルトの名無しさん
2007/08/08(水) 14:22:590991デフォルトの名無しさん
2007/08/08(水) 15:24:090992デフォルトの名無しさん
2007/08/08(水) 18:27:56ListもObjective-Cの標準クラス?
0993デフォルトの名無しさん
2007/08/08(水) 22:29:02Apple の独自拡張も多いし。
Object と NSObject がどっちが「標準」かというと、
一社/一グループの実装だけじゃなくて、
標準を定めた文書が別個に存在するかという意味では
Openstep のほうが「標準化」されているのではないかと思わなくもない
GCC もせめて GNUStep の non-GUI 部分を一緒に配布してくれればいいのに。
0994デフォルトの名無しさん
2007/08/08(水) 22:38:23Rubyが一番好きかも知れないという俺ですが、
Objective-Cに興味を持っています。
他のOOPLとくらべてどうでしょうか。
メリットとかデメリットとか。
0995デフォルトの名無しさん
2007/08/08(水) 22:44:25Cocoa つかうぶんには非常に便利ですよ。
RubyCocoa も Leopard から標準になるので Ruby が
いいならそれでいいけれども、API の仕組みはかなり Objective-C に影響されているので、
RubyCocoa を使うための基礎として Obj-C を学ぶのは悪くないと思う
GNUStep はちゃんとつかったことがないのですいません
C++ を知っているひとのための、C++ と Obj-C の文法の比較は
http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf
が簡単にまとまってる。英語だけど。
0996デフォルトの名無しさん
2007/08/08(水) 22:49:00CとJavaが使えるなら30分で覚えられるからとりあえず使ってみれ
0997デフォルトの名無しさん
2007/08/08(水) 22:51:58Cocoa使ってウハウハにも興味はあるんです。
Win32でどうのこうのに飽きちゃってですね。
言語としても興味津々なんでリンク先熟読します。
0998デフォルトの名無しさん
2007/08/08(水) 22:52:59で、998ゲットォ!!
0999デフォルトの名無しさん
2007/08/08(水) 22:55:59Objective-C Language
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html
Cocoa Fundamentals Guide
http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/index.html
が面白いかも。あと他にもいっぱいあるよ:
http://developer.apple.com/documentation/Cocoa/index-date.html
いや、GNUStep にリンクはらんで済まんね ...
1000デフォルトの名無しさん
2007/08/08(水) 23:03:19Objective-C Part3
http://pc11.2ch.net/test/read.cgi/tech/1186581730/
次スレでもみんなよろしく〜
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。