记下用户在文本字段中输入的内容并将其存储在文本文件中?

时间:2012-12-17 19:16:45

标签: iphone objective-c ios xcode

我正在尝试使用文本文件创建一个简单的受密码保护的应用程序来存储用户输入的密码。我想在文本字段中记录什么,将其存储在文件中,并最终将该文件中的内容与用户在另一个文本字段中输入的内容进行比较。这就是我所拥有的:

 //Setting the string to hold the password the user has entered
    NSString *createPassword1 = passwordSet.text;

    //creating a muttable array to store the value of createPassword1
    NSMutableArray *passwordArray = [NSMutableArray array];

    //storing createpassword1 into the first element of the array
    [passwordArray addObject:createPassword1];

    NSLog(@"%@",[passwordArray objectAtIndex:0]);//seeing if it is stored correctly (it is)


    //path for searching for the file
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    //my filename
    NSString *fileName = @"PasswordFile.txt";

    NSString *fileAndPath = [path stringByAppendingPathComponent:fileName];

    if (![[NSFileManager defaultManager] fileExistsAtPath:fileAndPath]) {
        [[NSFileManager defaultManager] createFileAtPath:fileAndPath contents:nil attributes:nil];
    }

    [[[passwordArray objectAtIndex:0] dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAndPath atomically:YES];

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

你做的太复杂了。 为什么使用NSMutableArray(“passwordArray”)来存储单个密码? 为什么要将它转换为NSData并将其写入文件? 只需使用一个字符串并使用其writeToFile方法。 或者使用NSArray的writeToFile方法。

或者,我个人最喜欢的:使用NSUSerDefaultsàla:

[[NSUserDefaults standardUserDefaults] setValue: myPasswordString forKey:@"appPassword"]];

编辑以回应一些评论: 以上仅适用于需要以非常低级别方式进行密码保护的“普通”应用程序。应该以不同方式处理保护真正敏感数据的任何事情。 原始海报明确说明

  

我想在文本字段中记录什么,将其存储在文件中,并最终将该文件中的内容与用户在另一个文本字段中输入的内容进行比较。

因此可以假设高级别安全性不是问题。