2015-10-03 22 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. 
} 


} 

Khi tôi có điều này trong ViewController.swift của tôi, tôi nhận được lỗi "Sử dụng khai báo kiểu CAMetalLayer" mặc dù tôi đã nhập khẩu kim loại và QuartzCore. Làm cách nào để mã này hoạt động?kim loại iOS cung cấp cho biên dịch lỗi

Trả lời

39

Mã kim loại không biên dịch trên Trình mô phỏng. Thử biên dịch cho một thiết bị.

+0

Tôi chưa biên soạn cho bất kỳ thứ gì. Điều này xuất hiện ngay sau khi tôi nhập nội dung đó vào và chỉ cần đợi – Pocketkid2

+1

Thử chọn thiết bị thay vì trình mô phỏng trong Xcode –

+3

Phản hồi này không trả lời câu hỏi, vì không có câu hỏi, tuy nhiên đó là giải pháp cho vấn đề đã nêu: Trình mô phỏng không thể biên dịch mã kim loại. Nếu bạn chọn một Thiết bị, các lỗi biên dịch sẽ biến mất. –

Các vấn đề liên quan