[表示 : 全て 最新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

504 名前:デフォルトの名無しさん [2009/11/08(日) 15:04:31 ]
 簡単なxmlを解析するクラスを作ってます。char型のメンバ変数を持たせたいと思ったのですが、うまくいきません。
@interface SimpleXml : NSOperation {
const char *elementName;
}
オブジェクトの初期化のところで
- (id)initWithRequest: (NSURLRequest*)request name: (NSString *)name
{
self = [super init];
if (self) {
elementName = [name UTF8String];
}
return self;
}
こんな風にしてみた。代入直後でNSLogするとちゃんと代入されてるのですが、実際に使いたいメソッドの中では文字化け?のようなおかしなデータになってます。
比較対象がchar*なので最終的にはchar*が欲しいです。メンバ変数をNSStringにして比較するところでUTF8Stringで変換して比較するとうまくいきます。
ただ、xmlの要素分繰り返し呼ばれる部分なので、毎回UTF8Stringを呼び出すくらいならcharで持たせちゃえと思いました。
それほどおかしなことはしてないつもりなのですが、やっぱりポインタの理解が足りてない感じでしょうか?アドバイスお願いします。

505 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:40:23 ]
>>504
-[NSString UTF8String] のドキュメントを読みなさい。
ちゃんと注意が書いてあります。

506 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 22:17:39 ]
>>504
NSXMLDocument つかえば?

507 名前:504 [2009/11/09(月) 02:02:48 ]
>>505
ありがとうございます。
もとのNSStringがreleaseされた時点でfreeされちゃうんですね。
うまくできました。

ドキュメントよく読みます。

508 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:32:01 ]
iPhoneの開発で初めてObjective-Cを使ったが、良いねこれ。
最初はメソッド呼び出しの[]がきめぇwwwwって感じだったんだが、
デフォでリフレクションできるのは良い。
C++よりこっちが普及していれば自分のプログラマ人生も幸せだったのかもしれない、
と思う今日この頃。

509 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 13:06:25 ]
リフレクションって何?

510 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 13:52:19 ]
RTTIのすげぇやつ

511 名前:508 mailto:sage [2009/11/10(火) 15:25:49 ]
つくづく思うのがC++のvirtualってナンセンス。
id型に何でもぶちこめるのもイイ。まさかCでこんな風に扱えるとはね。
メソッドのprivate/publicの定義ができなかったり不満もあるけど。

512 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 15:31:08 ]
それ、Cやない、Objective-Cや



513 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 15:45:31 ]
C拡張で、ってことでは。

514 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:06:01 ]
virtualがナンセンスだなんて思ったことないわ

515 名前:508 mailto:sage [2009/11/10(火) 16:40:25 ]
スクリプト言語になれると、基本、親のメソッドはなんでも置き換えられてあたりまえという考えに。
基本クラスが違ってもメソッドの名前と引数の型が一緒なら呼べてしまうのも何気にすごい。
それに甘えて使いまくると死ぬけど。

516 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:58:33 ]
どれもが同じ実装だったら、何も楽しくないじゃん

517 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 19:21:36 ]
既に C++ が存在しているって事は良い事だよね。
ああいうのが好きな人が楽しめる場所が別にあるから、
お互い邪魔せずに、こっちはこっちで自由にできる。
彼らはどう転んでも Smalltalk 風のオブジェクト指向を
消化できないだろうし、C++0x を見ていると、
対岸の火事で良かったなあと心から思う。

518 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:08:39 ]
無理して語ってる感がすごい

519 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:14:35 ]
ん、そうか?
前世紀から何度も繰り返し語られてる話だけどな。

520 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:17:29 ]
C++のメソッドをCの関数ポインタみたいに実行時バインドしようとすると
virtualのダメさが際立つな。あれはナンセンスと思う
Qtのシグナルスロットとかみたいに言語外の飛び道具が必要になるし


521 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:18:48 ]
いろんなことを混ぜ込めて、結局は何も言ってないみたいな

522 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:22:27 ]
伝わる人に伝われば良いんだよ。別に説得するつもりも無いし。



523 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:26:00 ]
いろんな言語使う人からすると実装の違いがおもしろいんだけどねえ
何か他の言語を否定しがちなのはもったいない感じがする

524 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 20:26:50 ]
ObjC 一本槍な人間が居るとでも?

525 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 21:18:48 ]
どんな言語にも欠点はあるし、多少叩かれてもカリカリしなくていいんじゃね

526 名前:508 mailto:sage [2009/11/11(水) 16:00:50 ]
そもそもobjCってmac、iphone開発くらいにしか使わないし、
WEBプログラミングでrubyかPHPかjava、どれでやるかって話にはならないよね。
で、自分はC++に10年以上お世話になってるが、
歴3ヶ月のobjCのが言語として優れてる気がしている。
なにげに[nil method1]でぬるぽにならないのもいいな。

527 名前:デフォルトの名無しさん [2009/11/11(水) 16:08:31 ]
はいはい、もういいから。

528 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 17:47:21 ]
冷たいな(´・ω・`)
ObjCスレなんだから、もっと激しく愛を語ってもいいじゃないか。

529 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:58:09 ]
今更30年前に Smalltalk で実現されていたものについてだけ語られても反応に困る
.mm で boost:python と混ぜて使うのが最強ですよとかモダンな話をしようよ

530 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 19:30:20 ]
じゃあ追加して欲しい言語仕様の話でも

531 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:00:46 ]
[hoge method1] でマルチスレッドになりますか?

532 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:01:49 ]
最近 object_getInstanceVariable とかを知って悶絶しそうな程展望が開いて小躍りしてます。



533 名前:デフォルトの名無しさん [2009/11/11(水) 22:50:59 ]
>>531
なりません

534 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 23:17:52 ]
>>532
reflection つきの オブジェクト指向言語なら出来て当たり前だろう
>>531
[hoge performSelectorInBackground:@selector(method1) withObject:nil]
でオッケー

535 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:38:16 ]
昔はこれだけで感動だった。

Smalltalk keys.

Lisp だと apropos とか。

536 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 05:05:03 ]
>>531
goなら可能

537 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 08:51:40 ]
Smalltalk で言ったら fork メッセージだな

538 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:12:27 ]
oneway voidなメソッドなら別スレッドで実行されてもいいよな
OSXのランタイムはそういう実装にはなってないけど

539 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 12:00:19 ]
>>538
APIが全て thread-safe な理想郷ならそれでもいいけど、
とつぜんあるメソッドが別スレッドで走られると困る事もあるよ

10.5 では NSOperation の concurrent オペレーションは
メインスレッドで動いてたのに、10.6 からそれも別スレッドで
走るようになったので嵌まったのでそういうのはこわいです。

540 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:28:16 ]
プロパティのデフォルトアクセサは nonatomic を指定しないかぎり
スレッドセーフだから多少のオーバヘッドには目をつむって自クラス内でも
インスタンス変数は常にプロパティ経由で触るみたいなスタイルが今後は
主流になるのかもね


541 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 14:03:00 ]
個々のインスタンス変数やプロパティの読み書きだけスレッドセーフにしても
あんまり意味ないから、主流にはならないと思う。

542 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 17:25:51 ]
iPhoneのSDKがらみの質問もここでしてよいのかな。
本体の傾きを求めるとかそういう話だが。



543 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 17:49:22 ]
だめ。↓辺りでやれ、

[SDK]iPhoneアプリ開発初心者質問箱3[touch]
pc11.2ch.net/test/read.cgi/mac/1254325417/

544 名前:542 mailto:sage [2009/11/19(木) 18:49:07 ]
mac板にあったんだ、iphoneじゃなくて・・・どもです

545 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 20:36:11 ]
ブロック構文ってなんじゃらほい。

546 名前:デフォルトの名無しさん [2009/11/21(土) 20:37:49 ]
www.nogawasakura.net/

547 名前:デフォルトの名無しさん [2009/11/22(日) 21:09:36 ]
NSStringの文字列"0"をASCIIコード10進数の48に変換するにはどう書けば良いのでしょうか?

548 名前:547 mailto:sage [2009/11/22(日) 22:30:21 ]
すいません、間違えました。
ASCIIコードの48をcharもしくはNSStringの0に変換するには
どう書けば良いのでしょうか。


549 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:34:08 ]
なんだこのゴミは

550 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 02:56:15 ]
>>549
まあまあ。将来有望な小学生が来たのかもしれんじゃないか。

>>548
で、その48は何で表されてんのかな?

551 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 04:40:12 ]
char c[128]={0};
c[0] = 48;
sprintf(c, "%c", 48);
NSString *nss = [[NSString alloc] initWithFormat:@"%c", 48];

552 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 06:05:21 ]
>>551
オイコラ、char c[128]ってどういうつもりだ。これだから最近の若いもんは・・・。



553 名前:デフォルトの名無しさん [2009/11/23(月) 06:29:27 ]
>>552
えっ、何かマズいっすかね・・・
自分まだ初めて2ヶ月くらいなんです・・・

554 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 07:34:23 ]
Mac関連スレってどこも変な物言いのおっさんばっかりなんだよな

555 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 08:34:48 ]
>>553
>>551の2行目のようにchar型のデータが欲しいだけなら何もすることは無いので char c; c = 48; で十分だ。
もし3行目のように文字列として扱いたい場合でも今の場合なら一文字目 '0' == 48 と二文字目の '\0'
の分だけなので char c[2]; でよい。
それにchar c[2] = {0} のように書いた場合、2要素目以降は言語仕様上不定(実装上はほぼ確実に0にセットされるが)。

556 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 08:36:27 ]
なんだそんな話か
char c[4096];
とか平気でやってるぞ

557 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 09:17:42 ]
なんと愚かな!

558 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 10:41:38 ]
>>555
なーるほど。そういうことなら問題なっすぃん。
なんか48 61 65 71みたいな数値を文字列に直すのかなーとか思って多めにとっただけっすぃん。

559 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:04:11 ]
>555
悪意がないことを先にいっておく
>char c[2] = {0} のように書いた場合、2要素目以降は言語仕様上不定
なる理由はどこから
気になったので、規格書があればそのセクションをお願いします

560 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:54:05 ]
>>559
俺も気になったんで見たんだけど、
C99?だと、静的変数と同様の暗黙の初期化になるみたい。
それ以前のは規格書が見れない。
www.jisc.go.jp/
JISX3010のPDF96ページ辺り。

561 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 12:36:40 ]
>560
確認しました
確かに静的記憶域と同じと書いてありますね

562 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:43:49 ]
American National Standard Programming Language C
3.5.7 Initialization
Semantics
If there are fewer initializers in a list than there are members of
an aggregate, the remainder of the aggregate shall be initialized
implicitly the same as objects that have static storage duration.



563 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 14:02:14 ]
おまいら静的変数と同じとか遠回しなこと言ってないで、
>>555 は間違いで
char c[2] = {0}の様に書いた場合 2 要素目以降は c 言語の
仕様として 0 にセットされる、とストレートに指摘しろyo

564 名前:555 mailto:sage [2009/11/25(水) 03:10:05 ]
いい加減なことをいってスマンカッタ。
ヽ(`Д´)ノ ウワァァァン
そんなこと言ったら厳密なObjective-Cの規格書なんて無いんだよう(グチグチ

565 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 03:10:53 ]
往生際悪すぎ

566 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 00:04:19 ]
とはいえ、身を委ねたくはない仕様だな。
明示的に初期化しておきたい。

567 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 00:30:36 ]
明示的に bzero() とか memset() すると冗長だと言って怒る人もいる(いた)から難しいね…

568 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 15:41:30 ]
こんな基本的な仕様を信用できないなら、ただの代入とかも信用ならんし
関数呼び出しなんて高度なものは余計使えないんじゃないか?

569 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 18:26:21 ]
コンパイラにバグがあったりするんだよ
そういう経験から、冗長かどうかはともかく
おまじないとして書いている処理というのはある

570 名前:デフォルトの名無しさん [2009/11/26(木) 18:28:35 ]
信用うんぬんじゃなくて、知らん人が多くて話がややこしくなるからだろ
みんな知ってりゃいいが >>567 みたいな理不尽なツッコミもありそうだし、
この流れみたいに話がこじれたらかなわん

571 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 20:48:17 ]
じゃ信用できるコンパイラ先輩が作ってくださいよwwwwww

ってやる夫顔で言ってやればいいんだよ

572 名前:デフォルトの名無しさん [2009/11/27(金) 10:52:05 ]
クラス名からそのクラスのインスタンスを生成するにはどうするんでしょうか?
クラスオブジェクトの生成は結構見つかるんですけど、
Class cls = NSClassFromString(@"anyClassName");
クラスのインスタンス自体を生成するやり方を教えてください。

出来ない言語もあるけど、objective-cはいかにも出来そうですよね?
お願いします



573 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 10:54:21 ]
そこまで来てればあとはコンドーム一枚だぞ

574 名前:572 [2009/11/27(金) 11:05:28 ]
>>573
あれ?もしかして
id obj = [[cls alloc] init];
でいいんですか?
NSLogでのぞくと出来てるっぽいです。

class_createInstanceというのも見つけたけど上ので良いのかな。

575 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 13:05:20 ]
いいんです。

576 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 13:57:42 ]
こんなのも

Class class = NSClassFromString(@"AnClass");
SEL sel = NSSelectorFromString(@"aSelector");
id obj = [[[class alloc] init] autorelease];
[obj performSelector:sel];


プラグイン書くときはNSClassFromStringは便利だよね。
わざわざバンドルローダー指定する必要ないし。
NSSelectorFromStringの方はごくまれにしか使わないね。
AppleEventDispatchの実装部では使いまくってそうだけど。

577 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:21:30 ]
newとallocの違いが今イチ分からん。

578 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 17:30:29 ]
>>577
俺も俺も
てか乳って使ったことない。

579 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 00:03:58 ]
+newは+alloc -initと同義

580 名前:デフォルトの名無しさん [2009/12/01(火) 18:38:18 ]
typedef enum {a,b} defA;

といった宣言をヘッダに記述し、これを他のクラスからimportして
defA a;

のように利用しようとすると、
"expected specifier-qualifier-list before 'c'"とエラーが
起きてしまいます。
どのように定義すれば良いのでしょうか。

581 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 18:43:26 ]
enum {
a,
b,
};
typedef NSInteger defA;

582 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 19:24:09 ]
>>580
ソース



583 名前:580 mailto:sage [2009/12/01(火) 20:55:30 ]
すいませんちょう単純な勘違いしてました。
他のヘッダが邪魔をしていて、importの前に書いたらうごきました。。

584 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 23:11:37 ]
Objective-Cって、メソッド名ひとつ考えるのにも英語力を要求してくるな。
こりゃ、そんじょそこらのなんちゃってプログラマに扱えるしろものじゃねーな。

585 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 00:29:56 ]
なんちゃってプログラマでも簡単に使えるよ。英語さえわかれば。

586 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 00:50:29 ]
>>584
別に日本語ローマ字書きでもいいじゃん

587 名前:デフォルトの名無しさん [2009/12/02(水) 04:06:03 ]
辞書が存在していない時代だったらそう言えるかもしれないね。

588 名前:デフォルトの名無しさん [2009/12/02(水) 05:26:27 ]
辞書の歴史は紙の歴史より古いからなあ。

589 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:58:30 ]
DataWoTuika:id KonoIchini:idx omake:option

590 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 20:46:14 ]
引数がkonochincoとomekoに見える

591 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 21:10:19 ]
けしからん奴じゃ

592 名前:デフォルトの名無しさん [2009/12/03(木) 19:40:15 ]
NSStringにHTMLのソースが入ってるんですけど、
そこから<li>〜</li>の部分だけ抜き出したいと考えています。
ただ、それをどうやって実装すればいいのかが良く分からないです・・・。

今頭の中にある感じだと、<li>とマッチする最初の場所と
</li>とマッチする最後の場所を探して、その部分を抜き出すという方法なんですけど、
もっと簡単に正規表現みたいな感じでピュッと抜き出したりできないでしょうか?



593 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:19:18 ]
Google Toolbox for Mac の GTMRegex でも使え。

594 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 21:59:37 ]
まさかiPhone初心者スレで聞いてたやつじゃねーだろうな

595 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 22:07:13 ]
>>592
とりあえず簡単にやるならスキャナ使えば?

NSString *hoge = "hoge <ol><li>foo</li><li>bar</li></ol>";
NSScaner *scanner = [NSScanner scannerWithString:hoge];
while (YES) {
 NSString* itemString;
 if (![scanner scanUpToString:@"<li>" intoString:NULL]) break;
 if (![scanner scanUpToString:@"</li>" intoString:&itemString]) break;
 NSLog(@"item = %@",itemString);
}

596 名前:デフォルトの名無しさん [2009/12/04(金) 00:52:37 ]
>>592
NSXML 使って XPath でピョッと

597 名前:デフォルトの名無しさん [2009/12/05(土) 22:45:14 ]
なんか、releaseしなきゃならん場合としないでいい場合の違いが良くわからんわ。
本のサンプルとかみても、retainしてるのに、どこにもreleaseがなかったり、allocして
autoreleaseも呼んでるのに、deallocでreleaseもしてたりとか、もうわけわかめ。
なんじゃこりゃ、そんなに神経質にならなくてもいいのか?

598 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 23:07:44 ]
カウンタ使ってメモリ管理するなら当然覚えないと、意味不明なバグに遭遇することしきり。
自分は Instruments の Leaks 使って、可視化されたメモリリークを見ながら試行錯誤して覚えたけど。

599 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 23:09:06 ]
あと初心者は Build & 解析はかなり役に立つんじゃ。

600 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 03:36:39 ]
まずは
developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html
を読まんといかんよ。

iPhone じゃなくて Mac のプログラムならガーベジコレクション ON
にして retain/release 忘れるという方法もあります。

ただ、
>サンプルとかみても、retainしてるのに、どこにもreleaseがなかったり、allocして
>autoreleaseも呼んでるのに、deallocでreleaseもしてたりとか、もうわけわかめ。
これは本が間違ってるんじゃないの?何の本かわからんから何とも言えんが。

601 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 06:55:11 ]
>>597
そんな本あるなら晒してみろよ

602 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 13:36:42 ]
初期化するインスタンスメソッドの他に、勝手にAutoreleaseするクラスメソッドも
あったりするからちょっとややこしい。



603 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 13:45:34 ]
(あるクラスの init メソッド内で、インスタンス変数に代入するオブジェクトを)retainしてるのに、
(init 内の)どこにもreleaseがなかったり、
(そのクラスを)allocして autoreleaseも呼んでるのに、
(そのクラスの)deallocで(インスタンス変数を)releaseもしてたり

と解釈するとしたら、まったく正しいコードけど

604 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 13:53:05 ]
>>601
サンプルはあくまでサンプル。アプリまるごと完全詳解みたいのならともかく。
Obj-Cに限らず、その他言語のO'Reilly本やMSDNでも、
サンプルソースと現実的に推奨されるソースは異なる場合は多い。
参照カウンタの説明でretainしたものをreleaseしてないなら問題だと思うけど、
多分、別の説明で使用されているサンプルがそうなってるんでしょ。

>>602
>勝手にAutoreleaseするクラスメソッド
コンビニエンスコンストラクタのこと?






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

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

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