UIBezierPath 到 NSData 到服务器到 Android

UIBezierPath to NSData to Server to Android

目前我有一个 class 符合包含 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) iOS 我可以毫无问题地取消存档。但是如何兼容Android?

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

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

How to convert CGPath to SVG

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