1

如果可能的话,我想改进这个方法:这是一个保存所有文本字段(目镜、物镜等)文本的小部分。不幸的是,我的应用程序的每个部分都必须多次这样做很容易出错,所以我想改进它。我正在考虑使用文本字段等方法的参数进行某种快速枚举,并且我可以拥有字典中的所有键(已经设置)。只是一个指向正确文档的指针,或者,也许,某种对你有用的过程会很棒!

-(IBAction)saveUserEntries {


if (eyepiece.text != nil) {

    eyepieceString = [[NSString alloc] initWithFormat:eyepiece.text];
    [eyepiece setText:eyepieceString];
    NSUserDefaults *eyepieceDefault = [NSUserDefaults standardUserDefaults];
    [eyepieceDefault setObject:eyepieceString forKey:@"eyepieceKey"];
}
else {
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"eyepieceKey"];
}

if (objectiveLenses.text != nil) {

    objectiveLensString = [[NSString alloc] initWithFormat:objectiveLenses.text];
    [objectiveLenses setText:objectiveLensString];
    NSUserDefaults *objectiveDefault = [NSUserDefaults standardUserDefaults];
    [objectiveDefault setObject:objectiveLensString forKey:@"objectiveKey"];
}
else {
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"objectiveKey"];
}

感谢您抽出时间来阅读!

4

1 回答 1

2

我将尝试基于 OOP 解决方案来回答这个问题。

创建一个接受这些文本框的任何类型对象作为参数的方法,将所述对象的引用发送到该方法,并将条目保存在您知道的类似方法中。这将避免您担心的“复制和粘贴”错误。

您应该能够遍历存在的所述对象的每个实例,如果可可应用程序的工作方式类似于 Java 和 .NET(我真的不知道)。我只知道必须有一种方法可以遍历应用程序域中单个对象的每个实例。

如果这是 .NET,我只是建议 TextBox.Name 和 TextBox.String 使其成为一种通用方法,可用于保存发送给它的任何 TextBox 的属性。如果这不能回答您的问题(评论有点长),那么我很抱歉。

于 2012-04-26T12:09:56.777 回答