- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
64 :デフォルトの名無しさん[]:2014/11/15(土) 07:45:53.26 ID:Cmo7am1O - 皆さん、ありがとうございます
レスおそくなりました >>61 Objective-Cにはオーバーロードはないのですね Javaは勉強していたので、オーバーライドとオーバーロードの違いは 理解していましたが、Objective-Cではないとは思いませんでした… メソッドの引数の型は、書き方からすると、もしかしてキャストなんでしょうか。。 >>62 ありがとうございます そのページを読んで勉強してみます >>63 なるほど、非常によくわかりました どうもありがとうございます
|
- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
70 :デフォルトの名無しさん[]:2014/11/15(土) 13:43:28.84 ID:Cmo7am1O - ありがとうございます
なんだか、私の書き方が悪く、いろいろとすみません >>65 そうですね 私がなじみがあるのはそのように引数の型や数が違うオーバーロードですが、 Objective-Cでは同一セレクタでのオーバーロードは不可なのですね 確かにLCCでつないで〜With〜のようなメソッド名はCocoaではいろいろ見かけます >>67 やはり型なのですか もしかして、キャストだから実行時に解決されてオーバーロードという仕組みが なかったりするのかなと思いましたが、キャストではないのですね >>62さんのリンク読んでみると、(char *)型のmethod_typesというものも あるようなので、それをみればオーバーロードの実装も出来るのではと 思いましたが、Objective-Cのポリシーなんでしょうかね…
|
- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
72 :デフォルトの名無しさん[]:2014/11/15(土) 13:59:38.62 ID:Cmo7am1O - >>71
あっ、いや、特にこだわっているというわけではないのですけど、 Java, C++, C#などではいわゆるオーバーロードが出来たので、 ちょっとビックリしました… 汎用的なライブラリを作る時は、同一メソッド名の型違いでオーバーロード しておいた方がいろいろと使い勝手のよいものになるので、結構重宝してた のですが、Objective-C使いさんは、型違いは全て>>65さんのように セレクタを変えて使っているんですね よくよく考えると、引数の数違いの場合は、必然的に:が追加されてセレクタが 変わるので、そもそもオーバーロードという概念ははじめから考えてなかった のかもしれませんが…
|
- Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
74 :デフォルトの名無しさん[]:2014/11/15(土) 14:15:15.80 ID:Cmo7am1O - >>73
使う側からしても、型が違ってもメソッド名が同じな方が使いやすいかなと 思ったりしますが、確かになくてもよいといえばよいですね 使う側も渡す引数の型を意識してコーディングするので、むしろ よいかもしれませんね Message Forwardingですか。この辺りを読み込んでみます https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html ありがとうございます
|