Objective-C [ObjC part:3];
at TECH
1:デフォルトの名無しさん
07/08/08 12:18:31
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
(Wikipedia:Wikipedia項目リンク より)
前スレ
スレリンク(tech板)
前々スレ
URLリンク(pc5.2ch.net)
2:関連スレ
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 を送信しているはずです。
Wikipedia項目リンク
あたり参照。
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にも来てくれれば・・・
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4904日前に更新/212 KB
担当:undef