2016-01-18 19 views
8

Tôi vừa mới dành 5 giờ qua để cố gắng gỡ lỗi rò rỉ bộ nhớ trong Ứng dụng Spritekit của mình.Rò rỉ bộ nhớ cho .showsPhysics

Sau khi khởi động ứng dụng, tôi nhận thấy một sự trèo nhỏ trong việc sử dụng bộ nhớ của mình.

tôi đã dành 3 của những 5 giờ đào bới tài liệu tham khảo, tìm hiểu về mạnh VS Yếu với ARC (Chắc chắn khuyên bạn nên đọc lên trên đó cho Intermediates Chẳng hạn như bản thân mình)

là bất cứ ai khác gặp vấn đề này? Nếu có thì có giải thích nào không? Đây là một đoạn nhỏ trong GameViewController của tôi:

class GameViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let scene = MainMenu(fileNamed:"MainMenu") { 
     // Configure the view. 
     let skView = self.view as! SKView 
     skView.showsFPS = true 
     skView.showsNodeCount = true 
     skView.multipleTouchEnabled = true 
     skView.showsPhysics = true 

     /* Sprite Kit applies additional optimizations to improve rendering performance */ 
     skView.ignoresSiblingOrder = true 

     /* Set the scale mode to scale to fit the window */ 
     scene.scaleMode = .Fill 

     //var GameSaveData = GameData() 

     // Scene Config 
     //scene.Landscape = "Test_Landscape" 
     //scene.Area = "Start" 

     skView.presentScene(scene) 
    }else{ 

     print("Couldn't Load Game Scene") 
    } 
} 

Như bạn có thể thấy, tôi không làm gì khác thường ở đây. Tôi sẽ đăng mã gamescene của mình, nhưng tất cả đều nhận xét vào lúc tôi vẫn đang quan sát rò rỉ bộ nhớ.

+0

Bạn có thể cập nhật câu hỏi của mình bằng mã exaple tối giản có thể tái tạo hành vi được mô tả không? Hoặc bạn đang nói rằng rò rỉ đang xảy ra ngay cả trên một dự án trò chơi SpriteKit trống khi skView.showsPhysics được đặt thành true? – Whirlwind

+0

Xin chào @Whilwind, tôi đã cập nhật bằng đoạn mã Snippet. Tôi thấy nơi bạn đang đi với điều này. Mặc dù nhận xét rằng showPhysics line và không bị rò rỉ bộ nhớ nữa, tôi vẫn đổ lỗi cho mã của mình. Tôi mở ra một dự án trống và từ những gì tôi có thể nói, không có rò rỉ bộ nhớ. Nó chỉ là lẻ, bởi vì sau khi bình luận mọi thứ, ngoài một vài bình luận, GameViewController của tôi về cơ bản là mẫu Hello World. Có lẽ nó có thể là một cái gì đó để làm với các thiết lập xây dựng của tôi ... Mà tôi không nghĩ rằng tôi đã bao giờ sai ... – luckybroman5

Trả lời

8

Cuối cùng, ngoài sự thất vọng, tôi vừa mới bắt đầu nhận xét dòng mã, sau đó xây dựng và lược tả cho đến khi rò rỉ bộ nhớ được giải quyết.

Hóa ra trong tập tin GameViewController.swift tôi,

skView.showsPhysics = true 

là thủ phạm. Điều này phải được một số của một lỗi mới thấy như thế nào tôi đã không nhìn thấy vấn đề này trong < IOS 9,2

+0

haha ​​tìm thấy điều này sau khi gỡ lỗi cho một giờ tốt là tốt. –

3
skView.showsFPS = true 
skView.showsNodeCount = true 
skView.showsPhysics = true 

sẽ bị rò rỉ bộ nhớ ít nhất 0,3 MB/s.

Hơn nữa ...

skView.showsFields = true 

enter image description here

nhớ Rò rỉ với tốc độ 30-40 MB/s. Táo hư!