2015-02-26 20 views
13

Tôi có một khung mục tiêu-C (khung A) hiển thị một số tiêu đề công khai và một số tiêu đề riêng tư. Các tiêu đề công khai cũng được khai báo trong tiêu đề ô của khung. Tôi có một khuôn khổ Swift thứ hai (khung B) liên kết với khung mục tiêu-C.Làm cách nào để nhập tiêu đề khung làm việc riêng tư trong khuôn khổ Swift?

Bây giờ, nếu tôi muốn nhập các tiêu đề công khai của A vào B, tôi chỉ cần thực hiện import A.

Nhưng làm cách nào để chuyển nhập các tiêu đề riêng tư?

Tôi biết tiêu đề bắc cầu không phải là tùy chọn vì không được hỗ trợ cho các khung công tác. Tôi có cần phải bằng cách nào đó tạo ra một tiêu đề ô riêng biệt cho các tiêu đề tư nhân?

Trả lời

18

Bạn cần sửa đổi khuôn khổ A, để xuất mô-đun riêng tư.

  1. Tạo dự án private module map file trong A. sẽ là một cái gì đó như thế này này:

    A/private.modulemap:

    explicit module A.Private { 
    
        // Here is the list of your private headers. 
        header "Private1.h" 
        header "Private2.h" 
    
        export * 
    } 
    
  2. Trong mục "Xây dựng Settings" khung A mục tiêu, tìm kiếm "Mô-đun cá nhân Map File" dòng, và làm cho điều đó :

    $(SRCROOT)/A/private.modulemap 
    
  3. Không bao gồm private.modulemap tệp trong "Nguồn biên dịch". Điều đó gây ra cảnh báo không cần thiết.

  4. Làm sạch và xây dựng khung A mục tiêu.

  5. Trong khung B Tệp nhanh. bạn có thể nhập các mô-đun riêng như thế này:

    import A 
    import A.Private 
    
+0

này hoạt động, nhưng những gì sẽ xảy ra nếu một trong các tiêu đề tin cần phải nhập một tiêu đề nào? Trong trường hợp của tôi, tôi nhận được lỗi "không tìm thấy tiêu đề". Dường như trình biên dịch không có kiến ​​thức về mô đun công cộng khi biên dịch mô-đun con riêng. –

+1

Trong môi trường của tôi, nó hoạt động mà không có bất kỳ vấn đề. xem tập tin dự án này: https://www.dropbox.com/s/srmgbktyhtmtuku/PrivateFWTest.zip?dl=0 – rintaro

+0

Hóa ra đó là vì thư viện của tôi cư trú trong dự án Xcode của riêng nó đã được sử dụng như một dự án bên ngoài. Biên soạn một mình thư viện. Việc tạo thư viện làm mục tiêu trong cùng một dự án như trong ví dụ của bạn cũng hoạt động. –

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