当前位置:  开发笔记 > IOS > 正文

具有相同名称的Swift和Objective-C类

如何解决《具有相同名称的Swift和Objective-C类》经验,为你挑选了1个好方法。

我还在学习如何将Swift代码集成到用Objective C编写的代码中.假设我将Swift文件和类命名为任何Objective-C类已经采用的相同名称.例如,

我会创建:"ViewController.swift",并具有以下内容:

import Foundation
import UIKit

@objc class ViewController:UIViewController {
    func swiftMethod() {
        print("It works.")
    }
}

已有"ViewController.h"和"ViewController.m".后来我会尝试在Objective-C中调用Swift类:

#import 
...
ViewController *vc = [ViewController new];
[vc swiftMethod];
...

编译器如何知道我启动了哪个类:来自Swift的类还是来自Objective-C的类?



1> Darren..:

在Obj-C运行时,这两个类实际上有不同的名称.在YourProject.ViewController简单命名Obj-C类时,将命名Swift类ViewController.

从Obj-C代码中,您获得的类将取决于您导入的标头.

如果您导入两个标头,那么这是编译器错误.

如果强制两个类具有相同的名称,请使用:

@objc(ViewController) class ViewController: UIViewController {
}

那么这是一个链接器错误.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有