我開始了多人遊戲,但示例顯示傳遞了使用結構創建的NSData對象。儘管使用ARC,但我不能使用C結構。 (正確?)看來我應該使用對象而不是使用ARC的C結構。但是,我該如何發送對象的NSData數據包?ios Muliplayer策略:使用ARC發送數據包(無結構)
我想我可以硬編碼一個大字節數組,但似乎應該有一個更簡單的方法。
此外,如果可以發送一個對象,我該如何發送多個對象並能夠區分我發送的對象?
謝謝!
我開始了多人遊戲,但示例顯示傳遞了使用結構創建的NSData對象。儘管使用ARC,但我不能使用C結構。 (正確?)看來我應該使用對象而不是使用ARC的C結構。但是,我該如何發送對象的NSData數據包?ios Muliplayer策略:使用ARC發送數據包(無結構)
我想我可以硬編碼一個大字節數組,但似乎應該有一個更簡單的方法。
此外,如果可以發送一個對象,我該如何發送多個對象並能夠區分我發送的對象?
謝謝!
我的問題的答案是使用NSKeyedArchiver。它允許將一個對象(或任何東西)打包到一個NSData對象中。
這樣做的問題是,的GameKit有一個錯誤(如今天的),將偶爾停止與數據包大小>〜1000個字節接收數據。如果您使用的NSKeyedArchiver,你的數據包將得到很大的,你可能會停止接收數據和代碼將停止工作。 –
ARC不會阻止你使用C結構,你只需要在自動釋放時做一些工作。
另外,如果你要處理它的快速和骯髒的方式,你可以在你的多人經理禁用ARC,using this method.
請描述你是以下哪種代碼,哪些是給你的問題。
我不認爲我想去有關禁用ARC,因爲我是新來的Objective-C,沒有它就沒有編程。有沒有辦法在ARC系統內工作? –
不夠公平,這也是一個「快速和骯髒」的版本。我已經閱讀了遊戲中心文檔,並且很容易轉換爲ARC。在WWDC2012上發佈的技術演示也是弧形的,如果您是註冊開發者,您應該可以訪問這個。 –
今天的網絡我會去JSON編碼字符串,而不是任何二進制的東西..至少在一開始 –