UIBezierPath到NSData到服务器到Android

目前我有一个符合包含UIBezierPath和UIColor的NSCoding的类。

required init(coder aDecoder: NSCoder) { super.init() self.lineColor = aDecoder.decodeObjectForKey("color") as! UIColor self.bezierPath = aDecoder.decodeObjectForKey("bezier") as! UIBezierPath } func encodeWithCoder(aCoder: NSCoder) { aCoder.encodeObject(lineColor, forKey: "color") aCoder.encodeObject(bezierPath, forKey: "bezier") } 

我用NSKeyedArchiver实现了这个目标

 NSKeyedArchiver.archivedDataWithRootObject(path) 

并将其保存在服务器(parse.com)上我可以将其解压缩而不会出现问题。 但是如何与Android兼容?

您需要将路径和颜色转换为某种通用格式,然后以通用格式导出。 像SVG这样的东西,包括RGBA值。 UIBezierPath和键控归档是具有私有二进制实现的iOS特定项目 – 尝试在Android上使用它们将花费您很长时间而不是未来certificate。

我同意Wain。 您可以调用self.bezierPath.CGPath来检索CGPath,然后您可以使用以下答案将其转换为SVG。

如何将CGPath转换为SVG

然后你可以以中性格式发送它。