[英]bridging swift and objective-c
我有Objective-C項目,並在其中添加了swift文件。 我創建了橋文件,並在某些頭文件中導入了swift文件,沒有任何問題。
但是我需要通過將某些頭文件添加到"<project-name>-Bridging-Header.h"
文件中來將它們導入到快速文件中。
如果我將頭文件放在該橋接文件中,並且此頭文件之前是導入的swift文件; Xcode給我錯誤消息:快速橋文件“找不到文件”。
即:
當我在“ ProjectBlaBla-Bridging-Header.h”中導入“ readingPage.h”時,在“ readingPage.h”中出現錯誤消息: "ProjectBlaBla-Swift.h file not found"
有什么建議么 ?
謝謝
您無法直接或間接在-Bridging-Header.h文件中引用-Swift.h文件。
如果打開-Swift.h,您將在頂部附近看到一行,在我的情況下是99行: #import "/Users/.../...-Bridging-Header.h"
,意味着-Swift.h已經導入-Bridging-Header.h,因此導入回來會創建循環依賴項。
為了避免這種情況,您在-Bridging-Header.h中導入的任何標頭都必須使用對Swift類或它使用的協議的前向引用,如對此問題的回答所述 。
簡而言之,如果readingPage.h
使用名為MySwiftClass
的Swift類,則您應該:
readingPage.h
刪除對-Swift.h
所有引用。 -Swift.h
在readingPage.m
@class MySwiftClass;
在使用readingPage.h
之前將其放到readingPage.h
,讓Objective-C知道該類存在並在其他地方聲明。 兩種選擇
注意:Prefix.pch是一個預編譯的頭文件,可加快編譯速度。 您不需要重新導入在prefix.ch文件中導入的任何文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.