将 Swift 导入 Objective-C - “使用未声明的标识符”
Posted
技术标签:
【中文标题】将 Swift 导入 Objective-C - “使用未声明的标识符”【英文标题】:Import Swift into Objective-C - "use of undeclared identifier" 【发布时间】:2019-01-14 12:49:37 【问题描述】:我无法将 Swift 类导入到 Objective-C。
Xcode 版本:10.1 斯威夫特:4.2我的步骤:
创建名为“test”的空单视图 Objective-C 项目。
创建 Swift 类 (mytestclass.swift)
创建桥接空标题“test-Swift.h”
尝试像这样在ViewController.m
中使用:#import "test-Swift.h"
[[MyTestClass init] calculate];
mytestclass.swift
import Foundation
@objc public class MyTestClass: NSObject
@objc public func calculate()
print("TEST")
编译后我得到:
/Users/xxx/Desktop/test/ViewController.m:19:7: 使用未声明 标识符“MyTestClass”
我错过了什么?
【问题讨论】:
【参考方案1】:你的问题出在步骤
3- 创建桥接空标题“test-Swift.h”
您不应该手动创建该文件,因为它是在您将 swift 文件添加到 Objective-C 时创建的,您还需要替换此行
[[MyTestClass init] calculate];
与
[[[MyTestClass alloc] init] calculate];
或
[[MyTestClass new] calculate];
这是一个有效的demo
【讨论】:
它不起作用。它根本看不到 MyTestClass。 我创建了一个演示检查它 谢谢!事实证明,手动创建的文件“test-Swift.h”会导致这个问题。因此,在跳过第 3 步之后,它就可以工作了!以上是关于将 Swift 导入 Objective-C - “使用未声明的标识符”的主要内容,如果未能解决你的问题,请参考以下文章
将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”
将 Swift 导入 Objective-C - “使用未声明的标识符”
将 Objective-C 框架(CocoaPod)导入 Swift?
无法使用桥接头将 Objective-C 文件导入 Swift 项目