use*_*472 2 cocoa objective-c nscoding quartz-graphics
我在Cocoa中有包含Quartz-2D参考(描述颜色,填充图案,渐变和阴影)的对象.我想NSCoding
在我的对象中实现协议,因此需要序列化那些不透明的Quartz-2D结构.
可能的解决方案可能是
在我的对象中定义一组属性,允许在需要时从头开始设置数据结构.那些可以很容易地序列化.示例:存储四个用于红色,绿色,蓝色和alpha的浮动,然后使用CGColorCreate
.缺点:信息重复,因此潜在的一致性和(迄今为止微小的)空间消耗问题.我需要手动编写属性设置器,以便在组件发生更改时重新创建Quartz结构.这会大大增加我的代码.
使用Quartz函数读出属性.例如:使用CGColorGetComponents
的颜色.缺点:它似乎适用于颜色.但是没有其他结构的等效函数,所以我不知道它如何适用于渐变,阴影,阴影等.
直接从原始的不透明结构中读出属性.缺点:正如文档所说,结构应该是不透明的.因此,如果发生了变化,我的代码就会破裂.(苹果当然不会提供像CGColorGetComponents
应该这样做的功能.)此外,像CGFunctionRef
内部的东西CGShadingRef
真的会要求麻烦.
序列化Quartz结构的最佳实践是什么?
答案几乎因一个班级而异:
TIFFRepresentation
方法.) 归档时间: |
|
查看次数: |
828 次 |
最近记录: |