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

-(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"];
}


感谢您抽出时间来阅读!

最佳答案

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

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

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

如果是.NET,我只是建议使用TextBox.Name和TextBox.String使其成为通用方法,可用于保存发送给它的任何TextBox的属性。如果这不能解决您的问题(发表评论时间过长),那么我深表歉意。

关于cocoa - 如何避免复制和粘贴?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10330947/

10-10 05:04