2016-01-20 14 views
12

Jestem ciekawy, kiedy showsFields jest włączony, zużycie pamięci rośnie bardzo szybko? Może wzrosnąć do 500 MB poniżej 30 sekund. Jeśli mój Mac ma tylko 8 GB pamięci RAM, prawdopodobnie mam mniej niż 8 minut na debugowanie przed ostrzeżeniem o pamięci, to będzie najgorsze podczas debugowania na prawdziwym urządzeniu.SpriteKit SKView showsFields usage usage

Zrzut ekranu poniżej jest testowany na prawdziwym urządzeniu (iOS 9.2).

Memory Usage

Można szybko spróbować tworząc projekt SpriteKit i skręcić w viewDidLoad()showsFields na metodzie wewnątrz kontrolera widoku.

skView.showsFields = true

Jeśli chcesz zobaczyć, co robi showsFields umieścić ten fragment wewnątrz -didMoveToView(view:) metoda dla sceny.

override func didMoveToView(view: SKView) { 
    let myField = SKFieldNode.springField() 
    myField.position = CGPointMake(frame.midX, frame.midY) 
    myField.strength = 1.0 
    self.addChild(myField) 
} 

Oto showsFields dyskusja z Apple

Dyskusja

Gdy ta opcja debugowania jest włączona, za każdym razem gdy rama jest renderowany, obraz jest rysowany za sceny, który pokazuje efekty wszelkie pola fizyki zawarte w scenie.

+2

Czy próbowałeś na prawdziwym urządzeniu? SpriteKit na symulatorze jest dość błędny i nieefektywny. – jcaron

+1

Tak, ostrzeżenie o pamięci wymusza zamknięcie aplikacji na –

+0

To błąd. Oczekuj, że zostanie on naprawiony w 2017. lub 2018. Ale nie jutro. – Confused

Odpowiedz

1

Wygląda na to, że obraz debugowania rysowany na ramkę nie jest prawidłowo czyszczony, co prawdopodobnie prowadzi do wycieku pamięci.

Najlepiej złożyć zgłoszenie błędu w Apple za pośrednictwem https://developer.apple.com/bug-reporting/ , więc wiedzą, że wiele osób ma ten problem i może mieć nadzieję, że nadają wyższy priorytet.

Nadzieję, że pomaga.

poważaniem Mukund

Powiązane problemy