2015-06-23 46 views
0

目前我有一個符合含有UIBezierPath和UIColor的NSCoding的類。UIBezierPath到NSData到服務器到Android

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兼容?

回答

0

您需要將路徑和顏色轉換爲某種通用格式並以通用格式導出。像SVG一樣包括RGBA值。 UIBezierPath和鍵控歸檔是iOS專用項目,具有私有二進制實現 - 試圖在Android上與他們合作將花費你很長時間,而不是未來的證明。

1

我同意Wain。您可以調用self.bezierPath.CGPath來檢索CGPath,然後您可以使用以下答案將其導入SVG。

How to convert CGPath to SVG

然後,你可以沿着一箇中立的格式發送。