草庐IT

Secure-NSUserDefaults

全部标签

iphone - NSUserDefaults 的限制是什么?

在iPhone中永久存储数据通常使用CoreData或sqlite3完成。大多数人更喜欢使用NSUserDefaults作为应用程序偏好的存储,而不是将其用作普通数据库(例如sqlite)。我发现NSUserDefaults可以存储大量数据,它非常好用而且速度很快。那么为什么不将其用作永久存储呢?NSUserDefaults作为数据库有什么限制?更新:我经常使用三种不同的方式将数据保存到磁盘。核心数据将对象序列化为plistNSUserDefaults我不再使用FMDB(或直接使用sqlite)了。每种方法的主要优点和缺点是什么?我遇到的NSUserDefaults的一些优点:使用NS

objective-c - 将 UIColor 保存到 NSUserDefaults 并从中加载

将UIColor保存到NSUserDefaults然后将其取出的最简单方法是什么? 最佳答案 一种方法可能是归档它(比如使用NSColor,虽然我没有测试过):NSData*colorData=[NSKeyedArchiverarchivedDataWithRootObject:color];[[NSUserDefaultsstandardUserDefaults]setObject:colorDataforKey:@"myColor"];然后把它拿回来:NSData*colorData=[[NSUserDefaultsstanda

objective-c - 将 UIColor 保存到 NSUserDefaults 并从中加载

将UIColor保存到NSUserDefaults然后将其取出的最简单方法是什么? 最佳答案 一种方法可能是归档它(比如使用NSColor,虽然我没有测试过):NSData*colorData=[NSKeyedArchiverarchivedDataWithRootObject:color];[[NSUserDefaultsstandardUserDefaults]setObject:colorDataforKey:@"myColor"];然后把它拿回来:NSData*colorData=[[NSUserDefaultsstanda

ios - 在 NSUserDefaults 中保存图像?

是否可以将图像作为对象保存到NSUserDefaults中,然后检索以供进一步使用? 最佳答案 在NSUserDefaults中保存图像:[[NSUserDefaultsstandardUserDefaults]setObject:UIImagePNGRepresentation(image)forKey:key];从NSUserDefaults中检索图像:NSData*imageData=[[NSUserDefaultsstandardUserDefaults]objectForKey:key];UIImage*image=[UI

ios - 在 NSUserDefaults 中保存图像?

是否可以将图像作为对象保存到NSUserDefaults中,然后检索以供进一步使用? 最佳答案 在NSUserDefaults中保存图像:[[NSUserDefaultsstandardUserDefaults]setObject:UIImagePNGRepresentation(image)forKey:key];从NSUserDefaults中检索图像:NSData*imageData=[[NSUserDefaultsstandardUserDefaults]objectForKey:key];UIImage*image=[UI

objective-c - 使用常量 NSString 作为 NSUserDefaults 的键

我正在使用NSUSerDefaults来存储用户首选项。我记得在某处读到将键设置为常量是一个好主意——我同意。以下代码是我目前拥有的:[[NSUserDefaultsstandardUserDefaults]setObject:[NSNumbernumberWithInt:polygon.numberOfSides]forKey:@"polygonNumberOfSides"];我尝试将其更改为:@implementationControllerNSStringconst*kPolygonNumberOfSides=@"polygonNumberOfSides";-(void)save

objective-c - 使用常量 NSString 作为 NSUserDefaults 的键

我正在使用NSUSerDefaults来存储用户首选项。我记得在某处读到将键设置为常量是一个好主意——我同意。以下代码是我目前拥有的:[[NSUserDefaultsstandardUserDefaults]setObject:[NSNumbernumberWithInt:polygon.numberOfSides]forKey:@"polygonNumberOfSides"];我尝试将其更改为:@implementationControllerNSStringconst*kPolygonNumberOfSides=@"polygonNumberOfSides";-(void)save

ios - 为什么 NSUserDefaults 无法在 iOS 中保存 NSMutableDictionary?

我想在NSUserDefaults中保存一个NSMutableDictionary对象。NSMutableDictionary中的键类型是NSString,值类型是NSArray,其中包含实现NSCoding的对象列表>。每个文档,NSString和NSArray都符合NSCoding。我收到此错误:[NSUserDefaultssetObject:forKey:]:Attempttoinsertnon-propertyvalue....ofclassNSCFDictionary. 最佳答案 我发现了一种替代方法,在保存之前,我使用

ios - 为什么 NSUserDefaults 无法在 iOS 中保存 NSMutableDictionary?

我想在NSUserDefaults中保存一个NSMutableDictionary对象。NSMutableDictionary中的键类型是NSString,值类型是NSArray,其中包含实现NSCoding的对象列表>。每个文档,NSString和NSArray都符合NSCoding。我收到此错误:[NSUserDefaultssetObject:forKey:]:Attempttoinsertnon-propertyvalue....ofclassNSCFDictionary. 最佳答案 我发现了一种替代方法,在保存之前,我使用

ios - 尝试将非属性列表对象设置为 NSUserDefaults

我以为我知道是什么导致了这个错误,但我似乎无法弄清楚我做错了什么。这是我收到的完整错误消息:Attempttosetanon-property-listobject("")asanNSUserDefaultsvalueforkeypersonDataArrayIhaveaPersonclassthatIthinkisconformingtotheNSCodingprotocol,whereIhavebothofthesemethodsinmypersonclass:-(void)encodeWithCoder:(NSCoder*)coder{[coderencodeObject:sel