我正在创建自己的框架,我添加了客观的c文件,并且它工作正常后我需要在添加swift文件后添加一些swift文件xcode没有给我选择auto 创建桥接然后我跟着Mix and Match approach。我遵循了我理解的一切。
我想访问swift文件到Objective c但是我收到了前向声明错误所以这是我附上的示例代码,请指导我做错了。
TestObjectCFile.h
#import <Foundation/Foundation.h>
@class TestSwiftFile;
@interface TestObjCFile : NSObject
@end
TestObjectCFile.m
#import "TestObjCFile.h"
#import <TestFrameworkTry/TestFrameworkTry-Swift.h>
#import "TestFrameworkTry.h"
@implementation TestObjCFile
- (void)TestMethodForImportingSwiftFile
{
TestSwiftFile * testSwiftFile = [[TestSwiftFile alloc] init];
// TestSwiftFile * testSwiftFile = [self returnSwiftClassInstance];
NSLog(@"%@",testSwiftFile);
}
@end
TestSwiftFile.swift
import Foundation
错误发生在 TestObjectCFile.m 后面的行。
TestSwiftFile * testSwiftFile = [[TestSwiftFile alloc] init];
答案 0 :(得分:16)
最后我得到了解决方案。我做了以下更改。以下是您的框架中的列表。
Objective C类中的Swift类用法
#import <YourProjectName/YourProjectName-Swift.h>
ç我遵循Apple的Mix and Match方法。
注意:有时<YourProjectName/YourProjectName-Swift.h>
文件无法导入标头,只能导入.m
个文件。仅供参考,此文件由编译器自动创建。如果您在项目中搜索它,您将无法找到它,但如果您在目标文件中点击它(作为代码中导入的文件),Xcode将(应该)打开它并向您展示Swift类的所有Objective-C类接口。要查看Swift的名称 - &gt; Objective-C模块标题,转到目标的构建设置并搜索$(SWIFT_MODULE_NAME)-Swift.h
或仅-Swift
。