对于NSUerdefaults来说 一般可以用来保存用户的偏好设置 比如登陆账号 密码这些。 除此之外 我们还可以用它来保存图片, 字符串 , 数字 和对象。它被保存到项目中的Plists文件里面里。保存图片 一般用它里面的两个方法 图片保存可以用PNG或者JPG对应的方法 先转换成NSData 再用NSUerdefaults保存 保存的时候为了让它马上存下来要用synchronize 。它还可以用来在程序间进行反向传值。
详细介绍:1.对于图片的保存(比如保存用户头像)图片的存图片的取
->里面的图片格式换成JPG就是使用JPG的格式NSData *imageData = UIImagePNGRepresentation(selectedImage);[[NSUserDefaults standardUserDefaults]setObject:imageData forKey:@"image"];
NSData *data = [[NSUserDefaults standardUserDefaults]objectForKey:@"image"];imageView.image = [UIImage imageWithData:data];
- 2.对于字符串的保存(可以用在用户名密码这类字符串的保存上)
NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];[userDef setObject:str forKey:@"name"];[userDef synchronize];
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(290, 135, 70, 30)];label.text = [userDef objectForKey:@"name"];
对于数字的保存 只需要换成integer就可以了。既setInteger:<> forKey:<>;
<>里面分别写你要保存的数字 和 你给他取得名字 这个名字是待会你用来找到它的名字.当然还有其他几种方式 如通知(NSnotification) 、Block(速度快)使用这个的时候要注意一个地方,在用到self的地方 一定要将它用__weak typeof(self) weakSelf = self来重新定义 因为这样可以不导致循环计数加1 、单例、委托协议也可以实现程序内的反向传值,这个完全取决于自己的使用习惯。