Objective c 将CGLayer数组存储到文件

Objective c 将CGLayer数组存储到文件,objective-c,arrays,macos,cglayer,Objective C,Arrays,Macos,Cglayer,我正在开发一个OSX应用程序,其中需要存储446个放置在PDF上下文中的CGlayer,我想知道是否有一种方法可以从文件中写入和读取它们,而不是在应用程序加载时生成它们 我读过,但我觉得它们真的符合我的需要。此外,如果我使用bitmapGraphicsContexts,它们可以在放大时进行像素化 我可以在和之前将它们储存在NSArray中。我也尝试过将它们存储在C数组中,但没有成功 我的问题出现在尝试将这些数组存储到文件中时。writeToFile:不适用于CGLayers,但NSKeyedAr

我正在开发一个OSX应用程序,其中需要存储446个放置在PDF上下文中的CGlayer,我想知道是否有一种方法可以从文件中写入和读取它们,而不是在应用程序加载时生成它们

我读过,但我觉得它们真的符合我的需要。此外,如果我使用bitmapGraphicsContexts,它们可以在放大时进行像素化

我可以在和之前将它们储存在NSArray中。我也尝试过将它们存储在C数组中,但没有成功

我的问题出现在尝试将这些数组存储到文件中时。writeToFile:不适用于CGLayers,但NSKeyedArchiver/NSKeyedUnachiver也不适用,无论是在层为NSValues还是桥接的情况下

下面是我尝试从文件中写入和读取包含单个层的数组的方法

+(CGLayerRef) colorAnnotations:(CGContextRef)context{    
float symbolSize = 8;
CGRect glyphBox = CGRectMake(0,0, 8, 8);    
CGLayerRef   annotationLayer = CGLayerCreateWithContext (context,glyphBox.size, NULL);
CGContextRef annotaionLayerContext = CGLayerGetContext(annotationLayer);

CGMutablePathRef annot = CGPathCreateMutable();

//Drawing annotation
/*...*/

NSMutableArray *test = [[NSMutableArray alloc]init];    
[test addObject:[[NSValue alloc] initWithBytes:&annotationLayer objCType:@encode(CGLayerRef)]];

//Getting file path in Documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"/annots.data"];

[NSKeyedArchiver archiveRootObject:test toFile:dataPath];

NSMutableArray *testLoads = [NSKeyedUnarchiver unarchiveObjectWithFile:dataPath];

CGLayerRef layerToReturn;

[[testLoads objectAtIndex:0]getValue:&layerToReturn];

return layerToReturn;
}
我从中得到
[NSKeyedArchiver encodevalueofobjecttype:at:::::]:未知类型编码(“^')”)是由此产生的,因为CGLayerRef类型非常确定


绘制我需要的不同注释所需的线条相当长,因此我一直在试图找到一种方法,使它们能够制作并存储在文件中,而无需每次启动时制作它们。到目前为止,我还没有找到这样做的方法,但我希望这里的人可能知道一种方法,并感谢任何帮助。

我读了第一句话(仅此而已),并认为“你没有追随MVC”。CGLayers是您的“V”。您希望写入“M”。@这些层都指定了特定的颜色,因此在PDF中使用该颜色时,也会绘制该层。我认为PDF是我的视图,我可以很好地绘制它,我只是想知道是否有一种方法可以归档CGlayer数组。谢谢你的关注!