-2

私はこのようなことをしたいです:

.h

LocalRoom* zone1;
LocalRoom* zone2;
LocalRoom* zone3;
LocalRoom* zone4;
etc....

.m

NSString *number = 1;
NSString *variable = [NSString stringWithFormat: @"zone%@", number]
[[variable variableValue] broadcastChatMessage:redStringPrefix fromUser:@"server"];

エミュレート:

[zone1 broadcastChatMessage:redStringPrefix fromUser:@"server"];

どうすればよいですか?出来ますか?

4

3 に答える 3

6

「zone1」、「zone2」などの名前を付けて、辞書ではなく配列を作成します。いずれにせよ、これらは別々の変数であってはなりません。

于 2012-12-26T04:28:43.757 に答える
3

Key-Valueコーディングを使用して同様のことを行うことができます。あなたは書くだろう

[[self valueForKey:variable] broadcastChatMessage:redStringPrefix fromUser:@"server"];

それよりも

[[variable variableValue] broadcastChatMessage:redStringPrefix fromUser:@"server"];

もちろん、これには、、などがのインスタンス変数(またはプロパティ)である必要がzone1ありzone2ますself

于 2012-12-25T18:19:58.890 に答える
3
 @property(strong) NSMutableDictionary *zones;

 -(id)init {
   ....
   _zones = [[NSMutableDictionary alloc] init];
   ....
 }

 aZone = [_zones objectForKey: [NSString stringWithFormat:@"zone%d", someZoneNumber]];

...など..。

于 2012-12-25T18:24:11.360 に答える