トップページ⇒tech
1001コメント302KB

Objective-C

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん05/01/29 16:18:12
ほんとプログラマにとってはMacって
本当に興味が無いOSだよねw

Macでの標準的な言語であるObjective Cのスレすら無いし。
過去にはあったんだろうけど。
0002デフォルトの名無しさん05/01/29 16:18:56
前スレ
http://pc5.2ch.net/tech/kako/990/990574267.html
0003デフォルトの名無しさん05/01/29 16:19:32
オブジェクティヴィCってどんなもんなんだろうな。
少なくともC++よりはマシっぽいんだけど。
0004デフォルトの名無しさん05/01/29 16:22:58
またマカか
0005デフォルトの名無しさん05/01/29 16:32:53
存在しない言語でスレを立てるな
0006デフォルトの名無しさん05/01/29 16:42:05
#include <obgtk/obgtk.h>

@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
@implementation testApp
- 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
- free
{
    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
int main(int argc,char* argv[])
{
    id myApp;

    myApp = [[testApp alloc] initApp:&argc :&argv];
    [myApp run];
    return 0;
}

前スレの最後に載ってたけどgtk弄るだけでこんなかっこよくなる言語なんて初めて見たぜ
0010デフォルトの名無しさん05/01/29 17:14:16
>>1
勝手に俺のレスパクってスレ立てるなよw
0011デフォルトの名無しさん05/01/29 17:16:41
×こんなかっこよくなる言語なんて初めて見たぜ
○こんな括弧よくでる言語なんて初めて見たぜ

0012デフォルトの名無しさん05/01/29 17:17:55
[ >>1 release ];
0013デフォルトの名無しさん05/01/29 17:19:17
>>8の return [super free];が狙ってるようにしか見えない
0014デフォルトの名無しさん05/01/29 17:20:36
このスレmac系の板に移動したんじゃなかったっけ?
0015デフォルトの名無しさん05/01/29 17:27:38
移動したは良いが、ただでさえMacプログラマの人口が少ないのに、
さらにいないMac板に移ってカキコが無くなり、消えた。
0016デフォルトの名無しさん05/01/29 17:43:11
VisuaRubyもそれなりにいいよ
0017デフォルトの名無しさん05/01/29 17:47:06
Objective-C っていえば Mac っつーより NeXT とか OSX だろ?
0018デフォルトの名無しさん05/01/29 17:48:42
OSXはMacな訳だが
0019デフォルトの名無しさん05/01/29 17:51:58
>>13
自作自演乙
0020デフォルトの名無しさん05/01/29 19:05:27
今度はいつまで持つかな?
今のところ技術的な話題は無し。
0021デフォルトの名無しさん05/01/30 01:30:04
Mac mini 発売記念age.

マカは偉そうにPCの使い心地に対して文句を言うくせに、
使い心地が良くなるように工夫はしない「クリエイタ」が多いですね。
0022デフォルトの名無しさん05/01/30 01:31:26
>>9
こんなキモイ言語いらね

C♯の構文で
x86/PowerPCのネイティブがはければ最強なのに
0023デフォルトの名無しさん05/01/30 01:35:58
C#の構文なんて糞じゃん
0024デフォルトの名無しさん05/01/30 01:36:12
言語仕様どっかに落ちてない?
0025デフォルトの名無しさん05/01/30 01:39:16
http://www.toodarkpark.org/computers/objc/
0026デフォルトの名無しさん05/01/30 01:39:26
>>24
http://www.gnustep.org/resources/documentation/ObjectivCBook.pdf
0027デフォルトの名無しさん05/01/30 17:54:53
smalltalkが持つ理想郷と、Cの泥くさい、現実的な部分
を併せ持つ言語だと思う。
 GUI部分はオブジェクト拡張部分でさくっと実装、
(画像、音声処理の)エンジン部分はCでねちねち実
装という場合に、もっとも真価を発揮すると思う。
0028デフォルトの名無しさん05/01/30 17:56:58
オブジェクト指向なんてパラダイムのひとつに過ぎないというのに、おおげさに
騒ぎ立てる人を見掛けると、いつも不思議に思っている。
0029デフォルトの名無しさん05/01/30 21:11:26
つか言語なんぞどうでもいい
0030デフォルトの名無しさん05/01/30 21:13:42
>>28
そういう連中はCライクな言語しか触った事がないんだよ。
0031デフォルトの名無しさん05/01/30 23:40:32
まずc++を勉強してからじゃないと難しいのでしょうか?cは知っているんですが。
0032デフォルトの名無しさん05/01/31 00:04:16
>>31
微妙・・・C++慣れるとObjective-C行くのも抵抗はあるぞ?
興味あるなら直接行けば(゚з゚)イインデネーノ?
正直、考え方とかを除くと言語自体はそれ程覚える所はない・・・

0033デフォルトの名無しさん05/01/31 00:19:22
C++は関係ないので勉強する必要はまったくありません。
0034デフォルトの名無しさん05/01/31 00:46:20
>>28 はオブジェクト指向の概念を理解出来ずに挫折した香具師と思われ
0035デフォルトの名無しさん05/01/31 00:50:50
>>34
なんでそう思うんだろう…
0036デフォルトの名無しさん05/01/31 01:19:47
>>3233
どうもです。アーロンの本はC++を知ってるのを前提にって事になっているので、C++知らないので読むのやめちゃったんですね。
0037デフォルトの名無しさん05/01/31 01:28:25
>>34
オブジェクト指向が特別重要でないと考える、ならば、オブジェクト指向の概念を理解できずに挫折した
これは成り立つかどうかは怪しいね。

オブジェクト指向の概念を理解できずに挫折した、ならば、オブジェクト指向が特別重要でないと考える
これは成り立つかどうかは難しいね。
0038デフォルトの名無しさん05/01/31 02:20:33
これほど使っている人が少ない言語も珍しい。
0039デフォルトの名無しさん05/01/31 02:33:05
> これほど使っている人が少ない言語も珍しい。
いや珍しくはないと思う。
0040デフォルトの名無しさん05/01/31 02:35:13
>>38
brainf*ck
0041デフォルトの名無しさん05/01/31 06:17:34
>>40
Objective-Cってそのカテゴリなのか。
確かに文法はちょっと変態的かもしれないけど。
0042デフォルトの名無しさん05/01/31 06:59:08
オープンソースアプリでの使用実績。
Objective 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:22
Whitespace
0044デフォルトの名無しさん05/01/31 10:02:06
>>42
C#がそこまで使われていたなんて知らなかった。
逆にVBがそんなに使われていないとも知らなかった。
0045デフォルトの名無しさん05/01/31 10:42:42
Objective-Cが626件というのも驚異的な数字だと思うんだけど。
0046デフォルトの名無しさん05/01/31 11:02:07
>>45
*オープンソースでは*わりと使われているみたいですね
0047デフォルトの名無しさん05/01/31 14:04:03
>>44
VBってオープンソース向けではないでそ
0048デフォルトの名無しさん05/01/31 19:05:32
VBはオープンソース向けでないにもかかわらず、
オープンソースでそれだけ使われているってことね。

Objective-Cがオープンソース向けかどうか知らないけど、
オープンソース向けとしてなら少ないし、
オープンソース向けでないとしても、
同じくオープンソース向けでないVBよりも少ない。
0049デフォルトの名無しさん05/01/31 21:26:54
Objective-Cそのものはオープンソースだけどね。
0050デフォルトの名無しさん05/01/31 21:38:25
>>49
そんなこと言ったらCだってオープンソースだし、Javaだってオープンソースだ。
0051デフォルトの名無しさん05/01/31 22:54:20
というか、もうMac専用言語だと割り切った方が良い。

>>36
OOPやってた香具師ならアポのPDFと、その辺にあるネットの
説明ぐらいで充分。元々大した量じゃない
後はサンプルなんか感触つかめばエエ話
0052デフォルトの名無しさん05/02/01 01:08:27
Mac専用言語だと思ったら、ますます >>45 が驚異的に思えるな。
CができてOOPが理解できてれば、すんなり入れて楽に使えるから、たしかに導入時のハードルは低いな。
0053デフォルトの名無しさん05/02/01 04:46:39
この本を読めばC++よりObjective-Cの方がオブジェクト指向を
忠実に実現しているのが分かると思う。
第1版は絶版らしいので第2版を紹介
ttp://www.amazon.co.jp/exec/obidos/ASIN/4775303716/
今風にMacOSX向けの記述が追加されてるそうな。
0054デフォルトの名無しさん05/02/01 11:45:58
この言語良く知らないんだけど、GCって付いてるの?
0055デフォルトの名無しさん05/02/01 13:21:41
>>54
基本的にはできない。
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
>>52
うーん。言語仕様(マニアックに突っ込まなきゃ)だけなら
Objective-C、C++、Java、C#、その他も覚える量は大して
変らんと思うよ。

実際ある程度の物を作るんだったら、フレームワーク覚えるのが
一番時間かかる(OOP関連除けば)んだから。。
0057デフォルトの名無しさん05/02/01 17:06:34
Cからの移行なら完全上位互換の Objective-C が楽なのは明確だろ。
0058デフォルトの名無しさん05/02/01 17:09:00
ObjectiveCでλ式は書けますか?
0059デフォルトの名無しさん05/02/01 17:43:13
>>57
そうか?
C++の方が先だったので実際にC→Objective-Cをやった訳
ではないけど、覚え易さに強調(売りに)するほどの差は無い
とは思うがね。まぁどっちでも良いわさ。
C→Objective-Cも、C→C++も別に大変ってわけでも無いし
0060デフォルトの名無しさん05/02/01 19:46:19
C++は無駄な拡張しすぎだと思う
0061デフォルトの名無しさん05/02/01 19:56:24
>>60
アーー、どんな拡張っスか。
僕様チャン頭ワりーんで、わかんねーッ
アヒャww
0062デフォルトの名無しさん05/02/01 20:01:28
スタックにインスタンスとれるとこなんか、
なーんかやな感じなんだよなあC++
0063デフォルトの名無しさん05/02/01 20:14:59
>>62
俺はそこが好きなんだよね……
0064デフォルトの名無しさん05/02/01 20:18:13
Objective-Cは長いのでOCと書いても良いですか
0065デフォルトの名無しさん05/02/01 20:30:01
ふつー ObjC
0066デフォルトの名無しさん05/02/02 04:11:21
他スレみたいにObjective-Cがらみのプログラミングで
どうするのかとか聞くスレかと思いきや。

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:01
Objective-C++ってなに?
0070デフォルトの名無しさん05/02/02 14:08:06
Cocoaはさっぱり!!! version.4
http://pc7.2ch.net/test/read.cgi/mac/1091927026/
0071デフォルトの名無しさん05/02/02 14:53:09
Cocoaはやっぱり!!!
http://202.228.189.75/
0072デフォルトの名無しさん05/02/02 14:53:59
>>71
怪しいから踏みたくないなぁ…
0073デフォルトの名無しさん05/02/02 15:32:44
>>69
http://homepage.mac.com/mkino2/spec/objectiveC++/objectiveC++.html
0074デフォルトの名無しさん05/02/02 17:15:00
>>72
>>71 は森永製菓だから大丈夫
0075デフォルトの名無しさん05/02/02 17:35:55
日本語訳あるのね。

Objective-C プログラミング言語
http://developer.apple.com/ja/documentation/cocoa/Conceptual/ObjectiveC/index.html
0076デフォルトの名無しさん05/02/02 19:01:15
>>73
Objective-C と C++ の Rhapsody っていうより
ただしっちゃかめっちゃかに見える
0077デフォルトの名無しさん05/02/02 20:54:37
ちょっとうろおぼえ何だけどさ、Nextの実装だと
{obj message]
でobj がnil でも落ちなかったよね?
0078デフォルトの名無しさん05/02/02 22:35:56
たしかnilは何でも受けるんじゃなかったっけ?
0079デフォルトの名無しさん05/02/03 00:43:38
誰も答えを知らない言語・・・。
0080デフォルトの名無しさん05/02/03 00:45:03
俺もこのスレ見てるけど使った事ないし。
0081デフォルトの名無しさん05/02/03 02:12:37
>>77-80
みんな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
>>81
できた。
ちょっと構文規則でも読んでくる。
0083デフォルトの名無しさん05/02/03 11:01:50
読んだ。なんとなく解かった。C++の方が使いやすいのは慣れていないからだろうか。
ともかくとして、疲れたから寝る。おやすみ。
0084デフォルトの名無しさん05/02/03 15:52:31
10.4でpersistent objectが実装されるらしい。XML/RDBベース。
0085デフォルトの名無しさん05/02/03 15:53:49
>>83
ObjCは未知のサブクラスのインスタンスを呼び出せる。
0086デフォルトの名無しさん05/02/03 16:20:02
>>84
今でも nib っていうのがあるけど
0087デフォルトの名無しさん05/02/03 17:02:12
10.4のQTKitに期待!
No More カーボン!
0088デフォルトの名無しさん05/02/03 20:57:05
nilが全てのメッセージを受け取る言語だと
nilで死ぬことないから、逆にチェックを厳密にやらないと
分かりづらいバグが出るだろうね。
しかし当たり前の話だけどnilはOKなのに
releaseしたゴミポインタにメッセージを
送ると普通にSEGVで死ぬのがムカつく(w

[obj release]
obj=nil;

これで安全。
0089デフォルトの名無しさん05/02/03 21:00:20
releaseだったら当該コードで死亡するところが、
autorelease pool つかうとどこが悪くて落ちるかわかんなくて
結構デバッグ大変じゃない?
0090デフォルトの名無しさん05/02/03 21:13:26
>>88
なんか前半と後半で矛盾したことを言ってるぞ。

>releaseしたゴミポインタにメッセージを
>送ると普通にSEGVで死ぬのがムカつく(w

ここで死んでもらわんとわかりづらいバグになるだろうがw
0091デフォルトの名無しさん05/02/04 01:10:22
>90
え、QTKitってCocoaでバリバリQuickTimeいじれるようになるんじゃないの、、、
NSMovieViewって基本的なことしか今はできないですよね?
いろいろやろうとすると結局Carbonっていうのがなぁ、、、
QTKitでCarbonと同じようにCocoaからQTがいじれるのかなーと思ってます。
0092デフォルトの名無しさん05/02/05 16:25:45
>>86
nibってInterface Builderの、だよね。
変更したインスタンスは保存できんよ。
0093デフォルトの名無しさん05/02/06 17:04:21
ObjCの実装で実績あるのってappleのとgccぐらい?
0094デフォルトの名無しさん05/02/06 18:16:20
>>93
Appleの=gcc な訳だがw
0095デフォルトの名無しさん05/02/06 20:47:27
NSなんちゃら
0096デフォルトの名無しさん05/02/07 03:19:48
Stepstone の Objective-C 使ってますた
0097デフォルトの名無しさん05/02/07 11:29:15
OSXで初プログラミング中なんだけど、Interface BuilderとObjective-C++での
開発はめちゃくちゃ楽やね。もちろん最初は情報がなかなか捜せなくて、数行
で書けることをWebで見つけ出すのに数時間なんてことやってたけど。Winに
もGNUStep入れてみようかと思ってる。
0098デフォルトの名無しさん05/02/11 19:12:15
age
0099デフォルトの名無しさん05/02/12 21:14:32
メモリ管理のできるパフォーマンスのよいjavaみたいなもんだと
思うのだが、なぜか人気がない。why?
0100デフォルトの名無しさん05/02/12 21:24:13
宣伝してないからかな。
ところでWindowsで使えるんか?
Cocoaが無いと意味ないか。
0101デフォルトの名無しさん05/02/12 21:56:30
ttp://www.mosa.gr.jp/mpj2000/jul/toku1/toku1.html
■ このスレッドは過去ログ倉庫に格納されています