ios - Getting Error Receiver for class message 是前向声明

标签 ios objective-c swift xcode

我正在创建我自己的框架,我添加了 objective c 文件并且它工作正常,之后我需要在添加 swift 文件后添加一些 swift 文件 xcode 没有给我选择自动 Creating Bridging 然后我关注了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];

如附图所示。 enter image description here

最佳答案

终于找到解决方案了。我做了以下更改。下面是您的框架中的待办事项列表。

Swift 类在 Objective C 类中的使用

  • 在 Swift 类名前使用 Open 关键字
  • 在 Swift 类的 Open 关键字之前使用 @objc 关键字
  • 在 Umbrella 文件中导入 objective-c 类的所有头文件 YourProject.h 那些正在使用 Swift 类。
  • 使用#import <YourProjectName/YourProjectName-Swift.h>在目标 c

我遵循了 Apple 的混合搭配方法。

注意:有时 <YourProjectName/YourProjectName-Swift.h>文件不能导入到标题中,只能导入到 .m 中文件。仅供引用,此文件由编译器自动创建。如果您在项目中搜索它,您将无法找到它,但是如果您在目标中的文件中 ⌘ 单击它(作为代码中导入的文件),Xcode 将(应该)打开它并向您展示 Swift 类的所有 Objective-C 类接口(interface)。要查看 Swift -> Objective-C 模块 header 的名称,请转到目标的build设置并搜索 $(SWIFT_MODULE_NAME)-Swift.h。或者简单地 -Swift .

关于ios - Getting Error Receiver for class message 是前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41800808/

相关文章:

ios - 当点击 collectionView 单元格内的按钮时,如何获取 TableView 行并从 tableViewCell 内的 collectionView 推送到 viewController

ios - MySQL 数据库字段更新应该在 ios 中触发函数

IOS Swift Post 请求返回一些不清楚的内容

objective-c - 获取所有对象属性的列表

iphone - UIControlEventTouchDragInside 问题

swift - 如何在同一页 FSCalendar Swift 3 显示 2 个月

ios - 核心数据终止错误

ios - 如果 AppleWebKit 出现在用户代理中,是否意味着它肯定是苹果设备?

swift - 将默认参数值发送给函数?

ios - UIPageViewController 有条件地转到下一页