0

我正在使用这个问题的答案来保存NSArray文件。我无法检索数组。当我执行以下操作时,我正在获取0x00000000检索boundaries到的数组:

保存:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"boundaries"];

[array writeToFile:filePath atomically:YES];

检索:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"boundaries"];

NSArray *boundaries = [NSArray arrayWithContentsOfFile:filePath];

这有什么问题吗?当我保存它时,数组中充满了正确的数据。

我尝试保存[myArray description]并保存并检索它,但数据显然与我想要的不同。我在数组中保存了 8 个双打。

4

2 回答 2

2
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"boundaries"];

[array writeToFile:filePath atomically:YES];

这个“数组”变量来自哪里?

无论如何,我们不能将双打直接保存到 NSArray 中。您需要将这些双打保存为 NSNumber。像这样:

[[NSNumber alloc] initWithDouble:doubleNumber];
于 2013-08-27T08:34:19.017 回答
1

使用获取数组的数据

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array]; 

然后将其保存在您的文档目录中。为了找回它,

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];

这应该有效。

于 2013-08-27T06:53:20.503 回答