Ios 在NSUserDefaults中保存id类型对象
我想将id类型对象值保存在NSUserDefaults中Ios 在NSUserDefaults中保存id类型对象,ios,nsuserdefaults,Ios,Nsuserdefaults,我想将id类型对象值保存在NSUserDefaults中 -(IBAction)sendOrderReady:(id)sender { NSUserDefaults *d = [NSUserDefaults standardUserDefaults]; [d setValue:sender forKey:@"sender"]; // [d setObject:sender forKey:@"sender"]; [d synchronize]; } 从NSUserDefaults类描述 NSU
-(IBAction)sendOrderReady:(id)sender
{
NSUserDefaults *d = [NSUserDefaults standardUserDefaults];
[d setValue:sender forKey:@"sender"];
// [d setObject:sender forKey:@"sender"];
[d synchronize];
}
从NSUserDefaults类描述
NSUserDefaults类为访问常见类型(如浮点、双精度、整数、布尔和URL)提供了方便的方法。默认对象必须是属性列表,即NSData、NSString、NSNumber、NSDate、NSArray或NSDictionary的实例(或集合实例的组合)。如果要存储任何其他类型的对象,通常应将其存档以创建NSData实例。
因此,如果您的id对象不是上述实例之一,则必须将其转换为其中一个实例,并且使用NSUserDefaults,您可以保存以下类类型的对象: NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary
如果要存储任何其他类型的对象,则需要将其存档或包装到NSData实例中为什么要在NSUserDefault中保存button对象?您真正要保存的是什么?可能存在重复的
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"iPhone" forKey:@"keyToLookupString"];
// saving an NSInteger
[prefs setInteger:442 forKey:@"integerKey"];
// saving a Double
[prefs setDouble:5.15 forKey:@"doubleKey"];
// saving a Float
[prefs setFloat:123.45678 forKey:@"floatKey"];
// This is suggested to synch prefs, but it is not needed
[prefs synchronize];