[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 12:16 / Filesize : 248 KB / Number-of Response : 975
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Objective-C [ObjC part:4];



1 名前:デフォルトの名無しさん [2009/04/15(水) 00:11:00 ]
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:ja.wikipedia.org/wiki/Objective-C より)

Objective-C [ObjC part:3];
ttp://pc12.2ch.net/test/read.cgi/tech/1186543111/

Objective-C
ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/

Objective-C
ttp://pc5.2ch.net/tech/kako/990/990574267.html

2 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 00:11:50 ]
*** プログラム技術板 ***
【マック】Macintoshプログラミング質問箱
ttp://pc11.2ch.net/test/read.cgi/tech/1113058054/

Mac OS Xでの開発環境はどれがイイ?
ttp://pc11.2ch.net/test/read.cgi/tech/1163314891/

*** 新・mac板 ***
Cocoaはさっぱり!!! version.12
ttp://pc11.2ch.net/test/read.cgi/mac/1231853172/

Macでプログラミング{9}
ttp://pc11.2ch.net/test/read.cgi/mac/1216824430/

Xcode part7
ttp://pc11.2ch.net/test/read.cgi/mac/1218774554/

iPod touch/iPhone ネイティブアプリ製作 ver.10
ttp://pc11.2ch.net/test/read.cgi/mac/1238385226/



3 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 00:12:29 ]

*** 本家 ***
Objective-C 2.0 プログラミング言語
ttp://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/

Introduction to The Objective-C 2.0 Programming Language
ttp://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

そのほか英語
ttp://developer.apple.com/documentation/Cocoa/ObjectiveCLanguage-date.html

*** 書籍 ***
荻原本
ttp://www.amazon.co.jp/%E8%A9%B3%E8%A7%A3-Objective-C-2-0-%E8%8D%BB%E5%8E%9F-%E5%89%9B%E5%BF%97/dp/4797346809/ref=sr_1_1?ie=UTF8&s=books&qid=1239721407&sr=1-1

HMDTダイナミック本
ttp://www.amazon.co.jp/Dynamic-Objective-C-%E6%9C%A8%E4%B8%8B-%E8%AA%A0/dp/4861006414/ref=sr_1_11?ie=UTF8&s=books&qid=1239721553&sr=1-11


4 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 00:48:05 ]
乙!でもどうでもいいが アマゾンのリンクは、
ttp://www.amazon.com/dp/数字 だけでいいんで、
来年ぐらいに次にスレたてする人はよろしく。
荻原本
www.amazon.co.jp/dp/4797346809
HMDT ダイナミック本
www.amazon.co.jp/dp/4861006414

ダイナミック Objective-C サイト
journal.mycom.co.jp/column/objc/

Apple のランタイムのソースコード (10.5.6)
www.opensource.apple.com/darwinsource/10.5.6/objc4-371.2/

英語のサイトだけど
Objective-C 入門
cocoadevcentral.com/d/learn_objectivec/
Objective-C Style 1, 2 (変数名のつけかた等)
cocoadevcentral.com/articles/000082.php
cocoadevcentral.com/articles/000083.php
Mike Ash さん(Audio Hijack の中の人)のブログ、
Obj-C のランタイムの話が良く出る
mikeash.com/?page=pyblog/
C++ と Objective-C の文法の比較
ktd.club.fr/programmation/objective-c.php

5 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 14:26:33 ]
ハムスターの Obj-C 講座もおもろい。偶然きのう更新されてた。
www.sealiesoftware.com/blog/archive/

6 名前:3 mailto:sage [2009/04/15(水) 23:38:19 ]
>>4
>ttp://www.amazon.com/dp/数字 だけでいい

知らんかった。以後そうする

7 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 04:58:57 ]
amazon.jp/dp/4797346809
amazon.jp/dp/4861006414

で良いよ、coもwwwも要らない

8 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 14:02:41 ]
短い URL かっこいい

9 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 18:35:08 ]
じゃもうぜんぶTinyURLで。

10 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:19:18 ]
あれはかっこわるい



11 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:24:27 ]
Cのヘッダファイル#importしたら、idって名前のメンバがある構造体でエラーになった。
これはしょうがないのか…。

12 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 16:10:41 ]
エラーにならんよ。


13 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 18:05:10 ]
#import <objc/objc.h>

14 名前:デフォルトの名無しさん [2009/04/19(日) 22:09:48 ]
Windowsで動く処理系ってありますか?
有ったら触って見たいです。

15 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:51:36 ]
これかな...
www.gnu.org/software/gnustep/experience/Windows.html
日本語ではあまり新しい資料はないかもしれん。とりあえず
journal.mycom.co.jp/special/2004/gnu/006.html

16 名前:デフォルトの名無しさん [2009/04/19(日) 23:20:09 ]
>>15
ありがとう御座います><
早速試してみます^^

17 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:26:10 ]
MinGW/GCCじゃだめ?

18 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 00:43:25 ]
>>17
>>15 のリンク先は MinGW ベース。

他には、Yellow Box for Windows というのを Apple が昔作ってたから、
ebay とかで粘ってると手に入るかもしれません。
www.shawcomputing.net/resources/apple/os_pictures/yb2k/
Rhapsody DR2 もしくは WebObjects 4.5 というのに付いてきます。

19 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 01:23:36 ]
Cocotron は?

20 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 01:32:35 ]
Cocotron は XCode でのクロスコンパイルが前提の気がする...
つかったことなくてサイトの説明を読んだだけなので何とも言えませんが。



21 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 02:27:54 ]
>>20
俺も採用例FileMagnetのWinクライアントぐらいしか知らないな
用途によってはREALBasicとかも検討すべし>>14
ただ遊びたいなら話は別だが

22 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 02:55:55 ]
>>21
>用途によってはREALBasicとかも検討すべし
REALBasic は Objective-C ではないのでは???

23 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:30:20 ]
>>22
WIn/Mac両対応のソフトウェアを作るという前提での話
どうももう一回読んでみると>>14はただObjective-Cの処理系で遊びたかっただけのようだから的外れな指摘だな

たしかLinux系にはgccでobjective-cのコンパイラは提供されていたような...
数度インストールオプションで見た覚えがある

24 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:42:47 ]
荻原本買って勉強中だけどこれが初プログラムだからどーにもな〜。
やり始めて2週間だからしゃーなか

25 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 15:58:31 ]
初プログラミングなら、荻原本でいきなりObjective-C叩くより、
楽しいCocoa辺りのコードを特に理解せず書いて動かして学んでいく方が進み早いんじゃないかな

26 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:59:56 ]
Dynamic-ObjectiveC を勉強中です。IMP 呼び出しについて教えて下さい。
オブジェクトを返すようなメソッドはそのままのものが返ってきましたが、
値を返すようなメソッドの場合、どうやって返ってくるのですか?
@interfae Bar: NSObject { double num; }
@property(readwrite) double num;
@end
@implementation Bar
@synthesize num;
@end
として、Bar のインスタンス hoge を作り、numを適当に設定し、
IMP numImp = [[Bar class] instanceMethodForSelector:@selector(num)];
id num = numImp(hoge, @selector(num));
としたところ、num には hoge が入っていました。method_copyReturnType()
では、d が返ってくるのですが…よろしくお願いします。

27 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 20:16:26 ]
ええと追記です。id だからオブジェクトを返すものしか駄目なのか、とも考えた
のですが、double を試す前にBar の変数に char *name とした場合には、
設定したchar* が返って来たので、やってみた次第です。
int の場合にも設定した値が返ってきました。で、今floatでやってみたのですが、
double と同様、駄目でした。float なら値が返ってくる事を期待したのですが…

28 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 20:48:49 ]
キャストしたらどうよ?

double(*numImp)(id,SEL) = [Bar instanceMethodForSelector:@selector(num)];
double num = (*numImp)(hoge, @selector(num));

29 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 21:06:51 ]
それが正解だよね

IMP の定義は typedef id (*IMP)(id, SEL, ...);
だから、id 以外を返す場合はキャストして使わないといけない。

30 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 21:16:19 ]
>>28
できました!なるほどー、IMPをさらに関数ポインタにしてしまえば良いんですね。
勉強になりました、ありがとうございます。

あと>26の「num には hoge が入っていた」というのはたまたま入っていた
だけのようでしたので訂正します(汗



31 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 21:26:59 ]
>>29
ありがとうございます。キャストが必要だろうと思い、そのまま
double value = (double) numImp(hoge, @selector(num));
とかやっていたので、コンパイラに怒られていたんです。Cそのものの経験が
無いのでよく分からずにやってました。関数ポインタのキャスト、ってのが
目から鱗でして (^^;;

32 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:35:51 ]
>>25
楽しいCocoa買ってみます
ありがと

33 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 17:11:46 ]
KVC準拠を意識して組んでる人いる?


34 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 22:32:46 ]
普通に書いてればそうならない?

35 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 13:08:57 ]
GUIならバインディング使うだろ
バインディング使うにはKVCで書くだろ

普通に書いてりゃkvcで書くと思う

36 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 13:20:20 ]
>>33 は他の言語からうつってきたばかりで、
つい getter を -(NSHage*)hoge でなくて
-(NSHage*)getHoge とかいてしまうからそう思うんではなかろうか。

37 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:17:46 ]
getだったら
- (void)getHoge:(NSHoge *)
とか言う形? 違和感有るけど

38 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 08:08:48 ]
>>37
-(void)getHoge:(NSHoge**)
でないと駄目だとおもう

39 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 01:03:12 ]
Apple gcc で -fconstant-string-class オプションが期待道理動かないんだけどなぜでしょう?
Linux で GNU の runtime 使ってると動くんですが…

#import <objc/Object.h>
#import <stdio.h>
@interface MyString : Object
{
char *bytes;
unsigned int numBytes;
}
- (const char *)cString;
- (unsigned int)length;
@end

@implementation MyString
- (const char *)cString { return bytes; }
- (unsigned int)length { return numBytes; }
@end

int main(int argc, char* argv[]) {
id s = @"Hello, World";
fprintf(stderr, "<%s:%p>\n", [s name], s);
return 0;
}
% gcc -g -fconstant-string-class=MyString -o main main.m -lobjc
main.m: In function ‘main’:
main.m:19: error: cannot find reference tag for class ‘MyString’
make: *** [main] Error 1

40 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:04:51 ]
Obj-C 2 だとこんなかんじになります。
#import <Foundation/Foundation.h>
// copied from objc/runtime.h
// because objc_class is opaque in Obj-C 2
struct objc_class_fake {
Class isa;
Class super_class;
const char *name;
long version;
long info;
long instance_size;
struct objc_ivar_list *ivars;
struct objc_method_list **methodLists;
struct objc_cache *cache;
struct objc_protocol_list *protocols;
} ;

@interface MyString : NSObject
{
char *bytes;
unsigned int numBytes;
}
- (const char *)cString;
- (unsigned int)length;
@end

struct objc_class_fake _MyStringClassReference;
つづく



41 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:05:37 ]
@implementation MyString
+(void)load
{
memcpy(&_MyStringClassReference,self,sizeof(_MyStringClassReference));
}
- (const char *)cString { return bytes; }
- (unsigned int)length { return numBytes; }
@end

int main(int argc, char* argv[]) {
[[NSAutoreleasePool alloc] init];
id s = @"Hello, World";
fprintf(stderr, "<%s:%s>¥n", [[[s class] description] UTF8String],[s cString]);
return 0;
}


42 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:08:43 ]
コンパイルは
gcc -fno-constant-cfstrings -fconstant-string-class=MyString hogehoge.m -framework Foundation
とかしてください。
ポイントは、Apple runtime だと、
1. no-constant-cfstring で CFString の特殊処理をやめさせてやる
2. constant-string-class=HogeString だと、isa ポインタが
struct objc_class _HogeStringClassReference というシンボルを指します。
だからそれを初期化してやらないといけないです。
lists.apple.com/archives/objc-language/2006/Jan/msg00013.html
を参照してください。

43 名前:39 mailto:sage [2009/04/28(火) 12:28:19 ]
>>42
Thx! 試してみます.

44 名前:39 mailto:sage [2009/04/28(火) 18:26:09 ]
#import <objc/Object.h>
#import <stdio.h>
#import <string.h>

#if (defined __APPLE__) && (defined __MACH__)
# import <objc/objc-runtime.h>
struct objc_class _MyStringClassReference;
#endif

@interface MyString : Object {
char *bytes;
unsigned int numBytes;
}
- (const char *)cString;
- (unsigned int)length;
@end

@implementation MyString
#if (defined __APPLE__) && (defined __MACH__)
+ load {
memcpy(&_MyStringClassReference, self, sizeof(_MyStringClassReference));
}
#endif
- (const char *)cString { return bytes; }
- (unsigned int)length { return numBytes; }
@end

int main(int argc, char* argv[]) {
id s = @"Hello, World";
fprintf(stderr, "<%s:%p> : \"%s\"\n", [s name], s, [s cString]);
return 0;
}

45 名前:39 mailto:sage [2009/04/28(火) 18:28:24 ]
Apple % gcc -fno-constant-cfstrings -fconstant-string-class=MyString -o main main.m -lobjc
GNU % gcc -fconstant-string-class=MyString -o main main.m -lobjc
って感じで両方でコンパイル成功して期待した通り動いた.ありがとう >>42

46 名前:デフォルトの名無しさん [2009/05/13(水) 08:16:25 ]
オブジェクト自分で作ったら、リリースせんといかんと思うけど、
そのとき、例えば、AppleのCocoaだと、

NSObject obj = [[NSObject alloc] init];
[obj autorelease];

って出来るよね?
このautoreleaseって、要するにGCみたいなもんなの?

47 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 11:26:33 ]
ちがう。autorelease は NSAutoreleasePool に登録する際に使う。
NSAutoreleasePool は drain/release を受けたときに登録してある
インスタンス全てに release を送るだけ。受けなければそのまま放置。
とりあえず、メモリ管理プログラミングガイドを理解しよう。
ttp://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
それでも分からないなら、新Mac板 Cocoaはさっぱりスレ の方へどぞ。
pc11.2ch.net/test/read.cgi/mac/1241407525/


48 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 13:50:54 ]
>>46
C言語の自動変数に近い。イベントループ開始でAutoreleasePoolが確保
されて、autoreleaseにするとそこに登録される。イベントループ終了で
AutoreleasePoolが解放されて、autoreleaseで登録したオブジェクトは
全てreleaseされる。だから自分でreleaseの手間が省ける。
GCはどこからも参照されていないオブジェクトを見つけて勝手に解放する
機能

49 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 20:21:28 ]
メモリ管理プログラミングガイドは日本語版もあるよ
developer.apple.com/jp/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

50 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 20:43:38 ]
あ、日本語のはログインしないと見れないのかな、ごめん



51 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 23:51:15 ]
Xcode で、Objective-c (*.m)のクラスから 別の C++(*.cpp) ファイルの
グローバル関数を呼ぼうとすると、下記のようなエラーが出てしまいます。

Linking xxx/xxx
-[xxx xxx:] in xxx.o

Objective-Cのクラスから、C++のグローバル関数を呼べなかったようです。
*.m ファイル内に作ったローカル関数は呼べたのだけど・・・



52 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 00:18:26 ]
extern "C"

53 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 01:42:10 ]
トン

54 名前:デフォルトの名無しさん [2009/05/29(金) 19:54:09 ]
class Test
{
Test(){}
virtual ~Test(){}
};

これコンパイルすると、
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Test'
ってエラー出ます
何が悪いんですか?


55 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:17:13 ]
うちでは問題無かったよ。セミコロン付けろゴルァって事かな?

% cat foo.cpp
class Test
{
Test(){}
virtual ~Test(){}
};
% g++ -c foo.cpp
% ls foo.o
foo.o

56 名前:デフォルトの名無しさん [2009/06/01(月) 15:46:54 ]
>>55
いろいろ試しましたが、コンパイル通りません…
自分はiPhoneのOpenGL ESベースのアプリでやっているのですが、それがまずいんでしょうか
プロジェクト作成して、Other SourcesフォルダにTest.hを作成して、>>54のコードを記述し、それをmain.mに#importしてるのですが、エラーになります
.mmで定義するようにしないといけないのかなと思い、Test.mmを作成してコンストラクタ・デストラクタの定義をそちらに移してもだめでした

できればコンパイルを通すまでどのような手順で行っているのか教えてください


57 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 16:13:50 ]
before 'Test'
だから、クラス定義に問題があるんじゃなくて、
その前、恐らく includeファイル内などに問題がありそう。


58 名前:デフォルトの名無しさん [2009/06/01(月) 16:33:57 ]
ヘッダーファイルの「情報を見る」とファイルタイプが.h,.cになっていたので、.h.cppに変えました。
が、それでもダメでした。これでいけると思ったんだけどなあ。
この問題ってXcodeスレで聞いた方がいいんですかね?


59 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:25:52 ]
呼び出し側のmain.mの「情報を見る」でファイルタイプを.c,.objcから.cpp,.objcppに変えたら動きました。
ここら辺説明してるサイトが全然見あたらなかったですよ…
2chのXcodeスレでかろうじて類似の質問があって助かった


60 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 21:05:51 ]
System.Generic.List<T>に相当する
記述方式ってないのでしょうか

毎回毎回別々のオブジェクト書くの面倒です
助けてください



61 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:16:13 ]
>>60
NSArray に突っ込んで、型は気にしないというのが Cocoa 流です。
もしくは Objective-C++ にしてSTL の list を使えばいいと思いますが
その場合は retain/release に気をつけてください。

>>59
それはだって Obj-C の問題というよりは、C, C++ では
当然の話だから... いつもはどんな言語で開発してるんですか?
C, C++, Obj-C の .h ファイルは、コンパイルの際に
どの言語からインクルードされるかわからないので、
XCode 等 IDE で設定するにしても .h に言語を設定しても仕方が無いです。
.h に C++ のクラスがあるなら、
インクルードする側を (Obj-)C++ モードにしないと
そりゃあコンパイルが詰まりますよ。

62 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:43:19 ]
>>61
それなんてJavaですかw
iPhoneでもObjective-C++できるのですか

63 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:44:52 ]
C++のテンプレートはオブジェクト指向的じゃないとよく批判されるがな

64 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:46:14 ]
>>62
iPhone でも Obj-C++ できますよ
というか main.m を cpp モードにした時点で Obj-C++ になってます

65 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:52:52 ]
>>59
まさかgccでコンパイルしてたとか?
g++じゃなくて。


66 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:07:28 ]
>>65
そういうことだったんじゃないの。XCode (Mac の IDE) からだと
ファイルの言語設定でコンパイラが変わるので。
まあ確かにそのあたりはやっている人には当たり前すぎて、
解説書にもつい書き忘れてしまう... ということかも知れない

67 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:24:34 ]
GUI以外の部分で
コールバックってどうやって実現すればいいですかね?


68 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:27:45 ]
>>67
それだけで貴女以外のひとがなにが聞きたいかわかると本当におもってますか?
僕らはエスパーじゃないよ。

69 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:29:58 ]
ネットワーク処理をコールバックで処理したいの

70 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:33:15 ]
さっぱり見えてこないんだけど、Objective-Cは関係あるの?



71 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:39:50 ]
>>70
C#とC++ならコールバックあるでしょ
なんでObjective-Cには無いの?

元のソース移植できないじゃん

72 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:51:43 ]
メソッドのポインタ取り出したいってこと?

73 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:03:39 ]
>>71
何で無いと思うの? 無い訳無いじゃん。

74 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:09:42 ]
じゃあこれと等価の記述を教えていただけないですか?

double g( double x, double (*f)(double) )

75 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:11:28 ]
それでいいじゃんw

76 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:21:34 ]
>>67
関数ポインタみたいなのが欲しいんでしょ。

developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/3objc_language_overview/chapter_7_section_6.html

77 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:27:49 ]
基本は>>76で、遅いと思ったらこっち。

journal.mycom.co.jp/column/objc/022/index.html

でもネットワーク処理なら C で kqueue とか libevent とか使ったら良いのに。

78 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:32:51 ]
- (double)g:(double)x callback:(double(*)(double))f;

こういう事かな?


79 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:01:43 ]
>>71
いや、C++ のソースがあるなら Obj-C++ つかえば
なにひとつ移植しなくて済むでしょ。何を考えているんだ?アホ?

80 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:16:49 ]
>>74
それそのまんまで何が問題なんだ?w



81 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:54:09 ]
わかりにくいね

82 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:58:03 ]
typedefすればいいじゃん。

83 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:58:09 ]
Obj-Cって型が解らなくなった場合に
チェックする方法ってありますか?

84 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:41:19 ]
正確には無いと思うよ。

85 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:24:04 ]
>>83
[obj class]

developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/class
wwwa.dcns.ne.jp/~nito/OSPT/ObjcOthers.html

86 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:43:55 ]
>>83
その型ってのは、変数の型? それとも、オブジェクトのクラス?
Objective-Cは変数に型がない(idでかまわない)言語なだけですよ(プリミティブ型は除きますが)
型キャストを許す言語であれば、(変数の)型が分からなくなる事はありえるのでは?
変数の型がどうであれ、オブジェクトが自分自身の型/クラス、もしくは受けられるメッセージを知ってれば問題ないって考え方です

87 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:51:14 ]
オブジェクトの型が id なんじゃないの?
プリミティブがそれぞれの型を持っているのと同じで。

88 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 04:23:39 ]
>>87
idは構造体のポインタのtypedefだからそうとも言えるけど、それは変数に型のあるCという言語での実装の話しで...なんというか微妙な感じもする。
idには特別意味もないし、JavaとかC++の縛りのきつい「型/クラス」と、idは別の概念、別のくくりにした方がいいんではないかと。

89 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 22:58:35 ]
何なのこの投げっぱなし質問

90 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:15:09 ]
interface作ったときにメモリ開放メソッドは
どのように記述するのが一般的なのでしょうか





91 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 02:39:56 ]
@interface ... @end内にデストラクタをどう宣言するかという話かな?
普通はNSObjectで宣言されているdeallocメソッドをオーバーライドします。
(だから@interfaceにはとくに何も書きません。)
メモリ管理については
developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmObjectOwnership.html
をどうぞ。

92 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 20:48:46 ]
独自にObjを定義したとして
[[Obj alloc] initHoge : arg];

allocと組み合わせて利用するinitHogeを定義するとき
定義は以下が一般的なのでしょうか?

- (id) initHoge : (NSString *) val;

93 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:03:25 ]
XmlTextWriterみたいなクラスってないですか?

94 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 00:24:29 ]
>>93
Obj-C スレにきて、返事をする人が .NET を知っていると仮定するとはいい度胸をしている。読み手のことを考えて、
「.NET ならこれこれができるこれこれというクラスが
あるんですけど、(ドキュメントは http:// ... に ...)」とか
質問の際に書けんものかね?

とりあえず NSXMLDocument をつかえば規格に準拠した XML データは
つくれますよ。かなりメソッド名が冗長だけど。
手で文字列をつなぎ合わせて XML にするよりは断然いいです。

あと、これ以上は Mac 板の iPhone プログラミングスレか
Cocoa スレに行ったほうがいいとおもいます。ここは一応 Obj-C 言語に特化した
過疎スレなので。


95 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 01:58:33 ]
>>93みたいな手合いは相手する必要ないよ。

96 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:23:27 ]
NSMutableDictionaryにオブジェクトをつっこむときに

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
Hoge *hoge = [[Hoge alloc] init];
[dic setObject:hoge forKey:@"hoge"];
とやるのと

[dic setObject:[[Hoge alloc] init] forKey:@"hoge"];
とでは、後者はメモリリークするのでしょうか?


97 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:19:50 ]
何処が違うのかさっぱりわからん


98 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:47:19 ]
>[dic setObject:[[Hoge alloc] init] forKey:@"hoge"];
て書いたら、 setObject:に渡したHogeインスタンスを後でreleaseする手段が無くなるのでは
上の書き方なら [hoge release]て書けるけど。


99 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 02:47:32 ]
>>98
なあにobjectForKey:@"hoge"で取り出してreleaseすればいいさ

100 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 07:22:05 ]
[dic setObject:[[[Hoge alloc] init] autorelease] forKey:@"hoge"];
じゃないとだめ








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<248KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef