2015-12-16 38 views
22

Po uruchomieniu gry SpriteKit ten błąd pojawia się wielokrotnie w konsoli. O ile wiem (choć nie jestem do końca pewny), sama gra nie jest zagrożona, ale błąd może mieć inne implikacje, wraz z tłumieniem konsoli debugowania.CUICatalog: Niepoprawne żądanie: żądanie podtypu bez określenia idiomu (skąd pochodzi i jak go naprawić?)

Zrobiłem kilka badań w sprawie błędu i znalazłem kilka możliwych rozwiązań, z których żaden nie wydaje się całkowicie pracował. Rozwiązania te obejmują przekształcenie ignoresSiblingOrder w false i określenie tekstur jako SKTextureAtlas(named: "atlasName").textureNamed("textureName"), ale te nie zadziałały.

Myślę, że błąd pochodzi gdzieś z użycia tekstur i atlasów tekstur w katalogu aktywów, choć nie jestem do końca pewien. Oto jak ja wdrożenia niektórych z tych faktur/images:

let Texture = SKTextureAtlas(named: "character").textureNamed("\character1") 
    character = SKSpriteNode(texture: Texture) 

również:

let Atlas = SKTextureAtlas(named: "character") 
    var Frames = [SKTexture]() 

    let numImages = Atlas.textureNames.count 

    for var i=1; i<=numImages; i++ { 
     let textureName = "character(i)" 
     Frames.append(Atlas.textureNamed(textureName)) 
    } 
    for var i=numImages; i>=1; i-- { 
     let TextureName = "character(i)" 
     Frames.append(Atlas.textureNamed(textureName)) 
    } 


    let firstFrame = Frames[0] 
    character = SKSpriteNode(texture: firstFrame) 

Powyższy kod jest tylko używana do utworzenia tablicy, z którego można animować postać i tras animacji całkowicie w porządku.

Dla wszystkich innych moich węzłów sprajtów inicjuję za pomocą nazwy obrazu z katalogu zasobów, ale nie w atlasie tekstury. Wszystkie obrazy mają wersje @ 1x, @ 2x i @ 3x.

Nie jestem pewien, czy istnieją inne możliwe źródła komunikatu o błędzie, lub jeśli powyższe przykłady są źródłem błędu.

Czy to tylko błąd z zestawem sprite lub uzasadnionym błędem z moim kodem lub zasobami?

Dzięki!

+1

Błąd ten występuje w wersji Xcode 7.3 Beta. Dalej Jabłko –

+0

To "odchodzi", jeśli ładuje tekstury bezpośrednio z atlasów, a nie za pomocą 'initWithImagedNamed: @" somestring "' i podobne. – Jonny

Odpowiedz

18

Mam również ten błąd. Moim zdaniem to błąd Xcode 7.2, a nie twoja wina. Zaktualizowałem Xcode w trakcie tworzenia aplikacji i ta wiadomość pojawia się stale w konsoli. Według linków this i that nie musisz się niczego obawiać.

+0

Dzięki za informacje. Po prostu to zignoruję, ponieważ nie ma to wpływu na aplikację. Na marginesie uważam, że masz rację, mówiąc, że jest to błąd w Xcode 7.2, ponieważ właśnie to zaktualizowałem i to jest, gdy zacząłem widzieć błąd. Dzięki! –

+0

Łącza rzeczywiście próbują rozwiązać problem, czy dobrze jest zignorować problem i czekać na poprawkę? Naprawdę nie chcę refaktoryzować mojego kodu wokół błędu. – 3366784

+3

Kolejna ofiara po aktualizacji 7.2 – Tony

3

produktów> Clean

wydaje rade.

Błąd pojawia się, gdy pojawia się problem z usunięciem pozycji z katalogu zasobów, ale jej odwołanie nadal jest gdzieś ukryte w kodzie. (W moim przypadku był to domyślny zasób statku kosmicznego, który usunąłem.)

+1

Nie działa dla mnie. Xcode 7.3 beta 3 – Shades

+1

Nie działa dla mnie ani w XCode 7.2.1 – NDB

+1

Usunąłem zasób statku kosmicznego z Assets.xcassets, wyczyściłem rzutowany, i usunięto CUICatalog: Nieprawidłowe żądanie: żądanie podtypu bez określania błędów idiomów, które otrzymywałem. (XCode 7.2.1) – brilliantairic