07/08/08 12:33:50
*** プログラム技術板 ***
【マック】Macintoshプログラミング質問箱
スレリンク(tech板)
Mac OS Xでの開発環境はどれがイイ?
スレリンク(tech板)
Macは難しすぎる
スレリンク(tech板)
*** 新・mac板 ***
Cocoaはさっぱり!!! version.8
スレリンク(mac板)
Macでプログラミング{6}
スレリンク(mac板)
Xcode part5
スレリンク(mac板)
【ADC】Apple Developer Connection
スレリンク(mac板)
3:デフォルトの名無しさん
07/08/08 12:35:16
if((self = [ super init]) != nil){
}
return self;
4:デフォルトの名無しさん
07/08/08 16:22:49
if(self = [super init]) {
}
でいいじゃん
5:デフォルトの名無しさん
07/08/08 21:39:10
nilを確認したいんだよ。nilをよー
[obj release];
obj = nil;
とかするだろ?
6:デフォルトの名無しさん
07/08/08 23:09:46
こっちが本スレだよね?
7:デフォルトの名無しさん
07/08/08 23:17:54
こっちの方が早い
8:デフォルトの名無しさん
07/08/08 23:24:23
Objective-C プログラミング言語
URLリンク(developer.apple.com)
Objective-C入門
URLリンク(wisdom.sakura.ne.jp)
ダイナミックObjective-C
URLリンク(journal.mycom.co.jp)
Objective-C FAQ Answers
URLリンク(wwwa.dcns.ne.jp)
かんたんObjective-C
URLリンク(www.nslabs.jp)
9:デフォルトの名無しさん
07/08/08 23:24:51
あっちのスレは削除依頼に出しました
ごめんなさい
10:デフォルトの名無しさん
07/08/09 09:36:37
[self age];
11:デフォルトの名無しさん
07/08/09 10:55:41
Étoilé project
>URLリンク(www.etoile-project.org)
一応GNUstep系のデスクトップ環境ってことで。独自拡張も有りつつ、0.2リリースもLiveCDも合わせて公開されたし。
GNUstep
>URLリンク(www.gnustep.org)
Cocoa?何それ?って人はこちらに(w。
>URLリンク(www.gnustep.org)
このあたりは読むと少しは幸せになれると思われ。Cocoa使いでもソース読むといろいろと楽しい。
12:デフォルトの名無しさん
07/08/09 11:03:28
Etoileってのはおもしろそう
13:デフォルトの名無しさん
07/08/12 18:47:49
いートイレ
14:デフォルトの名無しさん
07/08/13 13:50:08
initは初期化に失敗したときは何を返せばいいの?
15:デフォルトの名無しさん
07/08/13 14:19:22
nil。
- (id)init
{
self = [super init];
if(self) {
// hogehoge
if(failed) {
[self autorelease];
return nil;
}
return self;
}
return nil;
}
16:デフォルトの名無しさん
07/08/13 14:48:23
>>15
ありがとう。autoreleaseしとくのか。
17:デフォルトの名無しさん
07/08/13 14:57:52
それってほんとにあってる?
18:デフォルトの名無しさん
07/08/13 17:00:54
正直聞いたことない
19:デフォルトの名無しさん
07/08/13 21:01:22
URLリンク(developer.apple.com)
20:デフォルトの名無しさん
07/08/13 21:45:41
普通失敗したら、nilを返す前に
[self release];のはず
21:デフォルトの名無しさん
07/08/14 01:30:49
NSAutoreleasePool が無い場合もあるからね。
安全のために autorelease はやめた方がいい。
普通は大丈夫だからどうでもいいっちゃどうでもいいけど。
22:デフォルトの名無しさん
07/08/14 15:30:43
自分を解放するのってなんか怖くね?
23:デフォルトの名無しさん
07/08/14 16:03:22
クラスメソッドでインスタンス開放してるだけなんだから別に問題なくね?
24:デフォルトの名無しさん
07/08/14 16:25:50
クラスメソッドじゃなくね?
25:デフォルトの名無しさん
07/08/14 17:01:25
あっ本当だ。勘違いしてた。すまん
26:デフォルトの名無しさん
07/08/15 07:30:23
自分は解放されたいです
27:デフォルトの名無しさん
07/08/16 10:25:40
autorelease か release かってのは NSFoundation 使ってるかどうかで決めるんじゃないのかね?
28:デフォルトの名無しさん
07/08/16 14:06:08
だれかCocoa使わずに標準クラス使ってコード書いてる神いる?
29:デフォルトの名無しさん
07/08/16 14:11:08
つ X Window / B$D UNIX のアプリのコード
30:デフォルトの名無しさん
07/08/16 14:33:05
ObjC使ってんの?
31:デフォルトの名無しさん
07/08/16 15:23:41
いや、テスト的にLazarus使った。
簡単に動作するお。
32:デフォルトの名無しさん
07/08/16 15:40:26
>>28
なんか変な返事ばっかだが gcc 附属の Object クラスを基底クラスにして Objective-C を
使うって意味なら書いたことある.
書きながら NSArray と NSDictionary と NSAutoreleasePool が恋しくなってきたが…
33:デフォルトの名無しさん
07/08/16 17:33:34
GNUstepは使うけれど、これじゃCocoaと大して違わないしなぁ。
俺様まさか古のSoftwareICなクラスを使ってる人探してる?(w
34:デフォルトの名無しさん
07/08/16 18:13:23
>>32
おまいさん変態ですか?
35:デフォルトの名無しさん
07/08/16 20:42:22
stepstone使ってたよ
36:デフォルトの名無しさん
07/08/16 22:33:37
MinGWでObjCでWin32API叩いたり
37:32
07/08/16 23:27:32
>>34
否定はしない.
Linux なんで Cocoa はなかったし,GNUStep は Base だけでもかなりでかいんで採用しなかった…
でも結局途中で自前でArray.mとDictionary.mを実装したりで面倒だったよ…
38:デフォルトの名無しさん
07/08/16 23:44:46
29, 31 はここが Obj-C スレであることを理解できない可哀想な人なんではなかろうか。
39:デフォルトの名無しさん
07/08/17 14:21:36
>>37
GCCについてるList.hってどうよ?
ってかこれって他のObjC処理系(あるのかどうか知らんけど)にもついてんの?
40:32
07/08/17 15:32:58
>>39
最近のGCCにはそんなのが付いてくるんですか?
objc-list.h や hash.h とは別物なんですよね?
あれはCのAPIですし…
41:デフォルトの名無しさん
07/08/17 16:33:02
俺の環境(OSX)だと/usr/include/objcにList.hってのがあるわ。
コメント見る限り、「最近の」って感じではなさそうだけど。
/*
List.h
Copyright 1988-1996 NeXT Software, Inc.
DEFINED AS: A common class
HEADER FILES: objc/List.h
*/
42:32
07/08/17 16:45:04
ちょっと調べてみた,
gcc-3.3.6 と gcc-4.1.2 の環境のLInux では/usr/include や
/usr/lib/gcc/i486-linux-gnu/include 以下にも List.h は存在しなかった.
あと win32 の mingw の gcc-3.4.2 環境や cygwin の gcc-3.4.4 環境にも存在しなかった.
OSX だけじゃないかな?
43:32
07/08/17 16:48:20
あー
>Copyright 1988-1996 NeXT Software, Inc.
なんだから OSX には入ってても素の gcc には入ってないのでしょうね…
44:デフォルトの名無しさん
07/08/17 16:56:55
OSXだとObjC関連のヘッダには全部NeXTのコピーライト入りだけどね。
Object.hとか。
45:デフォルトの名無しさん
07/08/20 17:55:14
なあなあ、俺らでObjective-Cの新しいクラスライブラリ作らね?
46:デフォルトの名無しさん
07/08/20 18:44:43
>45
設計方針をどうするかで纏まらないとかってオチ?(汗
47:デフォルトの名無しさん
07/08/20 18:48:25
いや、
・C++版をコピーするも使われない
・C++に移植されて終焉
のどっちかしか未来が無いってオチ。
48:デフォルトの名無しさん
07/08/20 18:53:10
どんなクラス作るの?
49:デフォルトの名無しさん
07/08/20 19:07:10
2CHObject
50:デフォルトの名無しさん
07/08/20 19:46:57
それはクラス名として不正では?
51:デフォルトの名無しさん
07/08/20 23:33:53
>>47
C++ と Objective-C はメッセージ周りの概念がかなり違うから、
大規模なクラスライブラリはなかなか互いには移植できないと思う ...
52:デフォルトの名無しさん
07/08/21 01:55:09
>>45
15年位前に某所でそれを提案したんだけど自然消滅
53:デフォルトの名無しさん
07/08/21 14:31:32
>>52
15年前とはObjC人口が違うからな
54:デフォルトの名無しさん
07/08/25 13:58:52
>>45
GTK++ のラッパー GTK-- みたいなのを作って欲しい
55:デフォルトの名無しさん
07/08/25 15:48:27
>>54
obgtk や gnome-objc はどこに行ったのだろうか…
56:デフォルトの名無しさん
07/08/25 20:02:29
gtkイラネ
57:デフォルトの名無しさん
07/08/25 20:17:45
>>56
kwsk
58:デフォルトの名無しさん
07/08/26 11:22:06
まあ gtk の Obj-C への移植より先に
gtk を Aqua で X11 無しに移植するのが先決だろうね
59:デフォルトの名無しさん
07/08/26 13:47:38
OSXでわざわざgtk使うのかよ
60:デフォルトの名無しさん
07/08/26 15:01:38
普通は使う必要性はないだろうが、gtkベッタリのを移植する手間は思いっきり省ける(w
61:デフォルトの名無しさん
07/08/27 00:25:02
OSXだってgtkでもQtでもWxWidgetsでも選択肢は多い方が仕事はしやすいよ。
62:デフォルトの名無しさん
07/08/27 16:13:32
>>61
それはもっともなのだがマックプログラマは無駄にCocoaで再実装する方を
選びたがるからちっとも完成度が上らないんだよな…
63:デフォルトの名無しさん
07/08/27 16:34:10
>61
それはプログラマじゃなくて、ユーザーから要望があるから。
マカーは細かい差異を異常に気にするんよ。
64:デフォルトの名無しさん
07/08/27 16:47:40
レス番ずれてるぞ
さてはBSユーザか
65:デフォルトの名無しさん
07/08/27 17:22:50
まぁマカーはどうでもいいんだけど Linux 向けに gnome-objc は
ちゃんと保守してほしかったなぁ…
URLリンク(ftp.gnome.org)
1999年って…
66:デフォルトの名無しさん
07/08/27 22:55:31
>>61
MacOSX でも Qt と wxWidgets は使える。Gtk+ は大したアプリ無いしイラネ。
>>65
ObjC は C を混ぜて書けるんだから、Gtk+ 部分だけ C で書いたら良いじゃない。
67:デフォルトの名無しさん
07/08/28 01:40:42
>>62
まあ MVC がきちんと分離されてれば、
Cocoa のガワをかぶせるのはそんなに大変じゃないよね ...
68:デフォルトの名無しさん
07/09/03 22:47:54 BE:375293838-2BP(400)
#import <stdio.h>
#import <objc/Object.h>
int main(int argc, char *argv[])
{
id agemasuyo = [Object new];
fputs(stderr, "agemasuyo");
[agemasuyo release];
return 1;
}
69:デフォルトの名無しさん
07/09/03 23:45:16
IDE はありますか?
70:デフォルトの名無しさん
07/09/04 00:46:18
>69
MacOSXならXCode & Interface Builder
GNUstepならProject Center & GORM
って、マジレスしていいのだろーか?
71:デフォルトの名無しさん
07/09/04 00:47:57
忘れてた。最強のIDE emacs
72:デフォルトの名無しさん
07/09/04 15:41:37
Eclipse を期待してた。
73:デフォルトの名無しさん
07/09/04 17:30:57
Windows 用の IDE はないのかい?
74:デフォルトの名無しさん
07/09/04 19:40:06
>>73
cygwin で vi + make + gcc
75:デフォルトの名無しさん
07/09/05 01:17:15
すみません、NSBezierPath について教えて下さい。
NSBezierPath *pathCollection をあらかじめ作っておき、
直線と円弧で構成された幾何学図形(複数)をそれぞれNSBezierPath *aPathとして作り、
[pathCollection appendBezierPath: aPath] とやっています。これを繰り返して、物が
膨らむ様子のアニメーションを作っているのですが、途中でデバッガが立ち上がり、
[pathCollection stroke] で止まってしまいます。pathCollection 中は以下のようになって
います。止まる前までは順調に描けているので、何が悪いのか分からなくて……
よろしくお願いします。
_state 2
_segmentCount 185
_segmentMax 310
_head 0x1976200
_lastSubpathIndex 184
_elementCount 121
_lineWidth 1
_bounds x=0, y=0, width=0, height=0
_controlPointBounds x=0, y=0, width=0, height=0
_flags 3 '¥003'
_miterLimit 10
_flatness 1
_dashedLinePattern 0x0
_dashedLineCount 0
_dashedLinePhase 0
76:デフォルトの名無しさん
07/09/05 05:28:03
>>75
そんな突然デバッガの、それも pathCollection の出力だけかかれてもわからんよ。
クラッシュレポーターにでるような
スタックトレースかいてくれたほうがましなんだけど。
そのまわりのソースコードをすこしぐらい書いて下さい。
77:デフォルトの名無しさん
07/09/05 11:34:24
こういうので良いのでしょうか?詳しくないので見当違いでしたらごめんなさい。
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0xc0003c2d
Thread 0 Crashed:
0 com.apple.CoreGraphics 0x9048c018 draw_line + 3776
1 com.apple.CoreGraphics 0x9048b144 line_to + 1448
2 com.apple.CoreGraphics 0x9048ab4c aa_line_render + 804
3 libRIP.A.dylib 0x9482a3ac ripr_Coverage + 1304
4 libRIP.A.dylib 0x94829d48 ripc_Render + 504
5 libRIP.A.dylib 0x94832474 ripc_DrawPath + 488
6 com.apple.CoreGraphics 0x904533bc CGContextDrawPath + 176
7 com.apple.AppKit 0x938beeb8 -[NSBezierPath(NSBezierPathDevicePrimitives) _doUserPathWithOp:inContext:] + 252
8 com.apple.AppKit 0x938bec7c -[NSBezierPath stroke] + 212
9 com.mac.*********** 0x00031914 -[MyDocument turnEndOperation] + 3228 (MyDocument.m:486)
10 com.mac.*********** 0x00030c2c -[MyDocument startCaluculation:] + 1080 (MyDocument.m:333)
11 com.apple.AppKit 0x93842c4c -[NSApplication sendAction:to:from:] + 108
つづく
78:デフォルトの名無しさん
07/09/05 11:35:14
つづき
12 com.apple.AppKit 0x93842b80 -[NSControl sendAction:to:] + 96
13 com.apple.AppKit 0x93842a60 -[NSCell _sendActionFrom:] + 156
14 com.apple.AppKit 0x93842540 -[NSButtonCell performClick:] + 472
15 com.apple.AppKit 0x93841d64 -[NSButton performKeyEquivalent:] + 424
16 com.apple.AppKit 0x93841b68 -[NSView performKeyEquivalent:] + 140
17 com.apple.AppKit 0x93841ac8 -[NSWindow performKeyEquivalent:] + 32
18 com.apple.AppKit 0x9389c820 -[NSApplication _handleKeyEquivalent:] + 56
19 com.apple.AppKit 0x937a6408 -[NSApplication sendEvent:] + 2944
20 com.apple.AppKit 0x9379dd10 -[NSApplication run] + 508
21 com.apple.AppKit 0x9388e87c NSApplicationMain + 452
22 com.mac.*********** 0x0000efac main + 64 (main.m:13)
23 com.mac.*********** 0x0000290c start + 812
24 com.mac.*********** 0x00002610 start + 48
79:デフォルトの名無しさん
07/09/05 19:37:52
ソースを書けって言ってなかったっけ?
80:デフォルトの名無しさん
07/09/05 22:00:41
クラッシュレポートでほんのちょっとだけ想像がついてきました。
ソースも書いてね。
というかデバッグってのは自分でいろいろみながら
どこがおかしいのかなぁ、と考えるわけでさ。
こういう応答しかできないってことはデバッグに
苦労してるだろうなぁというのはわかるけど ...
81:デフォルトの名無しさん
07/09/15 14:33:14
UIKitおもすれー
82:デフォルトの名無しさん
07/09/15 16:58:40
GormとProjectBuilder入れました。
83:デフォルトの名無しさん
07/09/30 11:27:08
プロトコルへの適合を動的に削除したい時って
objc_protocol_listをいじればいいのかな?
84:デフォルトの名無しさん
07/09/30 15:02:45
オブジェクトに演算子は定義できますか?
85:デフォルトの名無しさん
07/09/30 15:08:28
演算子の多重定義は実装してないようですね。自己解決しました。
86:デフォルトの名無しさん
07/09/30 19:50:30
>>85
Objective-C++ つかえ
87:デフォルトの名無しさん
07/10/20 21:12:09
>Windowsの世界には、Objective-Cプログラマの数は0だから、事実上不可能だな。
URLリンク(www.haloscan.com)
88:デフォルトの名無しさん
07/10/22 14:56:54
iPhone/touchのtoolchain遊んでる奴いるかい
いや、聞いてみただけ
89:デフォルトの名無しさん
07/10/28 10:20:25
Objective-C 2.0 だってよ
URLリンク(developer.apple.com)
90:デフォルトの名無しさん
07/10/30 23:06:55
何をいまさら・・・
ってム板なら知らないやつがいてもおかしくないか
91:デフォルトの名無しさん
07/10/30 23:19:46
いや、前スレで散々話題になったと思うが。
92:デフォルトの名無しさん
07/10/30 23:29:30
URLリンク(notepad-plus.sourceforge.net)
変態だ…変態すぎる…
93:デフォルトの名無しさん
07/10/30 23:32:42
グロ注意
94:デフォルトの名無しさん
07/10/31 12:34:21
ログインしなくても見れるようになったので :
URLリンク(developer.apple.com)
いや、ぼくみたいにお金なくて Online 会員のひともいるかなとおもって、貼ってみたんだけど、だめですか ???
いまいち @synthesize と @dynamic の違いがわからないんですが
おしえてください
95:デフォルトの名無しさん
07/10/31 13:40:47
>>94 ナイス張り!
96:デフォルトの名無しさん
07/10/31 14:04:07
macでしか使えないのが痛い・・
97:デフォルトの名無しさん
07/10/31 14:12:21
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――‐┬┘
|
____.____ |
| | | |
| | ∧_∧ | |
| |( ´∀`)つ ミ |
| |/ ⊃ ノ | |
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | ミ Xcode(ObjC2.0)
98:デフォルトの名無しさん
07/10/31 14:26:29
捨てないで ...
個人用のちっちゃな GUI ソフトを作るのは簡単で良いですよ
GC がついてさらに簡単になりました
99:デフォルトの名無しさん
07/10/31 14:34:12
GCもう使ってる?
100:デフォルトの名無しさん
07/10/31 14:46:54
とりあえずつかってみました
(perl でつくってた画像ダウンローダーの GUI ラッパーをつくっただけですが)
retain / (auto)release を書かなくて良いのでかなりタイプ数がへりますね
アクセッサをかくのもルーチンワークがうざいので @property は便利
あとは UI は binding をすれば、かなりなにもかかなくてもよい気がする
101:デフォルトの名無しさん
07/10/31 14:56:14
@propertyってメンバ変数のアクセス「.」と同じようなもん?
102:デフォルトの名無しさん
07/10/31 15:04:39
ドキュメントによると、
id x; に対して、
x.area = y; は [x setArea: y];
y = x.area; は y=[x area];
と全く等価だそうです。
public メンバにアクセスするには
x->area
とか書かないといけないはず。(やったことないのでわからないけど。)
@interface 内で @property をつかってそういうのを宣言して、
@implementation 内で @synthesize をつかってアクセッサを生成するみたい
アクセッサをつかう重要な点は、そうしておくと KVO というか binding が効くということ。area がなんか GUI にバインドしてあると x.area = 10; とかすると GUI の表示が自動的にかわる。
103:デフォルトの名無しさん
07/10/31 16:45:55
どうでもいいけど、ObjCオブジェクトのインスタンス変数を@publicにしてる奴なんて
見たことないぞ。
104:デフォルトの名無しさん
07/11/01 21:36:24
Rubyでいい気がする
105:デフォルトの名無しさん
07/11/04 05:13:51
>>104
ネイティブコード吐けるようになったらまたおいで
106:デフォルトの名無しさん
07/11/04 06:26:40
ObjC も [] の中はネイティブコードじゃないと言っても過言じゃないかと…
107:デフォルトの名無しさん
07/11/04 08:49:32
KVO とか内部で無茶苦茶やってるよね。isa-swizzling とか。
正気の沙汰じゃない。
108:デフォルトの名無しさん
07/11/04 23:14:13
でもネイティブコードには変わりないんだよ
109:デフォルトの名無しさん
07/11/04 23:52:58
分かってないべ?
110:デフォルトの名無しさん
07/11/05 11:52:34
なかなか楽しいけどね。
RubyCocoaでWebページ表示
URLリンク(japan.zdnet.com)
111:デフォルトの名無しさん
07/11/09 18:16:17
GCC3.3で、例外を投げると値を返すはずのメソッドが値を返してなくても警告が出なくなるのな。
112:デフォルトの名無しさん
07/11/28 10:17:28
Objective-C 2.0プログラミング言語
URLリンク(developer.apple.com)
113:デフォルトの名無しさん
07/12/10 13:38:27
URLリンク(twitter.com)
114:デフォルトの名無しさん
07/12/21 20:47:50
Leopard の objc/Object.h 見ると、2.0 では Object クラスはさぶくなってるのね。
「ルートクラスには NSObject 使えよゴラア」という意味でしょうか?
115:デフォルトの名無しさん
08/01/04 02:51:11
保守
116:デフォルトの名無しさん
08/01/06 21:53:31
Objective-C
117:デフォルトの名無しさん
08/01/06 23:47:16
windowsの環境だとgnustepやっぱり普通はですかね。
gunstepがないPCには、ランタイムとかどうやって持ってけばいいのか…
118:デフォルトの名無しさん
08/01/07 17:42:24
これを読むとシアワセがくるかも。
URLリンク(mediawiki.gnustep.org)
URLリンク(www.gnustep.org)
まとめると
- exe本体と同じディレクトリ階層に関連するdllを全部集める。
- gnustepが使う各種パスをソレに応じて書き換える。
の2点で出来るらしい。
119:デフォルトの名無しさん
08/01/07 18:23:06
日本語の情報が少ないと思ったら英語に活路があったんですか。
shipping するときは他のPCの方にもmsys, mingw(gcc) がないとダメってことですか?
それとgunstep runtime の最小サイズが書いてませんでしたが、どれほど必要でしょうか。
objc はjava の源流なんで非常に興味あったんですけど、mac に取られてばっかりで
どうして日本だとwindows な環境で広がらないんでしょうね。
objc はまだ趣味の範囲ですけど。
120:118
08/01/07 23:44:08
README.MinGWの方の8.Cleanupに
First thing, you should remove the MSYS libraries, which we never use --
rm Gomoku.app/msys-1.0.dll
rm Gomoku.app/msysltdl-3.dll
rm Gomoku.app/libW11.dll
rm Gomoku.app/libperl.dll
.
.
と書いてあるからgccは必要ないですよ。
runtimeのサイズだけど、IntelMacにしてVPCが動かずWinが触れないので判らん。
winがらみの仕事がくればVMWareとか購入してこっちの遊びも再開出来るけど(w
121:デフォルトの名無しさん
08/01/08 00:05:01
>>119
>どうして日本だとwindowsな環境で広がらないんでしょうね。
Cocotron があるじゃん
Java は ObjC というよりは OPENSTEP をやりたかったんだろうね
122:デフォルトの名無しさん
08/01/08 00:10:11
あ、日本じゃないか。
日本人は何故かみんな C++ が大好きだからねえ。
123:デフォルトの名無しさん
08/01/08 00:22:35
macがらみの仕事てのが想像できませんが、なんかスゴイ仕事してそうですねw
>122は日本ではPC(ソフト)に興味ないし、もともとの発祥が英語圏で、MAC-OSでもMS-OS支配でも別にどうでもいいからじゃないですか?
ハード(日立・富士通・NEC・ソニーとか)の方は支配にこだわっていて、そうでもないですけど。
macの仕事て例えばどういうのがあるんでしょうか?
124:デフォルトの名無しさん
08/01/08 00:28:28
みんながC++みたいな変態が好きなんじゃなくて、それしか選択肢がないからじゃないですか。
objcの情報も日本語では少ないし、紹介すらしてない。
説明や紹介が英文よりも日本文に目がいくようなら、そんな日本人の英語力なんてないに等しいし…
objcはmacだけじゃもったいないような、なくないような…
すくなくともwindows環境の人にはmac objc runtimeは使えないわけなんで。
125:デフォルトの名無しさん
08/01/08 08:02:16
別にみんなC++好きの変態なんじゃなくて
「みんなが使ってるものと同じものを使ってれば安心」
ってことだと思うよ。要するに保守的。
# Microsoft Visual Objective-C とか出れば騙されて使うやつがいるかも?
126:デフォルトの名無しさん
08/01/08 08:07:58
C++なら日本語情報が多いし入りやすいよ
ワンチップマイコンでも
日本では素直なAVRよりも変態といわれてるPICのユーザーが多いのは
日本語情報の多さ
127:118
08/01/08 20:42:28
c++はそんなにキライじゃないけどな。
templateとマクロを駆使して"俺C++"を作る楽しみがあるし、他人が作った"俺C++"をみてcoreDumpする
楽しみもある(w
ObjCの変態実装系としてWebScriptと言うインタプリタが過去にあったそうだ。今だったらインタプリタ
として受けそうだと思うが、おまえらどうよ。
128:デフォルトの名無しさん
08/01/08 21:49:30
変態実装系はPOCで十分です。
あれまだあるんだっけ?
129:デフォルトの名無しさん
08/01/08 22:38:48
URLリンク(users.pandora.be)
これ?
130:デフォルトの名無しさん
08/01/08 22:39:05
>>126
AVRはいいよねー。
PICみたいなドM用アーキテクチャが流行ってるのは、本が多いからかなー?
まあAVRは比較的新しいからこれからじゃないすかね。
AVRが出たころにはもうPICに慣れ切ってる人が多かったわけですし。
131:118
08/01/08 23:18:26
POCと言えば、このURLのブロック構文がつかいたいよな。
URLリンク(users.pandora.be)
AppleもObjC2.0の時に一緒にしてくれれば良かったのにな。
for(i in array){}よりも汎用性がありそうなのに。
132:デフォルトの名無しさん
08/01/08 23:19:14
Objective-CだけでもC++だけでもなくて、Objective-C++サイコーなやつは居らんのですか。
133:デフォルトの名無しさん
08/01/09 00:01:49
>>132 ずいぶんコアなところにおりますなw
134:デフォルトの名無しさん
08/01/09 02:02:39
OpenCVとか組み込みてーけど、どうだろね
135:デフォルトの名無しさん
08/01/09 12:12:51
ipodの組み込みとかは当然mac objcで開発なのかな?
136:デフォルトの名無しさん
08/01/09 15:59:13
touchのことならObjCだよ。
137:デフォルトの名無しさん
08/01/09 19:46:55
Mac OS X 版の GLUT, SDL, Gtk+ は Objective-C の API を
C でラッピングしてるのね。wxWidgets も Cocoa への移植が
進行中らしいけど、世の中変わったもんだねえ。
138:デフォルトの名無しさん
08/01/12 10:14:37
Cocotronの日本語対応させた人います?
ソース見た限り、全キーストロークをストローク単位で
処理しているようで、キーダウンイベントの発生時に
日本語処理を割り込ませればとも思っているんですが
Windows側のこともよく分かりませんし...
139:デフォルトの名無しさん
08/01/13 01:55:37
最近魅力的なんですけど、RubyとD言語はやっぱりダメですか?
140:デフォルトの名無しさん
08/01/13 02:00:18
どの言語でも一つだけで済ませようとするのは良くない
とりわけマイナー言語では、その言語がこけても困らない
様にしておく必要がある
Ruby やるなら Perl や Python を横目に見ながら、D を
やるなら Java や C++ を意識しながらやると良いよ
141:デフォルトの名無しさん
08/01/13 02:12:12
さもないとこんな風になっちゃうの?
スレリンク(tech板:59番)
142:デフォルトの名無しさん
08/01/13 02:22:34
CとJava使っています。
コンパイルなしでスクリプトしたいんですけど、どっち使ってますか?
正規表現処理したいのにCやJavaはちょっと・・・
143:デフォルトの名無しさん
08/01/13 02:24:14
>>140
MSの.Netはいいの?
JScript, C#
w
144:デフォルトの名無しさん
08/01/14 14:11:22
.Net
C#
Javascript
こいつらは論外
145:デフォルトの名無しさん
08/01/14 14:15:35
おやおや
可哀相に
146:デフォルトの名無しさん
08/01/14 15:24:18
只今ECMAScriptのコーディングの真っ最中な俺が来ましたよ
147:デフォルトの名無しさん
08/01/14 15:49:31
Javascript はめちゃめちゃ dynamical だから、Cocoa との binding ぐらいすぐ出来そうな気がする ...
148:デフォルトの名無しさん
08/01/14 19:19:22
ajaxだったか最近聞かないなw
rhinoみたいにブラウザとかに内蔵しないで、シェル上で独立に実行できる
と爆発的に普及するんじゃないか。
149:デフォルトの名無しさん
08/01/14 20:16:49
javascriptはOpenOfficeでVBAの代わりに使えればいいのに、と思うことはあるな
べつにrubyとかでもいいし、shell自体がつかえてもいいけど>>VBAの代わり
150:デフォルトの名無しさん
08/01/14 20:30:18
OOoでPythonは使える
151:デフォルトの名無しさん
08/01/15 18:11:43
>>148
Jscriptならwindowsに統合されててwshとかでも使えるけど
web以外で使われてるのあまり見ないな
152:デフォルトの名無しさん
08/01/15 22:09:09
jsは、今までアプリに組み込み式で、独立のインタプリタ(CUIなどシェルから起動式)がないからだろうな。
最近出てきたけど。
ruby, perl, dと見てみたけど、jsが一番良さそうだと直観した。
あまりうだうだ言うのめんどいけど、jsは規格委員会(ECMA)があるってのがそれぞれの違うってことを表している。
その他は所詮は宗教臭い。
153:デフォルトの名無しさん
08/01/15 22:13:05
それと、javaをよく使うけど、javax.scriptはjsと連携いいし
javaライブラリとシームレス連携、htmlブラウザとシームレス。
文法もほとんどjava, c風で組み込みライブラリも少なく習得が早い。
オレが欲しい仕様を全て満たしてる。
スクリプトなんて使うときは手早くハックするときぐらいだしw
154:デフォルトの名無しさん
08/01/15 22:55:02
まあ言わんとしている事はわからないでもない
俺もタマリンが完成した暁には乗り換えようと思っている
155:デフォルトの名無しさん
08/01/15 23:41:34
ECMAScript と JavaScript と JScript と ActionScript の
違いを理解してから出直してきてください
156:デフォルトの名無しさん
08/01/15 23:44:47
>>155
そういうのは分かってるだろ。こだわってるのはおまえだけw
>独立のインタプリタ(CUIなどシェルから起動式)
ところで独立インタプリタ?てそんなのあるの?
Javaの奴はjde入れないとダメでしょw
157:デフォルトの名無しさん
08/01/15 23:45:15
ここは一応 Obj-C スレなので、とりあえず Javascript 用の Cocoa bridge をつくってから出直してきて欲しい気がする
158:デフォルトの名無しさん
08/01/15 23:48:28
そんなに需要あるのかあ
159:デフォルトの名無しさん
08/01/16 00:04:14
というか WebKit の Javascript Core が公開されてるので、Cocoa bridge は簡単につくれるのでは?Leopard なら Scripting Bridge も提供されてるし。
いってみただけで技術力がたりないから僕には出来ないけど。スイマセン ...
160:デフォルトの名無しさん
08/01/16 05:35:33
>>155
出直してくるのはおまえのようだ
161:118
08/01/16 13:28:06
>>157
Joyと言うのがあったそうだ。
URLリンク(www.mactech.com)
javascriptのcocoa bridge
で、今ではオープンソースで転がってそうな感じだけど、どうなったかだれかしらない?
162:118
08/01/17 17:07:23
こんなの見つけた。
Scripting with JavaScript in Cocoa
URLリンク(will.thimbleby.net)
TurtleScript.zipがレパードだとうまく動かないけど以下の修正ですぐに動く。
ScriptControl.mのメソッド
- (void)awakeFromNib
に
scriptObject = [webView windowScriptObject];
を追加。で、
- (void)webView:(WebView *)sender windowScriptObjectAvailable: (WebScriptObject *)windowScriptObject
を要らないので削除
163:デフォルトの名無しさん
08/01/18 00:39:16
おもろいもんですな。
Cocoa というオブジェクトを javascript 側に publish して、
Cocoa.NSTextView とかいうメソッドを呼ぶと
NSClassFromString とかでクラスオブジェクトを返すようにしておくと、
もはや Javascript から何でも出来る気がする。
164:デフォルトの名無しさん
08/01/18 15:00:53
まぁ面白いといえば面白いが…
Cocoa bridge があったとしてもスレ違いだ…
165:デフォルトの名無しさん
08/01/30 20:55:05
Xcode part6
スレリンク(mac板)
166:デフォルトの名無しさん
08/03/15 10:17:19
すごい寂れぶりだな…
167:デフォルトの名無しさん
08/03/15 23:22:05
>166
さすがマイナー言語www
URLリンク(www.moongift.jp)
URLリンク(d.hatena.ne.jp)
168:デフォルトの名無しさん
08/03/15 23:24:18
マカーでもない限り使わないし、
そのマカーでも使うとは限らないしな。
169:デフォルトの名無しさん
08/03/15 23:25:52
これからは iPhone/iPod touch の開発でひっぱりだこになると思われ。
すくなくとも日本以外、米欧では。
170:デフォルトの名無しさん
08/03/15 23:32:25
制約ありまくりのSDKが成功するとでも?
171:デフォルトの名無しさん
08/03/15 23:49:08
乞食プログラマ乙
172:デフォルトの名無しさん
08/03/16 00:46:16
>>168
俺はObjective-CがやりたくてWinからMacに移行したけどな。まあ、完全にWinを離れる訳にもいかないんだが...
173:デフォルトの名無しさん
08/03/16 07:54:23
SDK の制約といっても普通のソフト書く分にはもんだいないでしょ。
IM とか VM とかいうけど、開発者のうち何人がそんなものを作るかと。
2ch ブラウザならいまの SDK で何の問題もなく作れるよね。
5分ごとに更新とかは出来ないわけだが。
174:デフォルトの名無しさん
08/03/16 13:12:52
>>173
今のiPhone SDKは「実機で動かせない」という致命的な制約が…
175:デフォルトの名無しさん
08/03/16 21:48:50
それには同意。
176:デフォルトの名無しさん
08/03/17 20:38:02
日本はそんなに魅力的な市場じゃないんだろうな。
177:デフォルトの名無しさん
08/03/18 11:41:28
日本の携帯は国内仕様てんこもりで鎖国状態だからな。
それを乗り越えてまで参入するメリットは「?」だよな。
178:デフォルトの名無しさん
08/03/18 12:29:58
欧米仕様(OMAとかMIDPとか)すら無視してるんだから
日本仕様も乗り越えず素通りするだけだろ
179:デフォルトの名無しさん
08/03/19 16:22:42
今、ObjCを勉強中ですが、autorelease以外で、boostのshared_ptrみたいなものはないのですか?
retain, release, autorelease方式だと、メモリーリークしまくりそうです。
180:デフォルトの名無しさん
08/03/19 16:28:29
こういうの嫌すぎるし。
× NSArray* arr = [[NSArray alloc] initWithObjects: [[Card alloc] init], [[Player alloc] init], nil];
○ NSArray* arr = [[NSArray alloc] initWithObjects: [[[Card alloc] init] autorelease], [[[Player alloc] init] autorelease], nil];
181:デフォルトの名無しさん
08/03/19 16:53:04
@implementation Card
+ (id)card
{
return [[[self alloc] init] autorelease];
}
@end
とすれば多少は。
[[NSArray alloc] initWithObjects: ...
も
[NSArray arrayWithObjects: ...
で。
182:デフォルトの名無しさん
08/03/20 02:02:58
> retain, release, autorelease方式だと、メモリーリークしまくりそうです。
気のせいです。
183:デフォルトの名無しさん
08/03/20 08:28:28
>>180
> こういうの嫌すぎるし。
> × NSArray* arr = [[NSArray alloc] initWithObjects: [[Card alloc] init], [[Player alloc] init], nil];
> ○ NSArray* arr = [[NSArray alloc] initWithObjects: [[[Card alloc] init] autorelease], [[[Player alloc] init] autorelease], nil];
>
そこで LISP ですよ。[] なんて特に気にならなくなるよ、LISP をすると
184:デフォルトの名無しさん
08/04/09 21:55:32
ObjC2のmethod_setImplementation()って昔のポージングと同じで
対象のクラスが1度も使われる前に行わなきゃいけないの
185:デフォルトの名無しさん
08/04/09 21:56:22
ですか?
186:デフォルトの名無しさん
08/04/10 21:02:12
>method_setImplementation
べつにいつでもいいと思いますが、呼び出し側がセレクタに対する IMP の結果をキャッシュしてたりするとおかしくなるのでは。
187:デフォルトの名無しさん
08/04/11 00:41:17
stringWithUTF8String に渡す文字列は、同一スコープに実体がないと
いけないなどの制限があるのでしょうか?
#include <string>
#include <Foundation/Foundation.h>
std::string foo() { return "foo"; }
const char* bar() { return foo().c_str(); }
int main() {
NSString* str = [NSString stringWithUTF8String:bar()];
NSLog(@"bar()=%s", bar());
NSLog(@"str=%@", str);
}
・実行結果
bar()=foo
str=
bar() の結果を std::string に保持して c_str() を渡せば成功します。
この挙動でどつぼにはまりました。
188:デフォルトの名無しさん
08/04/11 12:34:22
>>187
何がしたいのかわからないけど、こう書き換えれば動くと思う。
const char* bar() { static std::string temp = foo(); return temp.c_str(); }
foo()が返した値がどこまで有効なのかを考えてみようよ。「bar()=foo」と
表示されたのは運がよかっただけ。
189:デフォルトの名無しさん
08/04/11 12:42:28
まず Cocoa つかうときは NSAutoreleasePool つくること。
次に、問題は NSString 側じゃなくて、C++ 側の std::string の
テンポラリオブジェクトの削除のタイミングだと思うんだけど。
const char* bar() { return foo().c_str(); }
っていう関数がダメだと思う。foo() でつくられた std::string は
関数抜ける時点で破壊されるのに、c_str() で取り出したポインタは
何をさしてるとおもうわけ?
#include <string>
#include <Foundation/Foundation.h>
std::string foo() { return "foo"; }
const char* bar() { return foo().c_str(); }
int main() {
NSAutoreleasePool *ap=[[NSAutoreleasePool alloc] init];
NSString* str = [NSString stringWithUTF8String:bar()];
NSString* rts = [NSString stringWithUTF8String:foo().c_str()];
NSLog(@"bar()=%s", bar());
NSLog(@"str=%@", str);
NSLog(@"rts=%@", rts);
[ap release];
}
にしてみると rts のほうはちゃんと表示されるよね。
190:デフォルトの名無しさん
08/04/11 20:54:42
>>186
どうも。
元のメソッドが呼ばれる前にsetしないとキャッシュされちゃうのかな?
191:デフォルトの名無しさん
08/04/11 21:28:33
>>188-189
戻り値のスタックが安全じゃないことが良くわかったので、違う方法に
切り替えます。ありがとうございました。
192:デフォルトの名無しさん
08/04/11 21:36:49
>>191
いや、まだよくわかってないんじゃないかな ...
戻り値のスタック自体は安全なので、
[NSString stringFromUTF8string: foo().c_str()] は ok 。
191 さんがはまっていた
const char* const bar() { return foo().c_str(); }
の場合は、作られた foo() は、そもそも戻り値スタックに乗らないで、
戻り値スタックにのるのは foo() から c_str() で返ってきた
char* ポインタだけでしょ。
で、その乗っている char * ポインタの値自体は安全なんだけど、
char * ポインタが差している文字列の実体、おそらく
どこかで malloc されているもの、は bar() の関数から抜ける際に
foo() で出来たテンポラリが破壊されるのでついでに free されるわけです。
もういちど C++ のテンポラリオブジェクトの寿命について
勉強したほうがいいと思います。
193:デフォルトの名無しさん
08/04/11 22:35:05
ObjC ってか C++ の話だよなぁ
194:デフォルトの名無しさん
08/04/13 02:11:32
いつまでたっても[[[[]]]]に慣れない・・・困ったもんだ
195:デフォルトの名無しさん
08/04/13 03:20:49
anObject.doSomething() を [anObject doSomething] に
展開するスクリプトを書いてコンパイルの前にかませば?
196:デフォルトの名無しさん
08/04/20 00:04:52
オーバーロードについて質問です。
unsigned intを返すvalueという名のメソッドをあるオブジェクトにつけているの
ですが、ワーニングで
warning: multiple declarations for method `value'
warning: using `-(NSString *)value'
warning: also found `-(unsigned int)value'
warning: comparison between pointer and integer
ときます。
Objective-Cで多重定義の問題をクリアする方法はありますでしょうか?
荻原本でいうと、p69-70の話題です。
197:デフォルトの名無しさん
08/04/20 01:13:24
「Objective-C Mac OS Xプログラミング 荻原 剛志」
↑これamazonとかで新品無いんだけど、絶版になったんですか?
198:デフォルトの名無しさん
08/04/20 03:43:30
//id instance = [[AnObject alloc] init];
AnObject *instance = [[AnObject alloc] init];
[instance value];
とか
[(AnObject*)instance value];
とか、とりあえず明確に指定すればwarningは出なくなる…
199:デフォルトの名無しさん
08/04/20 11:55:47
>>198
C++ では静的型付けをつかってオーバーロードするところを、
Objective-C ではメソッドの名前を長くして、
メソッド名を読んだだけで何をやっているかわかるようにするのが
Objective-C での作法です。
stringValue: とか intValue: とかいうふうに名前を付けて区別しましょう。
(NSControl とかはそうしてます。)
string / int とか型名をつけるだけでなくて、
返ってくる string が会社の名前、 unsigned int が値段なら
stringValue: のかわりに companyName:
intValue; のかわりに price:
とかしましょう。
value とかいう一般的すぎるメソッド名をつけると
えてしてそのしたにコメントを書くことになりますが、
メソッド名自体をコメントにしてしまえということです。
200:デフォルトの名無しさん
08/04/20 13:11:37
>>198
id のままテストコード書いてました。なるほど。
ありがとうございます。
>>199
Objective-Cでの作法を教えていただきありがとうございます。
これから気をつけていきたいとおもいます。
201:デフォルトの名無しさん
08/04/20 13:28:39
じつは、コードを書くときは常に
>メソッド名を読んだだけで何をやっているかわかるようにする
意識はもっているつもりだったのです。
valueもそれが一番適切な名前だと思ってつけたのですが、失敗でした。
Objective-Cは面白い言語だと思いますが、オーバーロード(演算子も含めて)
が弱いのが(私にとって)玉に瑕です。
valueという同一メッセージに、いろいろなオブジェクトがそれぞれの流儀で
反応してくれるのを期待してしまうのです。
たとえば、整数なのか小数なのかコード中で区別せず、
valueとすればいいだけ、とか。
202:デフォルトの名無しさん
08/04/20 13:45:57
Obj-C でも、value という同一メッセージに
いろいろなオブジェクトがそれぞれ自分流に応答するわけでしょう。
オーバーローディングの問題はむしろ、
ひとつのオブジェクトが、value という同じ名前のメッセージだけど、
引数や返す値に応じて違う応答をする、ということで、
それは Obj-C はできないですが、そのかわりに
メソッド名を分かり易くあからさまに書くというのが作法なわけです。
あと、C++ でも返す値の型だけが違う際は overload できないよね。
また、演算子のオーバーロードをしたい場合は
Objective-C++ を使ったらいいんじゃないかと思います。
演算子 overloading は、普通は具体的な値として使うクラス
(行列、複素数等)に対して重要になってくるので、
そいつらは C++ のクラスにしてしまえばもんだいなくなるのでは。
203:デフォルトの名無しさん
08/04/20 15:20:20
>>201
HTMLではValueで統一されててわかりやすいけど、あれは全て文字だからね。
プログラム内部ではもうちょっと区別付けないといけないんでしょう。
>>202
>あと、C++ でも返す値の型だけが違う際は overload できないよね。
変換するだけだしね。
204:デフォルトの名無しさん
08/04/29 07:58:34
mac使った事ないんでお聞きしたいんですけど、
macでは\rが改行だそうですけど、
\nを送信するとコンソールの挙動はどうなるんですか?
205:デフォルトの名無しさん
08/04/29 09:36:47
>>204
スレ違いだから 新 Mac 板にでもいってください。
ただまあ答えておくと、
i) mac の改行が ¥r だった時代は5年以上前に終わりました。OS 9 以前はそうだったけど、OS X 以降は ¥n です
ii) mac に限らず、OS の改行コードがなにかというのと、シリアルコンソール、ネットワークプロトコルの改行コードがなにかというのは別問題です。
たとえば、HTTP プロトコルでは改行は ¥r¥n であるべしとなっているので、正しく書かれた http ブラウザは OS に関係なく ¥r¥n を送信しているはずです。
URLリンク(ja.wikipedia.org)
あたり参照。
206:デフォルトの名無しさん
08/04/29 10:12:26
>>205
\rは古いんですか。昔は\nは未定義(何もしない)だったんですか。
コンソールでカーソルを行頭に戻すのどうやるってたんですか?
強引ですけど、
for (;;) printf("%s\r", data_or_time);
とか。
207:デフォルトの名無しさん
08/04/29 10:55:59
Obj-C の話でないので、新 mac 板もしくは、旧 OS 9 の話がしたければ旧 mac 板に行ってください。僕はそちらにも出没しているので。
208:デフォルトの名無しさん
08/04/29 11:30:51
いや、別にどうでもいいしww
209:デフォルトの名無しさん
08/05/20 08:33:01
現実
URLリンク(slashdot.jp)
プログラミング言語別求人件数(アメリカ)
Java 16479件
C++ 8080件
C# 7780件
JavaScript 6749件
Perl 5710件
PHP 2641件
Python 1408件
COBOL 1207件
Ruby 769件
Objective-C 38件 ←←←←(・∀・)ニヤニヤ
Lisp 33件
210:デフォルトの名無しさん
08/05/20 10:27:51
ObjCはJavaの0.2%の人的資源で済むほど効率がいいということですね、わかります
211:デフォルトの名無しさん
08/05/20 10:38:51
「ある程度のスキルを持つC/C++のプログラマーなら簡単に習得できる」
URLリンク(www.atmarkit.co.jp)
つまりObjective-Cで求人を出すよりCやC++で人を採って、覚えさせれば良いだけ。
212:デフォルトの名無しさん
08/05/20 10:49:46
単に求人の数が問題なのではなくて、需給のバランスが問題なのでは ...
仕事の数よりプログラマの数のほうがすくなければプログラマは有利だよね。
iPhone SDK ですごいことになりそうだし。
213:デフォルトの名無しさん
08/05/20 11:15:35
objcの文化があるわけで、C++やC#馴れしてる奴らは来なくていい。
一応、javaはobjcの亜流なんだけどね。見た目からは分かりにくいのかもしれないけど。
214:デフォルトの名無しさん
08/05/20 11:43:56
>>213
へんに文法に Smalltalk っぽさを残したところがあだになっているよね。
ObjC 2.0 のプロパティとかで、ちょっとずつ改善しようとしているけれど。
215:デフォルトの名無しさん
08/05/20 13:04:58
個人的にはMS Windowsで動くobjcランタイムが欲しい。
gnuは商業利用無理だし、ここでアップルあたりのランタイムがx86にも来てくれれば・・・
216:デフォルトの名無しさん
08/05/20 13:11:36
個人的にはMS Windowsで動くobjcランタイムが欲しい。→MinGW, Cygwin
gnuは商業利用無理だし、→GPLと商業利用は矛盾しない
ここでアップルあたりのランタイムがx86にも来てくれれば・・・→Intel Mac
アップル製と互換性のあるランタイムが他に移植されればいいなあっていう大意は分かるが
217:デフォルトの名無しさん
08/05/20 15:06:58
そういうことじゃなくて、アップルが普通にms win対応のランタイムを作れば解決するんじゃないのか?
今さらMSと戦ってるのは、一部のアッポロ信者だけだろw
若干アップルの歴史を知ってるから言いにくいもんだけど、
アッポロはMSに資金提供してもらって危機を脱してきただし。
何かとms winプラットフォームがぶつかってるのは分かるけど、
アッポロは消費者も開発者も(クリエーターも)人少なすぎで全部MSに持ってからてるじゃんww
218:デフォルトの名無しさん
08/05/20 15:08:27
アッポロの奴らはMSとはまた違うお子ちゃまが多いし、そういう奴はらはないけど要らないから、objcだけ来てくれればいいよ
大学とか研究の奴らが頑張って実装してくれ。BSDは応援してるからけど、金になりそうなのはMSのところにもってックから。
それなら初めから、objcだけ来てくれればいいんだけどね・・
219:デフォルトの名無しさん
08/05/20 15:26:30
日本語でOK
酒の飲み過ぎか?呂律が回ってないぞ。
OS X は開発者は海外になら一杯いるでよ。日本国内は数えるぐらいだけど ...
220:デフォルトの名無しさん
08/05/20 15:45:15
実際は知らないんだけど
ランタイムとNSObjectまわりはソース公開されてんじゃないの?
221:デフォルトの名無しさん
08/05/20 16:31:14
なんか面倒ならJavaでやるだろうよ。
面倒を強いるようならいつまでも人は集まんないよ。
222:デフォルトの名無しさん
08/05/20 18:35:47
言語に対して普及とか考えるのはキモイ言語信者とスーツだけで十分だ。
Objective-Cを使いたいなら使えばいいし、思わなければ使わなければいいだけだろう…
プログラマならくだらんこと書いてないでコードを書け。
223:デフォルトの名無しさん
08/05/20 18:42:36
>>222
なかなか仕事で出番を作るのは難しいけどね。
Obj-Cは嫌いじゃないけど、仕事でどうしてもって主張をするほどかっていうとそんな事無いし。
224:デフォルトの名無しさん
08/05/20 18:43:33
うむ
プログラミング言語なんて基底となるライブラリと作るべきソフトウェアの
仕様の差を埋めるものに過ぎない
225:デフォルトの名無しさん
08/05/20 21:24:53
MacRubyがネイティブにコンパイル出来るようにならんかなぁ。
226:デフォルトの名無しさん
08/05/20 23:39:44 BE:281469863-2BP(535)
>>217
何も知らないんなら黙ってりゃいいだけなんだが、
Windows用のObjective-CランタイムをAppleは過去に提供していたわけで。
227:デフォルトの名無しさん
08/05/21 00:06:01
YellowBox?もう忘れろ……
228:デフォルトの名無しさん
08/05/21 00:28:49
昔 Windows NT で WebObjects の開発してた頃が懐しいな…
229:デフォルトの名無しさん
08/05/21 07:51:11
WebObjects、obj-cに戻らないかな
230:デフォルトの名無しさん
08/05/21 08:04:11
MS C# MS C++はカオスだからな
gunccとobjcはwinでは肩身が狭いし
これ、オレの勘なんだけど、ライセンスがどうとかうるさくて、面倒ってことなんじゃないのかと思う。
gnuとか無料とか有用とか別にどうでもいいんだけど、ウザイじゃん。
金はらってもいいから、面倒ない、ウザクないほうがいいよ。
javaだとせいぜいclasspathの設定程度だけど、gnuccとかインストが超面倒だろ?
お子様は使用禁止もいいんだけど、普及させる気あんのか・・
主義主張が多いgnuの方が拝金現場を知らないクソガキに見えるんだが・・・
231:デフォルトの名無しさん
08/05/21 08:59:23
GCC って OS インストール直後からほぼノーコストで使えるもんだと思ってたけど
OS 変えたら?
232:デフォルトの名無しさん
08/05/21 09:34:03
gcc入れるのめんどいのってWindowsだけだとおもうんだよね、うん
233:デフォルトの名無しさん
08/05/21 10:31:30
windowsはドライバが豊富だから結局windowsがホストOSで他のOSはゲストでしかないんだけどね。
macプラットフォームは、今はituneとか流行ってるけど、imacの一生を知ってるだろ。
つまりだな、macはカジュアルうーザーか、変に個性をもってる(学生)技術者しかいないんじゃないの?
234:デフォルトの名無しさん
08/05/21 10:32:30
WindowsであってもMinGWをインストールするのが面倒だとか言っている人間が
まともなプログラミングができるとは思えない
235:デフォルトの名無しさん
08/05/21 10:34:28
でもBSDならまだいいけど、linuxとかiniファイルがカオスだし、他のPCに移行できないし
管理しても何十年前と同じで、今のソフト上のリソースの恩恵もなく教授も得られないでしょ。
osは別に何でもいいし、結局は面倒がないwindowsでいいわけ。
これが未だに理解できないのは、mac狂信者、つまりお子ちゃまってわけw
お子ちゃま用にしては、objcは高度すぎるオモチャじゃないのか?
objc使うって事は、そのランタイムと心中するってことだしな・・・
236:デフォルトの名無しさん
08/05/21 11:31:45
文章の端々から無知無教養が滲み出してるな
237:デフォルトの名無しさん
08/05/21 11:48:09
もはや一行目と二行目のあいだの論理が破綻しているな
いや、一つの文の中の読点と読点の間で矛盾しているといってもいい
もしかしてマカ vs ドザのスレッドで教育させた人工無能とか?
238:デフォルトの名無しさん
08/05/21 13:00:12
>>234
その論法良くあるんだけどね、今の時代はどれだけユーザーがいるのか、その環境に人口は多いのかなのよw
すくなくとも君より上だと思うんだけど、「インストールすること」が目的じゃないわけwwまあ、でなおしてこいよww
239:デフォルトの名無しさん
08/05/21 13:01:28
なんだよ「人工無能」てw
おまえは2CHのやりすぎで頭おかしくなっちゃったようだんw気をつきたほうがwwいいよ
240:デフォルトの名無しさん
08/05/21 13:40:08
>>239
URLリンク(ja.wikipedia.org)
241:デフォルトの名無しさん
08/05/21 14:50:55
こんなへたくそな釣りに付き合ってやるなんて…
みんないい奴だな…
242:デフォルトの名無しさん
08/05/21 15:24:23
>>230
お前がWindowsで開発しててそう思うならVisual Studio 2008で問題なかろう。
純正品でWin32API/MFC使うのがカオスか?
で、そんな面倒の無い製品があるのになんでわざわざgcc使いたいんだ?
お前のポリシーに合ってないだけでgnuを批判するのはすじ違い。
243:デフォルトの名無しさん
08/05/21 17:08:55
そういうこと言ってるとobjc使う開発者は集まらないんじゃないの?少なくともMSでやってる人は「面倒だし、なら別にいいや」でしかないしw
244:デフォルトの名無しさん
08/05/21 17:18:34
そのMSがobjc採用しますが何か?
245:デフォルトの名無しさん
08/05/21 17:45:54
本当に?
246:デフォルトの名無しさん
08/05/21 18:14:01
本当だったらとても嬉しい
Objective-C++/CLIとか使ってみたい
#importがもろにかぶってるけど……
247:デフォルトの名無しさん
08/05/21 18:14:18
>>244
まじかー!
やめてくれー!
また変てこ独自仕様でぐちゃぐちゃにする気だろ!
Obj-Cは軽い仕様がいいのに。
248:デフォルトの名無しさん
08/05/21 18:31:08
する必要ないだろ。多分。
VCとVC++の拡張を使えば済むから。
血迷ってJ++みたいにCOMを呼び出すための拡張とかされたら涙目だが、
それはランタイムの拡張でするだろうし、言語仕様には触れないさ。
いや、そうあってほしい
249:デフォルトの名無しさん
08/05/21 20:30:58
>>243
>「面倒だし、なら別にいいや」
「こんな事すら面倒なんだ。なら君はいいや。」で終わりかと。
250:デフォルトの名無しさん
08/05/21 21:45:05
多重継承 ,virtual 修飾子
デフォルト実装あり protocol
抽象クラス宣言子
あと付きそうなのは何かな?
251:デフォルトの名無しさん
08/05/21 22:08:58
new演算子
まさかの静的結合
252:デフォルトの名無しさん
08/05/21 23:47:59
で、ソースは?
253:デフォルトの名無しさん
08/05/21 23:49:34
確かにc++は悪質だけど、見た感じでいえばobjcはc++より個性が強く独特なんだが…
254:デフォルトの名無しさん
08/05/21 23:52:13
C++の見た目が個性が無くて一般的だという感覚が信じられんよ…
255:デフォルトの名無しさん
08/05/22 00:01:28
誰もそんなこと言ってないと思うが…。
256:デフォルトの名無しさん
08/05/22 00:11:13
>>253
C++0x は凄いよ、λ式の
some_function ( [&](){} )
とかすごい。Obj-C の [ ... ] なんか目じゃないぐらいキモイ。
URLリンク(www.open-std.org)
257:デフォルトの名無しさん
08/05/22 00:39:16
文法がキモイのがC++の個性だからな
258:デフォルトの名無しさん
08/05/22 03:08:36
とりあえず #define lambda [&] を標準で用意して欲しいわ。
259:デフォルトの名無しさん
08/05/22 06:21:32
エディタでメンバを補完してくれたらうれしいな>>MS-ObjC
260:デフォルトの名無しさん
08/05/22 07:18:39
>>256
それはまだ先の話だろ。Cなのにパッとみが全くCじゃないのは、objcが元祖だってこと
261:デフォルトの名無しさん
08/05/22 07:20:48
C++はもういらないし、C99でいいよ
C++が必要な大規模開発は、javaとかobjc(gnu)とかあるし
最終的にランタイム・ライブラリ(自作も含む)と心中になるんだけどね
262:デフォルトの名無しさん
08/05/22 08:00:46
C99が使えるのがうれしいよな>ObjC
263:デフォルトの名無しさん
08/05/22 08:14:56
>>260
>Cなのにパッとみが全くCじゃないのは
C++のネームスペースやテンプレートの方が違和感ありありだが、
どちらも些細な事だと思うけどなあ。見た目だけで拒絶反応して
先に進めないなんて色んな事を損してそうだな。
264:デフォルトの名無しさん
08/05/22 08:18:33
>>259
MS-Obj-C って何? XCode は普通にメンバ名もなんでも補完してくれるが ...
GNUStep のエディタはしらね。
265:デフォルトの名無しさん
08/05/22 09:18:48
>>263
いろいろな言語をやったなくてCとobjc一筋だろ。おまえは。
266:デフォルトの名無しさん
08/05/22 09:20:11
C99というのは実質的にgccの事でしょ。趣味でintelコンパイラ使う人をはそうはいないだろうし
267:デフォルトの名無しさん
08/05/22 09:47:03
>>265
おかしな言いがかりは止めろよw
最近はC++の仕事ばかりでうんざりしてるのに…
268:デフォルトの名無しさん
08/05/22 10:30:34
オレとしてはCの正当の進化は突然変異したobjcよりC++にあると思うんだがどうだろうか?
仕方なしでもC++を受け入れたユーザーは多い。
269:デフォルトの名無しさん
08/05/22 15:33:52
Cの進化はC99でC++もobjcも普通に別言語だろ
270:デフォルトの名無しさん
08/05/22 15:42:12
objcってハイブリッド言語ていってた気がする。
Cの延長じゃなくて、Cも使えるオブジェクト指向言語的な感じで。
271:デフォルトの名無しさん
08/05/22 15:46:53
C with class だったよな。それにしてもCは99年から進化が止まったままだなあ
272:デフォルトの名無しさん
08/05/22 16:29:00
>>271
C with classes
273:デフォルトの名無しさん
08/05/22 20:09:14
>>269
ObjCはC互換でしょうが
274:デフォルトの名無しさん
08/05/22 21:29:25
>>273
Cの機能がすべて使えるということと別言語であるということは両立すると思うが…?
275:デフォルトの名無しさん
08/05/22 21:34:19
プリプロセサ通せばただのCになるんだから、
別言語ではないと言えなくもないかなと。
276:デフォルトの名無しさん
08/05/22 21:35:23
GCC互換のObjective-Cプリプロセッサがない件
277:デフォルトの名無しさん
08/05/22 22:46:54
>>275
その理屈だとEiffelもC言語だなw
278:デフォルトの名無しさん
08/05/22 22:54:19
設計理念が違うってことだと思うが
279:デフォルトの名無しさん
08/05/23 00:15:17
Eiffelも楽しいけどね。
280:デフォルトの名無しさん
08/05/24 19:22:23
(1 == 1) == YES
っていうのは保証されてませんよね?
281:デフォルトの名無しさん
08/05/25 00:41:51
>>280
Obj-C の YES は単に 1 のマクロなので、 C の問題だから、C スレにいったほうがいいと思います。
でも、僕のあやうい記憶だと、保証されてると思います。
というのは、C の if 文はゼロ以外は真、ゼロだと偽、なので、
if 文とかの中で if(ore_ha_hage()== YES) と比較するのは良くなくて、
直接 if(ore_ha_hage()) とするのが良い、とされてます。
が、論理演算子 = , <=, != 等が返す真偽値は 1, 0 だというのが
最近の C の規格では保証されてるので、
あなたが書いた (1==1)==YES は 1 になるはず。
282:デフォルトの名無しさん
08/05/26 19:04:29
YES が 1 と保証されてるか、がキモなんじゃないの?
283:デフォルトの名無しさん
08/05/26 21:57:38
1じゃやなら、じゃ何がいいんだ?
284:デフォルトの名無しさん
08/05/26 22:20:11
0じゃない
285:デフォルトの名無しさん
08/05/26 23:46:24
>>282
Apple のレファレンスには、YES は 1 ですと書いてあるけど。
Obj-C は公的な標準規格がないからなんとも ...
まあ C 系言語において
YES, NO と比較するのがバッドノウハウであるのは間違いない
286:デフォルトの名無しさん
08/05/27 00:14:09
VARIANT_TRUE は -1 で定義されてるんだよな
287:デフォルトの名無しさん
08/05/27 01:19:52
そんな Microsoft 系の話をされても困るし ...
MS は大昔から false は 0 で、true はビットを全反転した -1 。
でも C の < , > 等の返す真偽値は整数としては 1 だから気をつけましょうね。
if 文の中で 更に YES/VARIANT_TRUE とかと比較しなければ全く問題ないのだが ...
288:デフォルトの名無しさん
08/05/27 13:10:57
既知ですが、
ソフトバンク クリエイティブの本:詳解 Objective-C 2.0
URLリンク(www.sbcr.jp)
Amazon.co.jp: 詳解 Objective-C 2.0: 荻原 剛志: 本
URLリンク(www.amazon.co.jp)
289:デフォルトの名無しさん
08/05/27 21:47:45
>>287
BOOL の TRUE は 1 だけどね。
真が -1 っつーと BASIC なんかそうだな。
290:デフォルトの名無しさん
08/05/28 21:41:02
>>288
>詳解 Objective-C 2.0
mkinoさんが買うべきだと絶賛中
URLリンク(hmdt.jp)
291:デフォルトの名無しさん
08/05/29 09:02:30
Obj-Cをこれからも使い続ける/これから使い始めるなら読んどいても良いんじゃない。
292:デフォルトの名無しさん
08/06/01 18:27:27
2.0本、表紙はどう見てもiPhoneホーム画面なのに、
帯以外でiPhoneという単語は一度も出てこない。
荻原教授は最初から触れるつもりなかったのに編集が独自に装丁考えたのか、
NDAを見てあわてて記述を残らず削ったのか。
293:デフォルトの名無しさん
08/06/02 00:35:47
URLリンク(www.flickr.com)
294:デフォルトの名無しさん
08/06/02 19:30:37
>>292
もともとObjective-CとFoundationに重点を置いてある本だから、
iPhoneに触れる気はもともとなかったんじゃない?
295:デフォルトの名無しさん
08/06/02 22:32:57
買った後に気づいた。×iPhoneの存在に。
正式版のSDKで2.0使えるんならいいんだけど。
296:デフォルトの名無しさん
08/06/07 22:59:16
URLリンク(www.nitenichiryu.org)
URLリンク(www.metareal.org)
297:デフォルトの名無しさん
08/06/09 08:47:38
>>296
Objective-CをJavascriptに変換して実行か。よくやるよね。
でも静的な型付けをもつ言語を動的な型付けをもつ言語に翻訳する
のってなんかちょっともったいない気がする。Objective-Cは半分
くらい動的な型付けなんだけどさ。
298:デフォルトの名無しさん
08/06/15 17:02:45
URLリンク(theunixgeek.blogspot.com)
299:デフォルトの名無しさん
08/06/15 23:05:16
cocoa最安かww
300:デフォルトの名無しさん
08/06/15 23:47:04
>>298
これからHaskell勉強してくる
>>299
その割にはObjective-Cが第3位ってのが不思議
301:デフォルトの名無しさん
08/06/17 14:44:06
なんでC言語準拠しておきながら、クラス関数の宣言の仕方は似ても似つかない変な記法なの?
302:デフォルトの名無しさん
08/06/17 15:07:42
>>301
「似たようなものは似たような表記にしたほうがわかりやすい」
という考え方もあるだろうが、
「意味的に異なるものを表すなら異なる表記にしたほうが区別しやすくわかりやすい」
という考え方もある。
構造体のへのポインタの先の関数ポインタ経由での関数呼び出しとメソッド呼び出し
はまったく別のものだと考えれば別の表記になっていたほうがうれしいだろう?
# 実際のところは単に設計者の趣味じゃね?
303:デフォルトの名無しさん
08/06/17 17:08:41
でも、そのあたりの記法の気持ち悪さが、普及の妨げになってるような気はするよな
304:デフォルトの名無しさん
08/06/17 18:34:48
この言語はほぼOS X専用言語と化してるし特に普及させる必要がないと思うのだが…
# また普及厨?
305:デフォルトの名無しさん
08/06/17 18:55:15
普及といえば、freebsdとかbsd方面は無理そうかな?
306:デフォルトの名無しさん
08/06/17 19:43:36
>>301
C と Smalltalk のハイブリッド言語だから。
307:デフォルトの名無しさん
08/06/17 19:55:13
C++ に慣れてるとコンストラクタはともかくデストラクタが欲しくてたまらない。
308:デフォルトの名無しさん
08/06/17 20:05:04
>>307
dealloc
309:デフォルトの名無しさん
08/06/17 21:35:57
勝ち組ケータイiPhoneの登場でObjective-Cの注目度が激しく上がったな
310:デフォルトの名無しさん
08/06/17 23:08:22
>>307 は自動変数の話をしてるんでは?
311:デフォルトの名無しさん
08/06/17 23:25:20
>>307,310
C++で自動変数(スタック)に作られたオブジェクトが
スコープを抜けるときデストラクタが呼ばれるあれの
ことかいな?
そのことなら、そもそもObjecitve-Cのオブジェクト
の実体はヒープにしか作ることができなくて、スコー
プとオブジェクトのライフサイクルは無関係。
312:デフォルトの名無しさん
08/06/17 23:26:54
つまりそれが不便だ、と
313:デフォルトの名無しさん
08/06/17 23:59:51
Objective-C++で、Objective-Cのオブジェクトを扱う
スマートポインタをC++で書くのはどうだ。C++のこと
はすっかり忘れてるので変なこと書いてるかもしれんが
{
smart_object_id object = [[NSObject alloc] init];
...
} // ここでスマートポインタsmart_object_idによって
// [object release] が呼ばれる
あるいは
class StackPool {
id pool;
public:
Pool() { pool = [[NSAutoreleasePool alloc] init]; }
~Pool() { [pool release]; }
}
というのを作っといて
{
StackPool pool;
id object = [[[NSObject alloc] init] autorelease];
...
} // ここでpoolがreleaseされ、objectもreleaseされる
314:デフォルトの名無しさん
08/06/18 00:01:09
まあ Objective-C++ を使う分にはそういったので問題ないね。
315:デフォルトの名無しさん
08/06/18 00:06:13
[&](){return i}; みたいな変態の C++0x に言われたくないです!
316:デフォルトの名無しさん
08/06/18 00:50:37
まあ純粋 C++ の話題はスレ違いだ
317:デフォルトの名無しさん
08/06/18 00:58:20
redditとかいう所で見つけた。
URLリンク(sleep.dashnine.org)
>easy to learn with Perl and Objective-C inspired syntax
だって。
318:デフォルトの名無しさん
08/06/18 02:08:44
スクリプト言語が移植されたらAppStore通さないでも流通するんだよな。
そしたらObjective-Cのブーム終了だろ。
他言語ユーザに珍入されるのやだからそうなってほしい。
319:デフォルトの名無しさん
08/06/18 02:28:24
任意のスクリプトコードのダウンロード・実行と、AppStore以外の配信システムを構築することは
SDK Agreementで禁止されている。
320:デフォルトの名無しさん
08/06/18 02:47:53
そもそも携帯電話ごときでスクリプト言語が満足にうごくの?
321:デフォルトの名無しさん
08/06/18 03:24:09
S60でもPythonが動いてるってのにこいつはUnixマシンだよ?
JB環境になるけどPython(PyObjC)やJavaScript(Jiggy)ならGUIアプリも書けるぜ。
322:デフォルトの名無しさん
08/06/18 07:32:28
実際スクリプト言語で十分だけど、
そこであえてObjcでガリガリ書くのがスーパーハカー。
323:デフォルトの名無しさん
08/06/18 08:47:52
インラインでCを書ける"軽量"言語だから
324:デフォルトの名無しさん
08/06/18 09:54:51
>>323
ちょっと目から鱗
325:デフォルトの名無しさん
08/06/18 10:33:56
>>301
もともとObjective-CはSmalltalkの式をCコンパイラに通すための
プリプロセッサとして生まれて、そこから始まったからだよ。
[ ] の中はSmalltalk。
326:デフォルトの名無しさん
08/06/18 10:38:29
あまりに違いすぎるから違和感というか抵抗が強い。
HTMLの中にJavaが入ってるのと似てる。(javascriptが入っててもソース見るとカオスだけど)。
Cのソースが6割がasm{}だったらやっぱりカオスでしょ?
Cを拡張なんかしないでjavaみたく新言語の方が受け入れられてんじゃないかと思う。
327:デフォルトの名無しさん
08/06/18 10:57:50
Smalltalk 由来だって分かってるから、俺には違和感は全くないけど。
俺等は受け入れた。それで十分じゃないか。
328:デフォルトの名無しさん
08/06/18 11:13:12
本当はCを埋め込んでんだろうけど、なんかobjcの方がCに埋め込まれてるみたいなんだよね。そんだけ
329:デフォルトの名無しさん
08/06/18 12:17:43
>326
組込やってるからカオスとは思わないが
330:デフォルトの名無しさん
08/06/18 12:22:00
組み込みのように中の人が使う言語を、ウェブ・クリエータみたいなカジュアル層の人にまで使っていただこうとするのは、どこか間違ってると思いませんか?
331:デフォルトの名無しさん
08/06/18 13:42:42
敬語??
ウェブ・クリエータみたいなカジュアル層の人が
HTML中のjava入りでやってるんじゃないの?
obj-cだけじゃないんだし
rubyやらjavaとか好きなの使えばいいんじゃないかと思うが。
「こうあるべき」で固まりたくはないもんだ
332:デフォルトの名無しさん
08/06/18 13:56:50
もんだ?
333:デフォルトの名無しさん
08/06/18 14:01:10
いまどき web サイトで java applet をつかってるところなんてあるのか?
javascript ならわかるが ...
334:デフォルトの名無しさん
08/06/18 14:15:50
オンライントレード系は?
335:デフォルトの名無しさん
08/06/18 14:52:32
applet ではHTMLの中に Java 書いたりしない。 JSP の話だろう。
336:デフォルトの名無しさん
08/06/18 15:32:00
ああなるほど、失礼しました。
337:デフォルトの名無しさん
08/06/18 15:41:03
Iフォーンみたいなカジュアルは来なくていい。objcがギンギラのコテコテのキモ言語になるからね
流行ちゃんは、VBよろしく、flash使っていてくれ。
338:デフォルトの名無しさん
08/06/18 17:36:51
/ヽ /ヽ
/ ヽ / ヽ
______ / ヽ__/ ヽ
| ____ / :::::::::::::::\
| | // \ :::::::::::::::|
| | | ● ● ::::::::::::::| ・・・
| | .| :::::::::::::|
| | | (__人__丿 .....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::::::::::::::::::::|
339:デフォルトの名無しさん
08/06/18 23:26:01
もんだw
340:デフォルトの名無しさん
08/06/22 21:33:43
interface builder3.0が糞な件について
研究室でObjective-Cを使ってプログラミングを書けって言われたんだけど、
何この糞みたいにめんどくさい開発ツールは。
なんでわざわざオブジェクトとコードのコネクションを手動で接続しなくちゃいけないわけ?
Visul Studioをちょっとは学べよ。
あんなのダブルクリックで済むんだぞ。
あーむかつく。
なんでこんなん使ってやらなあかんねん。
ふざけんな。研究費削っとんちゃうぞ!!!!!!!!!
341:デフォルトの名無しさん
08/06/22 21:59:49
使わなきゃいいじゃん
342:デフォルトの名無しさん
08/06/22 22:00:25
そういう言語だからです。
あきらめましょう。
Windowsプラットフォーム向けが普及するとユーザーが増えるので風向きが変わるかもしれません。
343:デフォルトの名無しさん
08/06/22 22:26:39
あまりに糞だからVS使わせろとか言えないのか?
わざわざマイナーなMacを使う意味がわからん
344:デフォルトの名無しさん
08/06/22 22:36:38
Macを使う理由は
Linuxベースで金がかからないから。
345:デフォルトの名無しさん
08/06/22 23:27:08
Linuxベース?
346:デフォルトの名無しさん
08/06/22 23:43:04
linuxベースっていう言葉はおかしいね。
まぁ基本的にはlinuxと同様unixが大元になっているけど。
この人はmacのことを殆ど分かってないんだろうなー。
347:デフォルトの名無しさん
08/06/22 23:43:53
最近、Cocoa始めたものとしては、最初の印象として>>340は思った。
糞だとは思わなかったけど、なんでだろ?って感じで。
で、NSTableViewにdataSourceセットするのをやって、ちょっと分かった。
少なくともVS的コーディングでは、これは実現できないと思ったなぁ。
それがいいか悪いかは知らんけど。
348:デフォルトの名無しさん
08/06/22 23:58:50
>>340
まさにおなじはなしを
URLリンク(dotnetaddict.dotnetdevelopersjournal.com)
のひとがしてるので、彼の分析を読んで見るとおもしろいかも。
このひとのブログは全般的におもろいです。
.Net addict だったはずなのに最近はすっかり Cocoa に毒されてる人です。
349:デフォルトの名無しさん
08/06/22 23:59:36
>>340
俺はコネクションが好きだったから、初めから別に苦ではなかったけど、Interface Builder使いこなしてくるとコネクションの良さがわかってくるよ。バインディグとかformatterとかウインドウ出したり。この辺はVSだとコーディングが必要になるところだと思う。
350:デフォルトの名無しさん
08/06/23 00:25:49
>>348
VSから移行する人はみんな思うのかもね。
俺もそうだった。
まぁVSと違ってクールなところもあるから。
351:デフォルトの名無しさん
08/06/25 00:37:23
>>340
俺も最近マック渡されてcocoa使ってる
しかもそれとおんなじことを先生に言ったww。
確かにVS.netはお金がかかるからね。
でも今必死にcocoaをやってるけど、案外楽しい。
352:デフォルトの名無しさん
08/06/25 02:43:26
>>351
まぁ学生は今のうちに好きな環境を使え。
仕事にしたらそうはいかないけど。
353:デフォルトの名無しさん
08/06/25 07:24:22
逆じゃね?
学生だからこそ、頭をやわらかくして、どんどんいろんな環境にチャレンジすべし。
一つの環境に馴れ親しむのも大事だけど、それだけじゃ二流だよ。
354:デフォルトの名無しさん
08/06/25 21:07:42
バインディング使えば?
355:デフォルトの名無しさん
08/06/26 22:07:31
>>351
>先生に言った
いくつかの環境に慣れとけば生存能力も高くなる鴨
356:デフォルトの名無しさん
08/07/06 22:35:21
@interface ClassA : SuperClass
{
id hoge;
}
@property hoge;
@end
こんなClassAがあったとして、インスタンスメソッド内で
self->hoge はインスタンス変数に直接アクセスし、
self.hoge はプロパティのアクセサを通してアクセスすると思うのですが、
単にhogeと書けばどっちになるのでしょうか?
357:デフォルトの名無しさん
08/07/07 00:08:08
>>356
単に hoge は self->hoge と同等。
358:デフォルトの名無しさん
08/07/07 08:07:57
ありがとうございます。
自分のプロパティへのアクセスにはself.が必須なんですね。
359:デフォルトの名無しさん
08/07/07 08:58:18
単に hoge だけでプロパティにアクセスされては、
Obj-C 1.0 のコードを 2.0 でコンパイルするとひどいことになるよ。
Obj-C 1.0 では手で
-(id) hage
{
return hage;
}
とか書いていたのと、
Obj-C 2.0 で obj.hage というのは、@property 定義がなくとも
[obj hage] と等価 (ただしくは [obj objectForKey:@"hage"] だけど)
だということをかんがえると、
もしインスタンスメソッド内で hage と書くのが self.hage という意味にしてしまうと、上記アクセッサで無限ループになります。
360:デフォルトの名無しさん
08/07/07 11:15:42
ちなみに展開したのってどやってみるの?
361:デフォルトの名無しさん
08/07/07 13:16:46
何を展開する話をしてるの ?
362:デフォルトの名無しさん
08/07/07 14:35:16
>>361
ObjCのコードじゃない?
それなら objc の -C オプションを付ければ拡張子が .i のファイルに
C のコードに展開された ObjC のコードが見られるよ。
363:デフォルトの名無しさん
08/07/07 19:13:49
>>359
id a = obj.hage;
って、
id a = [obj hage];
じゃなくて、
id a = [obj objectForKey:@"hage"];
になるの?
364:デフォルトの名無しさん
08/07/07 23:01:20
ごめん、objectForKey: じゃなくて、valueForKey: だった。
URLリンク(developer.apple.com)
とか
URLリンク(developer.apple.com)
参照。単に setHage:, hage: じゃなくて、KVC されます。
一般に、[obj valueForKey:@"aho"] とすると、
Objc-C ランタイムは aho: , getAho: isAho: というメソッドを探した後、
_aho, _isAho, aho, isAho というインスタンス変数を探します。
だから、obj.aho でも、それだけの候補が探されます。
毎回こんなことやってると遅くてかないませんが、裏でキャッシュしているらしいです。
基本的に、self.aho だとバインディングが動く、self->aho だと動かないということです。
365:デフォルトの名無しさん
08/07/07 23:10:17
>>364
そういう話じゃなくて、、、
プロパティーって、Objective-C2.0が持ってる機能でしょ?
なぜ、そこでvalueForKey:などの、Cocoaフレームワークのメソッドが出てくるのでしょう?
gccなどのコンパイラが、Cocoaに依存したコードを出力するとは思えないのだが。
リンク先のページにも、そんな事書いてないし。
366:デフォルトの名無しさん
08/07/07 23:17:43
valueForKey:をCocoa特有のメソッドだという考えをまず捨てねば。
allocやinitだってCocoa特有でないのと一緒。
finalizeが良い例。
367:デフォルトの名無しさん
08/07/07 23:27:25
まあ実際はこうなんだけど
Key-value coding and declared properties are orthogonal technologies. You
can use KVC whether or not you use properties, and you can use properties
whether or not you use KVC. Both, though, make use of a "dot syntax". In
the case of KVC, the syntax is used to delimit elements in a key path. It
is important to remember that when you directly access a property using the
dot syntax, you invoke the receiver's standard accessor methods (as a
corollary, to emphasize, the dot syntax does not result in invocation of KVC
methods valueForKey: or setValue:forKey:).
368:デフォルトの名無しさん
08/07/07 23:56:53
>>366
言っていることが、変だよ。
alloc、init、finalizeは、普通にObjective-C言語の一部として定義されてるメソッドです。
逆に、valueForKeyはObjective-Cの一部として定義されていません。
一緒にしてはいけません。
>>367が書いてるとおり、id a = obj.hage; は、id a = [obj hage]; とコンパイルされるよ。
ちなみに英文の日本語訳は、これ↓
URLリンク(developer.apple.com)
369:デフォルトの名無しさん
08/07/08 00:00:35
>>368
> alloc、init、finalizeは、普通にObjective-C言語の一部として定義されてるメソッドです。
日本語でおk
370:デフォルトの名無しさん
08/07/08 00:47:08
↑おまえはまずは日本語を勉強した方がいいんじゃないか?
371:デフォルトの名無しさん
08/07/08 08:13:14
364 ですが、嘘を言ってすいませんでした。
どこまでが Obj-C 2.0の機能かというのは、
Apple 版 GCC 以外に Obj-C 2.0 をまともにコンパイルできるのがないので考えても仕方がないのでは?
NSFastEnumeration とかはどう思うの?
372:デフォルトの名無しさん
08/07/08 08:45:22
嘘つきはお断り
373:デフォルトの名無しさん
08/07/08 18:03:58
alloc init が Objective-C言語の一部として定義されてるメソッドと断定している理由は何?
374:デフォルトの名無しさん
08/07/08 21:07:27
NSFastEnumerationは、それに関連して文法が拡張されてるぐらいだから、ObjC2.0の一部なんじゃない?
あと、インスタンスを生成するときは、[[MyClass alloc] init]ってやるって、決まってるし。これは、Cocoaだからじゃなくて、ObjCだからそういう仕様になってるんです。これらのメソッドは、Objectクラスにも定義されてるし。
>Apple 版 GCC 以外に Obj-C 2.0 をまともにコンパイルできるのがないので考えても仕方がないのでは?
そういう部分もあるけど、Foudationフレームワーク全体がObjCだっていう訳でもないと思うけど。
375:デフォルトの名無しさん
08/07/08 22:08:59
>>373
それ外したら言語機能の範囲内でオブジェクトが作れなくなってしまわないか。
ANSI-Cみたいな規格がなくて(ないの?)断定は出来んのかもしれんが、alloc
init が言語の一部じゃないってのは考えにくいなぁ。それとも俺が無知なだけ
で言語が定める正統なオブジェクトの作り方が他にあるのかな。
376:デフォルトの名無しさん
08/07/08 22:24:16
Mac OSXのオブジェクトは、フツーにC言語なCore Foundationで表現されてたかと。
ANSIとかどうでもいいが、規格ある言語をラップして表現する方向で統一してるね
CF自体はwin/linux/fBSDにportingされてるし、Darwinコードにも各OSへのコントリビュータの名前が並んでたり
Cocoaもまた、結構CFをまんまラップして表現してるんだよね
Carbonとの基盤統一のためにやってる事なんだろうけど。
今のOSXではalloc/initは本質的にどっちで表現されてんだろな
377:デフォルトの名無しさん
08/07/08 22:44:33
OSObjectは?
378:デフォルトの名無しさん
08/07/08 22:52:08
>>374
そういう曖昧なものを定義としていいの?
>>376
それは実装の話で、規格の話じゃないでしょ?
>>375
だから、Obj-Cではそれすら実装依存なんでしょ?
379:デフォルトの名無しさん
08/07/08 23:03:30
>>378
>だから、Obj-Cではそれすら実装依存なんでしょ?
どのプラットホーム上でも、オブジェクトの生成にはalloc - initを使う。これが言語仕様だから。
逆に、alloc - init以外でオブジェクトを生成する実装ってあるの?
380:デフォルトの名無しさん
08/07/08 23:13:12
>>379
それが言語仕様だってどこに書いてるの?
ほかの実装がないから言語仕様なの?
381:デフォルトの名無しさん
08/07/08 23:39:51
なんだよ、おまえらココアで酔ったか?
382:デフォルトの名無しさん
08/07/08 23:42:10
そもそも言語仕様の規格とかないんだから現存する「特定の実装の言語仕様」しか
語ることができないような… 議論そのものがナンセンスじゃね?
383:デフォルトの名無しさん
08/07/08 23:58:59
しようがねえな
384:デフォルトの名無しさん
08/07/09 00:01:56
ところでこの議論の先には何があるんだ?
385:デフォルトの名無しさん
08/07/09 00:20:13
>>381
多分そうなんだと思う。
別に今更、Obj-CとApple独自の実装を分けて考えろとは思わないけどさ、
>alloc、init、finalizeは、普通にObjective-C言語の一部として定義されてるメソッドです。
>逆に、valueForKeyはObjective-Cの一部として定義されていません。
>一緒にしてはいけません。
とか言われるとちょっと意地悪してみたくなるじゃない?
君こそ一緒にしてるじゃん?て。
あまつさえ、
>NSFastEnumerationは、それに関連して文法が拡張されてるぐらいだから、ObjC2.0の一部なんじゃない?
>あと、インスタンスを生成するときは、[[MyClass alloc] init]ってやるって、決まってるし。これは、Cocoaだからじゃなくて、ObjCだからそういう仕様になってるんです。これらのメソッドは、Objectクラスにも定義されてるし。
なんて意味不明な事言い出す始末だし。
普通は規約が改定されたからそれにあわせてAppleはNSFastEnumerationを実装して対応した。
って考えるでしょ。
なんで、一部になっちゃうかな?
分けて考えるなら、徹底して分けて考えろって思う訳よ。
書いてるうちに、先書かれちゃった。
問題はそこなんだけどねw >382
ANSIかISOで管理してるって話も聞くんだけど、全く見当たらないんだな、これが。
URLリンク(developer.apple.com)
これだって、Apple実装を例にしたObjective-Cのお勉強資料だしね。
>>384
[self release]; // 自身の解放?
386:デフォルトの名無しさん
08/07/09 08:01:32
alloc, initで生成と初期化を行うのはただの慣習であってObjCの仕様じゃない。
逆にfinalizeやFast Enumeration系はランタイム側で定義された仕様。
387:デフォルトの名無しさん
08/07/09 08:21:00
ほんとつまんない事にこだわる奴らだな。
タクシーのエンジンの構造や燃料の効率について、なんも知らなくったって、
運転手さんに行き先を言えば望んだ場所に連れて行ってくれるというのに。
388:デフォルトの名無しさん
08/07/09 08:30:09
いや、一応ここ専門板だし。俺はもう寝るけど。
389:デフォルトの名無しさん
08/07/09 08:56:01
>>388
というか、ISO / ECMA 規格がないのにどこまでが言語でどこからがライブラリかという話をしても仕方がないのでは。
390:デフォルトの名無しさん
08/07/09 09:12:05
多分それでFAだろね
それ以上はAppleがどう認識してるか調べるくらいが関の山かと
391:デフォルトの名無しさん
08/07/09 13:01:36
コンパイラが認知する部分は言語仕様
ランタイムが認知する部分はランタイム仕様
コンパイラやランタイムを変えなくても変えられる部分は慣習・規約
392:デフォルトの名無しさん
08/07/09 13:31:57
じゃあ、コンパイラが
@"hogehoge"
でNSStringオブジェクト定数を生成してるわけだから、
NSStringは言語仕様に含まれてるんだ。
NSCFStringだと主張するならNSCFStringもまた言語使用に組み込まれている。
で、まだ続けるの?
もう不可分で良いじゃん。
393:デフォルトの名無しさん
08/07/09 14:09:41
そうだよ。java.lang.StringがJava言語、System.StringがC#と結びついているのと同じ。特別扱い。
394:デフォルトの名無しさん
08/07/09 14:22:09
「@"hogehoge"がNSStringだ」というのは言語仕様
NSStringの具体的な中身はライブラリの仕様
395:デフォルトの名無しさん
08/07/09 14:23:47
じゃあ、コンパイラの不可思議な動作も言語仕様のうちだ。
@"hoge" "fuga" @"hogera";
が正しく連結されたりね。
396:デフォルトの名無しさん
08/07/09 15:01:25
>>391
Obj-C のどこからどこまでが言語仕様かという話をするために、
>コンパイラが認知する部分は言語仕様
というわけだけど、
「コンパイラが認知する部分」は「言語仕様」という定義をしてるのは誰?
397:デフォルトの名無しさん
08/07/09 15:05:08
>>394
>@"hogehoge"がNSStringだ」というのは言語仕様
そうだったのかー。じゃあ GNU実装の gcc -fconstant-string-class オプションでの
文字列リテラルクラスの変更は言語仕様違反ですね…
-fconstant-string-classのデフォルトは NXConstantString だから変更しなくてもやっぱり
言語仕様違反ですか…GNUの実装はひどいですねー
# その言語仕様とやらがどこに存在してるのか知らんけどw
398:デフォルトの名無しさん
08/07/09 15:27:08
>>397
それは間違いでしょ?
だって、「コンパイラが認知する部分は言語仕様」とされている訳だから、
Apple拡張されていないgccのコンパイラが認知するものだって言語仕様だよ。
つまりObj-Cの言語仕様はコンパイラの数だけあるってことでしょ。
399:デフォルトの名無しさん
08/07/09 15:30:23
ほんとは実装依存って言うんだろうけど
皮肉に皮肉で返しあってgdgd
400:デフォルトの名無しさん
08/07/09 15:32:58
/ヽ /ヽ
/ ヽ / ヽ
______ / ヽ__/ ヽ
| ____ / :::::::::::::::\
| | // \ :::::::::::::::|
| | | ● ● ::::::::::::::| ・・・
| | .| :::::::::::::|
| | | (__人__丿 .....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::::::::::::::::::::|
401:デフォルトの名無しさん
08/07/09 15:44:38
>>398
>コンパイラの数
Obj-CのコンパイラってAppleのgcc,GNUのgccとPOCぐらいだろ
402:デフォルトの名無しさん
08/07/09 15:47:38
>>401
それに何の問題が?
403:デフォルトの名無しさん
08/07/09 16:44:53
しょうもない話題をいつまでひっぱってんだ
404:デフォルトの名無しさん
08/07/09 18:45:14
alloc と init がObjective-C 言語仕様に規定されているという人がいるからしようがない。
もしくは、
Objective-Cの言語仕様はそのコンパイラが規定すると言い張る人がいるからどうしようもない。
Objective-Cには公開された言語仕様が存在しない。
ってことをどうして認めようとはしないの?
それとも僕はとんでもない勘違いをしていて、
これこれは言語仕様と断言している人たちは、
非公開な言語仕様を閲覧できる立場の人たちなの?
405:デフォルトの名無しさん
08/07/09 19:08:29
標準規格がない言語には言語仕様がないと?
406:デフォルトの名無しさん
08/07/09 20:30:53
さすがにもう飽きてきた。w
>405
じゃあそれ、これこれは言語仕様です。これこれは違います。
って自信満々に言ってる人に言っといて。
標準がないのにそんな自信たっぷりに言われてもねぇ、って。
407:デフォルトの名無しさん
08/07/09 21:23:01
皆さん熱弁を振るってますが、
「どこからが美人でどこまでがブスか。」
という議論に近い不毛なものを感じますた。
以上、通りすがりの私の感想でした。
408:デフォルトの名無しさん
08/07/09 22:37:47
だよな
どこからAPIの機能でどこから言語の規格が議論して何か意味あるのかね。
C++でもAPIがなけりゃ文字列処理もでない屑言語だが
409:デフォルトの名無しさん
08/07/09 23:45:04
>>405
> 標準規格がない言語には言語仕様がないと?
そりゃ標準規格がない言語には、どこまでが標準言語仕様でどこからが標準ライブラリでどこからが独自ライブラリかの違いなんてないだろうよ
アホ?
410:デフォルトの名無しさん
08/07/10 00:14:55
標準ライブラリも含めて言語仕様でしょ
NSObjectがなければ何もできないんだから
411:デフォルトの名無しさん
08/07/10 00:23:09
「仕様」を「規約」と解釈する人と「実装の裏にある本質」と解釈する人が争ってる感じ
412:デフォルトの名無しさん
08/07/10 08:59:06
この流れは…iPhoneのお陰かな。
413:デフォルトの名無しさん
08/07/10 09:03:29
>>410
NS~は「de fact」標準ライブラリです。
414:デフォルトの名無しさん
08/07/10 09:11:29
>>413
de facto ですよ正しい綴りは。
415:デフォルトの名無しさん
08/07/10 09:15:43
>>414
どうも。
416:デフォルトの名無しさん
08/07/10 16:04:21
>>410
objc/Objectじゃだめですか><
417:デフォルトの名無しさん
08/07/10 17:17:44
>>411
仕様は仕様でしょ?
それがあって始めてApple方言とかGNU方言とか言える訳で。
一番近いのは、
URLリンク(developer.apple.com)
これ。文書全体じゃなくてこの章だけね。
>>412
おれは茶化してるだけのCocoaがなかったら死ぬタイプの人間ですw
418:デフォルトの名無しさん
08/07/10 17:33:50
URLリンク(developer.apple.com)
こっちもそうだった。
こっちはコンパイラのディレクティブのところにNSStringと明記されてる。
これが要求仕様なのかどうかは不明。
419:デフォルトの名無しさん
08/07/10 17:48:03
アップルは、Objective-CとCocoaを別々に開発している。
当然、仕様も別々に存在している。
特に、Objective-Cに関しては、Darwinプロジェクトの中で開発されているのだから、どこまでがObjective-Cなのかは明確になっているんじゃないのか?
Objective-Cの仕様に合わせてCocoaを作る事はできても、Cocoaの仕様に合わせてObjective-Cを作ることはできないのだから。
420:デフォルトの名無しさん
08/07/10 23:13:07
>>419
アップルにしてみればObjective-Cの言語仕様とCocoaライブラリの境界をはっきりさせなくても別に困りはしないでしょ。OpenDarwinも終わっちゃったし。
>Objective-Cの仕様に合わせてCocoaを作る事はできても、Cocoaの仕様に合わせてObjective-Cを作ることはできないのだから。
Objective-C文字列リテラル、メッセージの転送、例外処理、@synchronized、ObjC 2.0のプロパティ、高速列挙。Cocoaを前提とした機能はずいぶんと追加されてるよ。
421:デフォルトの名無しさん
08/07/10 23:27:38
>当然、仕様も別々に存在している。
その自信はどこから来るわけ?
Apple 社員で社外秘の仕様をみられるというの?
社外秘の仕様があるばあいは社外の人には仕様はあることになるのないことになるの?
422:デフォルトの名無しさん
08/07/11 00:18:39
>>420
> アップルにしてみればObjective-Cの言語仕様とCocoaライブラリの境界をはっきりさせなくても別に困りはしないでしょ。
困ると思うよ。
「分割して統治せよ」って言葉聞いた事あるよね?
大規模なシステムを設計する場合は、全体が一枚岩のようになると、とても保守が面倒になるので、複数のコンポーネントに分割して管理するものなんだよ。
Cocoaだって、あえてAppKitとFoundationに分かれているのもそういった理由があるからだと思うよ。
NSStringがFoundation側で定義されていて、-[NSString drawAtPoint:withAttributes:]があえてAppKit側にカテゴリーを使って定義してあるのも、そういった理由があるからでしょう。
Objective-Cも同じようにCocoaから分割されていると思う。
423:デフォルトの名無しさん
08/07/11 00:48:59
Appleの場合、仕様はJobs(笑)ってのもあるから。
最近、GPGPUに興味を持ってるみたいだから、「Snow Leopard」公開後は新しい言語
「OpenCL(open computing language)」を使用するように仕様が変更されるかもしれない。
424:デフォルトの名無しさん
08/07/11 01:08:20
Rubyの仕様がまつもとひろゆきみたいなもんだね
425:デフォルトの名無しさん
08/07/11 02:25:22
Jobs本人がOpenCLについてなんか言及してるん?
426:デフォルトの名無しさん
08/07/11 02:26:24
>>422
システム全部大雑把でいいなんて書いてない。あくまで言語仕様とライブラリの境目の話。拡大解釈しないでおくれ。
>Objective-Cも同じようにCocoaから分割されていると思う。
文字列リテラルとかプロパティとか高速列挙とか、いろいろ挙げたのは無視?
Objective-Cの権利は全部アップルが持ってるし、自社OSのためにコンパイラもランタイムも開発してるんだから、Cocoa前提の機能を言語仕様に含めたほうがアップルにとって楽なこともあるでしょ。
427:デフォルトの名無しさん
08/07/11 07:42:15
文字リテラルもプロパティも高速列挙もCocoaなしで使えるし