我有一个用Swift编写的模型类和一个用Objective-C编写的后端服务控制器。
假设文件名为SomeModel.swift和SomeRequestController.m及其标题。
我不想在头文件中导入ProjectName-Swift.h
。所以我在头文件中使用了前向声明。我在ProjectName-Swift.h
文件中导入了SomeRequestController.m
。
Swift文件如下所示:
import Foundation
@objc class SomeModel: NSObject {
@objc var prop1: String?
@objc var prop2: String?
@objc var prop3: String?
}
在代码的其他部分,我可以在Objective-C中达到这个模型类。前向声明使您能够在代码内部创建一个对象。因此,Xcode找到了该类。但是,当我编译时,它失败并显示以下消息:
在类型为“ __strong id”的对象上找不到属性“ prop1”
如何在不更改导入机制的情况下解决此问题?
答案 0 :(得分:0)
我已经解决了问题。在这里,我想为将来可能遇到这种问题的人介绍这种特殊情况。
objective-c文件属于两个项目的目标成员。 Swift文件是其中之一的目标成员身份。我已将此Swift文件分配给第二个项目。现在可以编译。