0

以下のようなクラスがあるとします

@interface Restaurant : NSObject
    @property (nonatomic,strong) NSString *restaurantID;
    @property (nonatomic,strong) NSString *restaurantName;
    @property (nonatomic,strong) NSString *restaurantAddress;

@end

「Restaurant」オブジェクトを作成している場合、「rest」と言うと、rest.restaurantID などのプロパティにアクセスできます。

私の質問は、オブジェクトを割り当てている場合、どのようにプロパティにアクセスできますか.このようなもの

Restaurant *rest = [[Restaurant alloc]init];
[rest setRestaurantName:@"MCD"]; 

id proxyObject;
proxyObject = rest;

残りの代わりにproxyObjectを使用してプロパティ「restaurantName」にアクセスするにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

1

Objective-C には多くの方法があり、単純にプロキシ オブジェクトを Restaurant インスタンスにキャストできます。

id proxyObject;
proxyObject = rest;
[(Restaurant)proxyObject restaurantName];

または、キー/値コーディングを使用できます:

[proxyObject valueForKey:@"restaurantName"];

もう 1 つの方法は、レストラン名を宣言し、そのプロトコルをレストラン クラスに実装するプロトコルを宣言することです。その後、プロトコルのインスタンスを使用して getter を直接呼び出すことができますrestaurantName

于 2013-08-08T10:31:20.653 に答える