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


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

Objective-C [ObjC part:3];



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

前スレ
pc11.2ch.net/test/read.cgi/tech/1106983092/
前々スレ
pc5.2ch.net/tech/kako/990/990574267.html

267 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:47:03 ]
>>265
おかしな言いがかりは止めろよw
最近はC++の仕事ばかりでうんざりしてるのに…

268 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 10:30:34 ]
オレとしてはCの正当の進化は突然変異したobjcよりC++にあると思うんだがどうだろうか?
仕方なしでもC++を受け入れたユーザーは多い。

269 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 15:33:52 ]
Cの進化はC99でC++もobjcも普通に別言語だろ

270 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 15:42:12 ]
objcってハイブリッド言語ていってた気がする。
Cの延長じゃなくて、Cも使えるオブジェクト指向言語的な感じで。

271 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 15:46:53 ]
C with class だったよな。それにしてもCは99年から進化が止まったままだなあ

272 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:29:00 ]
>>271
C with classes

273 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:09:14 ]
>>269
ObjCはC互換でしょうが

274 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:29:25 ]
>>273
Cの機能がすべて使えるということと別言語であるということは両立すると思うが…?

275 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:34:19 ]
プリプロセサ通せばただのCになるんだから、
別言語ではないと言えなくもないかなと。



276 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:35:23 ]
GCC互換のObjective-Cプリプロセッサがない件

277 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:46:54 ]
>>275
その理屈だとEiffelもC言語だなw

278 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:54:19 ]
設計理念が違うってことだと思うが

279 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:15:17 ]
Eiffelも楽しいけどね。

280 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:22:23 ]
(1 == 1) == YES
っていうのは保証されてませんよね?

281 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:04:29 ]
YES が 1 と保証されてるか、がキモなんじゃないの?

283 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:57:38 ]
1じゃやなら、じゃ何がいいんだ?

284 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:20:11 ]
0じゃない

285 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:46:24 ]
>>282
Apple のレファレンスには、YES は 1 ですと書いてあるけど。
Obj-C は公的な標準規格がないからなんとも ...

まあ C 系言語において
YES, NO と比較するのがバッドノウハウであるのは間違いない



286 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:14:09 ]
VARIANT_TRUE は -1 で定義されてるんだよな

287 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:19:52 ]
そんな Microsoft 系の話をされても困るし ...
MS は大昔から false は 0 で、true はビットを全反転した -1 。
でも C の < , > 等の返す真偽値は整数としては 1 だから気をつけましょうね。
if 文の中で 更に YES/VARIANT_TRUE とかと比較しなければ全く問題ないのだが ...

288 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:10:57 ]
既知ですが、
ソフトバンク クリエイティブの本:詳解 Objective-C 2.0
www.sbcr.jp/books/products/detail.asp?sku=4797346800

Amazon.co.jp: 詳解 Objective-C 2.0: 荻原 剛志: 本
www.amazon.co.jp/gp/product/4797346809

289 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:47:45 ]
>>287
BOOL の TRUE は 1 だけどね。

真が -1 っつーと BASIC なんかそうだな。

290 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:41:02 ]
>>288
>詳解 Objective-C 2.0

mkinoさんが買うべきだと絶賛中
ttp://hmdt.jp/

291 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 09:02:30 ]
Obj-Cをこれからも使い続ける/これから使い始めるなら読んどいても良いんじゃない。

292 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 18:27:27 ]
2.0本、表紙はどう見てもiPhoneホーム画面なのに、
帯以外でiPhoneという単語は一度も出てこない。

荻原教授は最初から触れるつもりなかったのに編集が独自に装丁考えたのか、
NDAを見てあわてて記述を残らず削ったのか。

293 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:35:47 ]
ttp://www.flickr.com/photos/dirtae/1172691688/

294 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:30:37 ]
>>292
もともとObjective-CとFoundationに重点を置いてある本だから、
iPhoneに触れる気はもともとなかったんじゃない?

295 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:32:57 ]
買った後に気づいた。×iPhoneの存在に。
正式版のSDKで2.0使えるんならいいんだけど。



296 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:59:16 ]
ttp://www.nitenichiryu.org/archives/2008/06/06/1340.php
ttp://www.metareal.org/2008/06/06/280slides-in-objective-j/


297 名前:デフォルトの名無しさん [2008/06/09(月) 08:47:38 ]
>>296
Objective-CをJavascriptに変換して実行か。よくやるよね。

でも静的な型付けをもつ言語を動的な型付けをもつ言語に翻訳する
のってなんかちょっともったいない気がする。Objective-Cは半分
くらい動的な型付けなんだけどさ。


298 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:02:45 ]
theunixgeek.blogspot.com/2008/06/programming-salaries.html

299 名前:デフォルトの名無しさん [2008/06/15(日) 23:05:16 ]
cocoa最安かww



300 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:47:04 ]
>>298
これからHaskell勉強してくる

>>299
その割にはObjective-Cが第3位ってのが不思議

301 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 14:44:06 ]
なんでC言語準拠しておきながら、クラス関数の宣言の仕方は似ても似つかない変な記法なの?

302 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 15:07:42 ]
>>301
「似たようなものは似たような表記にしたほうがわかりやすい」
という考え方もあるだろうが、
「意味的に異なるものを表すなら異なる表記にしたほうが区別しやすくわかりやすい」
という考え方もある。
構造体のへのポインタの先の関数ポインタ経由での関数呼び出しとメソッド呼び出し
はまったく別のものだと考えれば別の表記になっていたほうがうれしいだろう?

# 実際のところは単に設計者の趣味じゃね?

303 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 17:08:41 ]
でも、そのあたりの記法の気持ち悪さが、普及の妨げになってるような気はするよな

304 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:34:48 ]
この言語はほぼOS X専用言語と化してるし特に普及させる必要がないと思うのだが…
# また普及厨?

305 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:55:15 ]
普及といえば、freebsdとかbsd方面は無理そうかな?



306 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:43:36 ]
>>301
C と Smalltalk のハイブリッド言語だから。

307 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:55:13 ]
C++ に慣れてるとコンストラクタはともかくデストラクタが欲しくてたまらない。

308 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:05:04 ]
>>307
dealloc


309 名前:デフォルトの名無しさん [2008/06/17(火) 21:35:57 ]
勝ち組ケータイiPhoneの登場でObjective-Cの注目度が激しく上がったな

310 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:08:22 ]
>>307 は自動変数の話をしてるんでは?

311 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:25:20 ]
>>307,310
C++で自動変数(スタック)に作られたオブジェクトが
スコープを抜けるときデストラクタが呼ばれるあれの
ことかいな?
そのことなら、そもそもObjecitve-Cのオブジェクト
の実体はヒープにしか作ることができなくて、スコー
プとオブジェクトのライフサイクルは無関係。


312 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:26:54 ]
つまりそれが不便だ、と

313 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:01:09 ]
まあ Objective-C++ を使う分にはそういったので問題ないね。

315 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:06:13 ]
[&](){return i}; みたいな変態の C++0x に言われたくないです!



316 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:50:37 ]
まあ純粋 C++ の話題はスレ違いだ

317 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:58:20 ]
redditとかいう所で見つけた。
ttp://sleep.dashnine.org/
>easy to learn with Perl and Objective-C inspired syntax
だって。

318 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:08:44 ]
スクリプト言語が移植されたらAppStore通さないでも流通するんだよな。
そしたらObjective-Cのブーム終了だろ。
他言語ユーザに珍入されるのやだからそうなってほしい。

319 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:28:24 ]
任意のスクリプトコードのダウンロード・実行と、AppStore以外の配信システムを構築することは
SDK Agreementで禁止されている。

320 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:47:53 ]
そもそも携帯電話ごときでスクリプト言語が満足にうごくの?

321 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 03:24:09 ]
S60でもPythonが動いてるってのにこいつはUnixマシンだよ?
JB環境になるけどPython(PyObjC)やJavaScript(Jiggy)ならGUIアプリも書けるぜ。

322 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 07:32:28 ]
実際スクリプト言語で十分だけど、
そこであえてObjcでガリガリ書くのがスーパーハカー。


323 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 08:47:52 ]
インラインでCを書ける"軽量"言語だから

324 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 09:54:51 ]
>>323
ちょっと目から鱗


325 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:33:56 ]
>>301
もともとObjective-CはSmalltalkの式をCコンパイラに通すための
プリプロセッサとして生まれて、そこから始まったからだよ。
[ ] の中はSmalltalk。



326 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:38:29 ]
あまりに違いすぎるから違和感というか抵抗が強い。
HTMLの中にJavaが入ってるのと似てる。(javascriptが入っててもソース見るとカオスだけど)。
Cのソースが6割がasm{}だったらやっぱりカオスでしょ?

Cを拡張なんかしないでjavaみたく新言語の方が受け入れられてんじゃないかと思う。

327 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:57:50 ]
Smalltalk 由来だって分かってるから、俺には違和感は全くないけど。
俺等は受け入れた。それで十分じゃないか。

328 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:13:12 ]
本当はCを埋め込んでんだろうけど、なんかobjcの方がCに埋め込まれてるみたいなんだよね。そんだけ

329 名前:デフォルトの名無しさん [2008/06/18(水) 12:17:43 ]
>326
組込やってるからカオスとは思わないが

330 名前:デフォルトの名無しさん [2008/06/18(水) 12:22:00 ]
組み込みのように中の人が使う言語を、ウェブ・クリエータみたいなカジュアル層の人にまで使っていただこうとするのは、どこか間違ってると思いませんか?

331 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:42:42 ]
敬語??

ウェブ・クリエータみたいなカジュアル層の人が
HTML中のjava入りでやってるんじゃないの?

obj-cだけじゃないんだし
rubyやらjavaとか好きなの使えばいいんじゃないかと思うが。

「こうあるべき」で固まりたくはないもんだ


332 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:56:50 ]
もんだ?

333 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:01:10 ]
いまどき web サイトで java applet をつかってるところなんてあるのか?
javascript ならわかるが ...

334 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:15:50 ]
オンライントレード系は?

335 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:52:32 ]
applet ではHTMLの中に Java 書いたりしない。 JSP の話だろう。



336 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:32:00 ]
ああなるほど、失礼しました。

337 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:41:03 ]
Iフォーンみたいなカジュアルは来なくていい。objcがギンギラのコテコテのキモ言語になるからね
流行ちゃんは、VBよろしく、flash使っていてくれ。

338 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:36:51 ]
             /ヽ       /ヽ
            /  ヽ      /  ヽ
  ______ /     ヽ__/     ヽ
  | ____ /           :::::::::::::::\
  | |       //       \  :::::::::::::::|
  | |       |  ●      ●    ::::::::::::::| ・・・
  | |      .|             :::::::::::::|
  | |       |   (__人__丿  .....:::::::::::::::::::/
  | |____ ヽ      .....:::::::::::::::::::::::<
  └___/ ̄ ̄       :::::::::::::::::::::::::|
  |\    |            :::::::::::::::::::::::|
  \ \  \___       ::::::::::::::::::::::::|


339 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:26:01 ]
もんだw

340 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 21:33:43 ]
interface builder3.0が糞な件について

研究室でObjective-Cを使ってプログラミングを書けって言われたんだけど、
何この糞みたいにめんどくさい開発ツールは。

なんでわざわざオブジェクトとコードのコネクションを手動で接続しなくちゃいけないわけ?
Visul Studioをちょっとは学べよ。
あんなのダブルクリックで済むんだぞ。

あーむかつく。
なんでこんなん使ってやらなあかんねん。
ふざけんな。研究費削っとんちゃうぞ!!!!!!!!!


341 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 21:59:49 ]
使わなきゃいいじゃん

342 名前:デフォルトの名無しさん [2008/06/22(日) 22:00:25 ]
そういう言語だからです。
あきらめましょう。
Windowsプラットフォーム向けが普及するとユーザーが増えるので風向きが変わるかもしれません。

343 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 22:26:39 ]
あまりに糞だからVS使わせろとか言えないのか?
わざわざマイナーなMacを使う意味がわからん

344 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 22:36:38 ]
Macを使う理由は
Linuxベースで金がかからないから。


345 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:27:08 ]
Linuxベース?



346 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:43:04 ]
linuxベースっていう言葉はおかしいね。

まぁ基本的にはlinuxと同様unixが大元になっているけど。
この人はmacのことを殆ど分かってないんだろうなー。


347 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:43:53 ]
最近、Cocoa始めたものとしては、最初の印象として>>340は思った。
糞だとは思わなかったけど、なんでだろ?って感じで。
で、NSTableViewにdataSourceセットするのをやって、ちょっと分かった。
少なくともVS的コーディングでは、これは実現できないと思ったなぁ。
それがいいか悪いかは知らんけど。

348 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:58:50 ]
>>340
まさにおなじはなしを
dotnetaddict.dotnetdevelopersjournal.com/dcacs.htm
のひとがしてるので、彼の分析を読んで見るとおもしろいかも。
このひとのブログは全般的におもろいです。
.Net addict だったはずなのに最近はすっかり Cocoa に毒されてる人です。

349 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 23:59:36 ]
>>340
俺はコネクションが好きだったから、初めから別に苦ではなかったけど、Interface Builder使いこなしてくるとコネクションの良さがわかってくるよ。バインディグとかformatterとかウインドウ出したり。この辺はVSだとコーディングが必要になるところだと思う。

350 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 00:25:49 ]
>>348

VSから移行する人はみんな思うのかもね。
俺もそうだった。
まぁVSと違ってクールなところもあるから。


351 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:37:23 ]
>>340
俺も最近マック渡されてcocoa使ってる
しかもそれとおんなじことを先生に言ったww。

確かにVS.netはお金がかかるからね。
でも今必死にcocoaをやってるけど、案外楽しい。

352 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 02:43:26 ]
>>351
まぁ学生は今のうちに好きな環境を使え。
仕事にしたらそうはいかないけど。

353 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 07:24:22 ]
逆じゃね?
学生だからこそ、頭をやわらかくして、どんどんいろんな環境にチャレンジすべし。
一つの環境に馴れ親しむのも大事だけど、それだけじゃ二流だよ。

354 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:07:42 ]
バインディング使えば?

355 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:07:31 ]
>>351
>先生に言った

いくつかの環境に慣れとけば生存能力も高くなる鴨



356 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:35:21 ]
@interface ClassA : SuperClass
{
  id hoge;
}
@property hoge;
@end

こんなClassAがあったとして、インスタンスメソッド内で
self->hoge はインスタンス変数に直接アクセスし、
self.hoge はプロパティのアクセサを通してアクセスすると思うのですが、
単にhogeと書けばどっちになるのでしょうか?

357 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 00:08:08 ]
>>356
単に hoge は self->hoge と同等。

358 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 08:07:57 ]
ありがとうございます。
自分のプロパティへのアクセスにはself.が必須なんですね。

359 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/07/07(月) 11:15:42 ]
ちなみに展開したのってどやってみるの?


361 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 13:16:46 ]
何を展開する話をしてるの ?

362 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 14:35:16 ]
>>361
ObjCのコードじゃない?
それなら objc の -C オプションを付ければ拡張子が .i のファイルに
C のコードに展開された ObjC のコードが見られるよ。

363 名前:デフォルトの名無しさん [2008/07/07(月) 19:13:49 ]
>>359
id a = obj.hage;
って、
id a = [obj hage];
じゃなくて、
id a = [obj objectForKey:@"hage"];
になるの?

364 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:01:20 ]
ごめん、objectForKey: じゃなくて、valueForKey: だった。
developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/Articles/chapter_5_section_4.html
とか
developer.apple.com/jp/Documentation/Cocoa/Conceptual/KeyValueCoding/Concepts/SearchImplementation.html
参照。単に setHage:, hage: じゃなくて、KVC されます。

一般に、[obj valueForKey:@"aho"] とすると、
Objc-C ランタイムは aho: , getAho: isAho: というメソッドを探した後、
_aho, _isAho, aho, isAho というインスタンス変数を探します。
だから、obj.aho でも、それだけの候補が探されます。
毎回こんなことやってると遅くてかないませんが、裏でキャッシュしているらしいです。

基本的に、self.aho だとバインディングが動く、self->aho だと動かないということです。

365 名前:デフォルトの名無しさん [2008/07/07(月) 23:10:17 ]
>>364
そういう話じゃなくて、、、
プロパティーって、Objective-C2.0が持ってる機能でしょ?
なぜ、そこでvalueForKey:などの、Cocoaフレームワークのメソッドが出てくるのでしょう?
gccなどのコンパイラが、Cocoaに依存したコードを出力するとは思えないのだが。
リンク先のページにも、そんな事書いてないし。



366 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 23:17:43 ]
valueForKey:をCocoa特有のメソッドだという考えをまず捨てねば。
allocやinitだってCocoa特有でないのと一緒。
finalizeが良い例。

367 名前:デフォルトの名無しさん mailto:sage [2008/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:).






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

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

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