我想做这样的事情:
·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"];
我该怎么做?有可能吗?
答案 0 :(得分:6)
给出像“zone1”,“zone2”等名称,我会创建一个数组而不是字典。无论哪种方式,这些都不应该是单独的变量。
答案 1 :(得分:3)
您可以使用Key-Value Coding执行类似操作。你会写
[[self valueForKey:variable] broadcastChatMessage:redStringPrefix fromUser:@"server"];
而不是
[[variable variableValue] broadcastChatMessage:redStringPrefix fromUser:@"server"];
这当然要求zone1
,zone2
等是self
上的实例变量(或属性)。
答案 2 :(得分:3)
@property(strong) NSMutableDictionary *zones;
-(id)init {
....
_zones = [[NSMutableDictionary alloc] init];
....
}
aZone = [_zones objectForKey: [NSString stringWithFormat:@"zone%d", someZoneNumber]];
...等......