3
我需要建立一個類似於以下的NSString:動態,本地化NSString的
名稱:克雷格·布坎南
電話:800-555-1212
電子郵件:[email protected]
在哪裏:
- 每一行(例如,電話)被包括或基於UISwitch
- 關鍵部分的值排除的的字符串(即的部分的左側「:」)是局部
- 值部分是從一個的UITextField。
我的方法:
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"];
我有幾個問題:
- 這是一個體面的方式(我是一個Objective-C小白)?
- 我意識到,我的陣列會被自動釋放,但我仍然很擔心內存使用情況。我應該釋放自動釋放池嗎?似乎有點危險。
- 我希望使代碼更動態一點。我最初的想法是創建一個插座變量數組,然後使用UISwitch的標籤存儲驅動本地化的密鑰。想法?
感謝您的時間,
克雷格·布坎南
我假設本地自動釋放變量被自動分配給本地創建的自動釋放池,對嗎?你發現自己經常使用它嗎? 如果我理解你的最後一個建議,我將有一個實例級別的NSIndexSet變量,它會在分配給UISwitch的IBAction方法上發生變化?通過創建動態字符串以驅動本地化進程的方法,該變量將用於for循環。真正? 謝謝。 – craig 2009-07-24 16:36:44