我有一个旧的Objective-C项目,我想调用新的Swift函数和对象,我已经创建了文件“ <ProjectName>-Bridging- Header.h
”和“ <ProjectName>-Swift.h
”
对我来说,从Swift调用函数到Objective-C很容易,但是我有一个反向问题。
因此,我创建了一个简单的类“ System.Swift”
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
现在我尝试按照此处和<...>-Swift.h
文件内的文档进行操作
@class System;
@interface System : NSObject
-(void)printSome;
@end
并且已将其导入到Objective-C类中。此时,在我的Objective-C代码的Objective
C类(当前为UIViewController)内部,我尝试调用“ printSome”方法:
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
现在我有以下错误:
架构i386的未定义符号:“ _ OBJC_CLASS _ $ _ System”,引用自:“
ObjectiveC_Class_That_Call_Swift_Object”中的objc-class-ref。o
ld:架构i386找不到符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
解决问题后,我以前.h
在我的 Objective-C
类中创建了一个新文件,并在其中包含了一个新文件,<ProductModuleName>-Swift.h
但是,正如我稍后发现的,此步骤不是必需的,因为编译器会创建不可见的必需文件。
只需将<ProductModuleName>-Swift.h
它包括在您的课程中,它就可以正常工作。
问题内容: 我无法从Objective-C访问Swift Singleton。 swiftSharedInstance无法访问。 问题答案: 现在,我有以下解决方案。也许我忽略了一些使我能够直接访问“ swiftSharedInstance”的东西? 然后在ObjC中,我可以获取sharedInstance类方法(在导入xcode生成的swift标头绑定之后)
本文向大家介绍Swift调用Objective-C代码,包括了Swift调用Objective-C代码的使用技巧和注意事项,需要的朋友参考一下 最近iOS开发之新编程语言Swift在iOS开发圈内反响比较大,国内外都有很多教程或小示例。 虽然Swift这门语言仍然在不断的进化之中,而且变动还是比较大,苹果公司也不承诺目前所写代码会在将来兼容,但仍挡不住iOS开发者的热情。 为什么要使用Swift调
问题内容: 我正在开发Python / ObjC应用程序,需要从ObjC的Python类中调用一些方法。我已经尝试了几种方法,但都没有成功。 如何从Objective-C调用Python方法? 我的Python类正在Interface Builder中实例化。如何从该实例调用方法? 问题答案: 使用PyObjC。 它包含在Leopard及更高版本中。 它甚至可以与iPython一起使用: ` 要从
问题内容: 我处于需要使用Objective-C类别扩展Swift类的情况。我做了如下的事情: 在“ SomeClass.swift”中: 在“ SomeClass + Extension.h”中: 效果很好。而且,如果我尝试在我的Objective C代码中使用SomeClass扩展,那就很好了。 问题是,如果要在另一个Swift类中使用,则需要将文件放入文件中。 但是这样做会导致循环依赖性,因
本文向大家介绍在Swift中使用Objective-C编写类、继承Objective-C类,包括了在Swift中使用Objective-C编写类、继承Objective-C类的使用技巧和注意事项,需要的朋友参考一下 互用性(互操作性)使开发者可以定义融合了 Objective-C 语言特性的Swift类。编写 Swift 类时,不仅可以继承 Objective-C 语言编写的父类,采用 Objec
本文向大家介绍Swift使用Objective-C代码中的Swift类,包括了Swift使用Objective-C代码中的Swift类的使用技巧和注意事项,需要的朋友参考一下 示例 在同一模块中 在名为“ MyModule ”的模块内,Xcode生成一个名为的标头,该标头MyModule-Swift.h将公共Swift类公开给Objective-C。导入此标头以使用Swift类: 相关的构建设置: