gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:21 24 4
gpt4 key购买 nike

我正在创建我自己的框架,我添加了 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com