2014-10-26 14 views
14

Tôi vừa nâng cấp mã Xcode lên 6.1 giờ sáng hiện đang gặp lỗi biên dịch lạ.Xcode 6.1 Vấn đề nhanh - 'init()' không khả dụng: thay thế bằng cách nhập - [NSObject init]

'init()' không có sẵn: thay thế bởi nhập khẩu - [NSObject init]

Tôi subclassing SCNNode và có một tài liệu tham khảo bắt buộc để các lớp khác cùng loại tôi đang xác định. tức là

import UIKit 
import SceneKit 

    class BayNode: SCNNode { 

     var leftBay:BayNode? 
     var rightBay:BayNode? 


     func addLeftBay() 
     { 

      leftBay = BayNode() // 'init()' is unavailable: superseded by import of -[NSObject init] 

     } 


    } 

Có ai biết cách giải quyết vấn đề này không.

Nhiều Cảm ơn

+0

Không liên quan: nó giúp những người khác (bao gồm highlighter cú pháp SO của) đọc mã của bạn nếu bạn tuân theo các quy ước đặt tên Swift, như kiểu đặt tên có mũ ban đầu. Tức là, sử dụng 'BayNode', không phải' bayNode'. – rickster

+0

Xin chào Rickster, tôi sẽ làm lần sau ;-). Tôi khá mới ở đây. – BassetMan

Trả lời

13

Tôi có cùng một vấn đề, một trong những cách tôi tìm thấy để ngăn chặn các lỗi là để đúc một cách rõ ràng:

leftBay = BayNode() as BayNode 
+0

Cảm ơn Alex, tôi đã thử điều này và hoạt động tốt. Nó hoạt động như với Xcode 6.01. Có ai biết tại sao, hoặc có thể đưa ra lời giải thích đằng sau sự thay đổi này? – BassetMan

+0

Có thể là lỗi trong kiểm tra loại. [Nộp nó với Apple] (http://bugreport.apple.com) để giúp sửa lỗi nhanh hơn. – rickster

+1

Nó không phải là một lỗi, đó là một hệ quả của một di chuyển đến kiểm tra loại nghiêm ngặt hơn trong ngôn ngữ. – FiddleMeRagged

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