一、接下来,我们要实现一个什么功能呢,在这个,我们的“通讯录”里边儿, 1.我们有两个开关,“记住密码”、“自动登录”、两个开关, 如果我们点击“记住密码”, 如果我们点击“记住密码”,然后呢,我把这个程序关了,我下一次再打开这个程序的时候,这个用户名和密码,都会有, 然后呢,包括,如果我点击“自动登录”, 让它“自动登录”,那么,我下一次,再打开这个应用的时候,它会自动的帮我去“登录”, 如果我点击“自定登录”,它会自动的帮我去登录到这个界面, 2.首先呢,既然你要“记住密码”的话,那么 1)你“用户名”、和、“密码”、这两个文本框中的内容,一定也是要保存的, 2)然后呢,这个“记住密码”这个开关的状态,和“自动登录”这个开关的状态,也是需要保存的 3)所以,这四个东西,都是需要去保存, 然后呢,接下来,我们就来做一下, 3.首先,我们把之前,为了方便测试,这个“用户名”、和、“密码”、文本框里的内容,先删掉, 把“用户名”、和、“密码”、里面的“1”、和、“1”、都删掉, command + R, 都删掉了吧, 5.接下来,我们来保存 1)首先:我们先来把“开关状态”保存了,再来说“用户名”、“密码”的问题, 首先,当我们,什么时候,应该去保存开关的状态, 点击,点击什么, 一点击,就保存? 对,你输入一个“用户名”、“密码”、一个对的、一个错的、 你点了“记住密码”,你还把“错的”记住? 肯定是在“登录”成功以后,是在“成功”以后, 也不是说完全是“点击登录”,是在“登录成功”以后, 才应该去保存这些状态, 所以呢,我们,应该先找到“登录成功”的这一块儿代码, 是在LoginViewController.m里面,有一个方法,叫做“login”, 在这儿,应该去保存我们这个“状态”, // 保存状态 保存的这个状态,我们用UserDefaults,来保存, 这个“用户名”、和、“密码”,实际上,也可以通过UserDefaults,来保存, 当然,我们真实应用的“用户名”、和、“密码”,肯定是不能保存到本地的, 我们现在是在模拟而已, 因为,现在大家还没有学习网络, 6.好,我们现在先来保存一下“开关状态”,通过“偏好设置”,偏好设置那个类,叫什么,还记得吗 NSUserDefaults NSUserDefaults *ud = [ ]; 它是一个单例的, 等于NSUserDefaults standardUserDefaults NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 然后呢,通过它呢,去保存 ud 好,保存的,我们这两个开关状态,都是什么类型的,BOOL吧, BOOL吧,所以呢,setBOOL, setBOOL:(BOOL) forKey:(NSString *) 然后呢,BOOL类型的,首先,我们保存“记住密码”,self.remPassword self.remPassword.isOn,的这个状态, [ud setBOOL:self.remPassword.isOn forKey:(NSString *)]; 它当前是“开的”、还是“关的”,我就直接保存,就行了, 然后呢,for一个Key,这个Key呢,@“” 这个Key呢,我们写一个,选中前面这个remPassword,command + C、