2015-10-03 25 views
10
import UIKit 
import Metal 
import QuartzCore 

class ViewController: UIViewController { 

var device: MTLDevice! = nil 
var metalLayer: CAMetalLayer! = nil 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    device = MTLCreateSystemDefaultDevice() 
    metalLayer = CAMetalLayer()   // 1 
    metalLayer.device = device   // 2 
    metalLayer.pixelFormat = .BGRA8Unorm // 3 
    metalLayer.framebufferOnly = true // 4 
    metalLayer.frame = view.layer.frame // 5 
    view.layer.addSublayer(metalLayer) // 6 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 

Kiedy mam to w moim ViewController.swift, otrzymuję błąd „Zastosowanie nierejestrowanej typu CAMetalLayer” choć mam importowane Metal i QuartzCore. Jak mogę uruchomić ten kod?Metal iOS daje błąd kompilacji

Odpowiedz

39

Kod metalu nie jest kompilowany na symulatorze. Spróbuj skompilować urządzenie.

+0

Jeszcze się nie skompilowałem. To pojawia się zaraz po wpisaniu tego materiału i po prostu poczekaj – Pocketkid2

+1

Spróbuj wybrać urządzenie zamiast symulatora w Xcode –

+3

Ta odpowiedź nie odpowiada na pytanie, ponieważ nie było pytania, jednak jest to rozwiązanie określonego problemu: Symulator nie może skompilować kodu metalowego. Jeśli wybierzesz urządzenie, błędy kompilacji znikną. –