我需要构建一个类似于以下内容的NSString:
姓名:Craig Buchanan
电话:800-555-1212
电子邮件:name@company.com
其中:
我的方法:
NSMutableArray *values = [[NSMutableArray alloc] initWithCapacity:3];
if (self.nameSwitch.isOn)
[values addObject:[NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"Name", @"Name label"), textFieldName.text]];
if (self.telephoneSwitch.isOn)
[values addObject:[NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"Telephone", @"Telephone number label"), textFieldTelephone.text]];
if (self.emailSwitch.isOn)
[values addObject:[NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"Email", @"Email address label"), textFieldEmail.text]];
return [values componentsJoinedByString:@"\r"];
我有几个问题:
感谢您的时间,
Craig Buchanan
答案 0 :(得分:1)
您的目标语言可能不使用冒号,因此只需进行这样的调用即可添加本地化的行:
[values addObject:[NSString stringWithFormat:NSLocalizedString(@"Name: %@", @"Name line"), name];
至于autorelease问题,您可以创建一个本地自动释放池:
NSAutoreleasePool *myPool = [[NSAutoreleasePool alloc] init];
// Do stuff.
[myPool release];
最后,您可以使用switch的标记来指示数组索引。如果你这样做,你甚至不需要一个IBOutlet
变量用于交换机;你可以使用-viewForTag:
或action方法的参数。如果您愿意,可以使用NSIndexSet
存储开关状态。但是如果你想成为动态的,你应该使用一个表来保存开关。如果这样做,您可以使用表格行号而不是标记。