2015-01-29 11 views
12

Lỗi rất kỹ thuật ở đây và Google không bật tính năng này.Thuộc tính 'công khai' chỉ có thể được sử dụng trong phạm vi không thuộc địa phương

Tôi đang thêm Cordova vào Dự án Swift.

Tôi đã thêm tệp Bridging Header và phụ kiện xây dựng Cordova và tôi đã tự động hoàn thành công việc (các lớp CDV của Cordva được tự động hoàn thành).

Tất cả mọi thứ đã làm việc tốt cho đến khi tôi đột nhiên nhận lỗi này:

Attribute 'public' can only be used in a non-local scope 

Và dự án của tôi chỉ sáng lên với các lỗi ở khắp mọi nơi. Ngoài ra tấn chức năng của tôi ngừng hoạt động.

enter image description here

Bất kỳ lời đề nghị như những gì đã xảy ra hoặc những gì tôi có thể làm gì để sửa chữa sẽ được nhiều đánh giá cao

+0

Trả lời về thông báo lỗi dưới đây. Đối với * tại sao * nó xảy ra - tôi đoán bạn sẽ mất một cú đúp đóng ở đâu đó và mọi thứ đang được giải thích như là ngoài phạm vi toàn cầu vì lý do đó. –

Trả lời

4

lỗi đó xuất hiện khi bạn có public tuyên bố trên một loại được lồng vào bên trong một hàm hoặc phương pháp - các loại được khai báo trong ngữ cảnh đó chỉ có phạm vi cục bộ và do đó không thể được đánh dấu là công khai. Ví dụ:

func foo() { 
    public struct Bar {   
    } 
} 
// Attribute 'public' can only be used in a non-local scope 
32

Đối với độc giả trong tương lai:

Tôi đồng ý với phân tích của câu hỏi Nate Cook, tuy nhiên trình biên dịch của tôi đã ném lỗi này bởi vì tôi đã bỏ lỡ một cú đúp xoăn (}) cao hơn trong các tập tin. Ví dụ, dấu ngoặc nhọn sau khi câu lệnh mặc định trong công tắc bị thiếu. Trong trường hợp này, nó sẽ ném lỗi trên đường dây public var URLRequest: NSURLRequest:

public enum MyEnum: SomeProtocol { 
    var someVariable { 
     switch self { 
     case .first: 
      return something 
     default: 
      return default 
     } 
    // <------- needs brace here 
    public var URLRequest: NSURLRequest { 
     // Code here. 
    } 
} 
+0

Cảm ơn, người đàn ông! Trong khi chuyển sang swift2, chỉnh sửa và thêm người bảo vệ, tôi bỏ lỡ một cú đúp và gần như bắt đầu chỉnh sửa những tính năng riêng tư đó :) –

+0

Cảm ơn bạn đã tiết kiệm được rất nhiều thời gian! Thiếu một cú đúp. –

+0

Phát ngay! Cảm ơn người đàn ông! –

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