簡體   English   中英

場景工具包內存管理使用swift

[英]scene kit memory management using swift

我很困惑我是如何使用swift在場景工具包中釋放內存的。 每當我從collada文件創建SCNNode時,它都會導入幾何體,創建物理對象,並從jpg文件中設置材質。 由於某種原因創建新對象時,這會占用10 mb的ram(即使文件大小低於300k),但無論如何。 每當從父節點中刪除它時,零ram釋放,我不明白為什么。 我可以使用什么代碼來刪除對象? 我找不到關於這個主題的任何文件。 這只是一個普遍的問題,所以這里不需要代碼。

所以我發現我需要做的是將游戲對象上的紋理設置為nil,然后再從父對象中刪除它們。 正如一般規則,我在刪除節點之前開始將所有紋理設置為nil。 無論如何,這解決了我的記憶問題。

如果節點具有強引用,則ARC不會將其解除分配。 您可以將節點的聲明切換為“弱”屬性,也可以設置為nil對節點的任何強引用。 由於“強”和“弱”的不同行為,改為弱修復。 雖然對象具有強引用(簡單var或let自動強),但即使使用removeFromParent函數,也不會占用內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM