繁体   English   中英

如何从Objective C,iOS中的NSUserDefaults获取确切数据?

[英]How to get exact data from NSUserDefaults in Objective C,iOS?

我有NSMutableArray,我试图将该数组保存在NSUserDefaults中。这是我的代码:

保存:

NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
[currentDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:userSession.transactionArray] forKey:@"TransId"];
[currentDefaults synchronize];

检索:

NSUserDefaults *currentDefault = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefault objectForKey:@"TransId"];
NSMutableArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
userSession.transactionArray = [NSArray arrayWithArray:oldSavedArray];

但是,我正在日志中获取阵列,

"<NSIndexPath: 0x160f8640> {length = 2, path = 0 - 0}",
"<NSIndexPath: 0x1602bd70> {length = 2, path = 0 - 1}",
"<NSIndexPath: 0x16026900> {length = 2, path = 0 - 2}",
"<NSIndexPath: 0x14f01dd0> {length = 2, path = 0 - 3}"

如何从中获取实际数据。有人可以帮助我正确获取此值吗? 提前致谢。

 NSArray *aviArray=[[NSArray alloc] initWithObjects:@"A",@"B",@"C", nil];
[[NSUserDefaults standardUserDefaults] setObject:aviArray forKey:@"Arraykey"];
[[NSUserDefaults standardUserDefaults] synchronize];

 NSLog(@"%@",[[[NSUserDefaults standardUserDefaults] objectForKey:@"Arraykey"] objectAtIndex:0]); 

 NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"Arraykey"]);

这类似于: NSKeyedArchiver archivedDataWithRootObject:

您缺少initWithCoder:和encodeWithCoder:的实现。 答案之一描述了如何编写这些内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM