CGpoint Array写入文本文件

时间:2011-08-26 06:56:19

标签: iphone cocoa-touch ios4 nsarraycontroller

我有一个这样的数组:CGPoint array[1000](我在这个数组中添加了触摸位置)。问题是我想将这个数组保存到文档目录中的文本文件中并检索它。任何人都可以帮忙吗?

全部谢谢

1 个答案:

答案 0 :(得分:2)

我建议你使用NSArray来存储你的CGPoints集合,而不是使用普通的C数组。由于NSArray符合NSCoding协议,因此您可以从文件中对其进行序列化和反序列化。

您应该阅读Archives and Serializations Programming Guide

编辑以下是一个例子:

// Create an NSMutableArray
NSMutableArray *points = [[NSMutableArray alloc] init];

// Add a point to the array
// Read up on NSValue objects to understand why you simply cannot add a C 
// struct like CGPoint to the array
[points addObject:[NSValue valueWithBytes:&point1 objCType:@encode(CGPoint)]];

// archive the array -- this will store the array in a file
BOOL result = [NSKeyedArchiver archiveRootObject:points toFile:filePath];
NSLog(@"Archival result: %d", result);

// unarchive the array -- this will retrieve your array from the file
NSMutableArray *points2 = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];