こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【Objective-c】rubyの__send__みたいな使い方がしたい。

Objective-cで、rubyの__send__みたいな使い方がしたいです。

例えば以下のようなインターフェィスのクラスがあるとします。
@interface Hoge : NSObject {
}
- (NSString*)retA;
- (NSString*)retB;
@end

ある条件によって、このクラスのメソッドの呼び別けたいです。
そこで以下のように書いたのですが、コンパイルが通りませんでした。
Hoge* hoge = [[Hoge alloc] init];
NSLog(@"%@",[hoge sw ? retA : retB]);

rubyだとこんな感じです。
hoge.__send__(sw ? "retA" : "retB")

ご指導のほど、宜しくお願いいたします。

投稿日時 - 2010-02-09 16:18:48

QNo.5662033

暇なときに回答ください

質問者が選んだベストアンサー

objc_msgSend()や-performSelector:とかありますけど、なんかそこに踏み入るのはまだ早いような。

[hoge ret: sw]
みたいな、分かりやすくて確実な書き方を覚えてゆくほうが良いのでは。

投稿日時 - 2010-02-09 21:19:37

お礼

osamuyさん、ご回答有りがとうございました。

投稿日時 - 2010-02-10 02:25:07

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問