如何在 Swift 中使用 Objective-C 类? 0 个改进

请跟着我操作一遍。

1. 创建 Objc 类

创建一个 CustomObject.m 类。

2. 增加 Bridging Header

当你新增一个 .m 文件时,应该会有这样的弹框:

file

点击 YES 

如果你没有弹框,或者你无意间把 bridging header 文件给删除了,就自行添加一个 .h 文件,在项目里命名为 <#YourProjectName#>-Bridging-Header.h

有时候你想添加现有的 Objective-C 框架到你的项目里,在这种情况下,实现创建 <#YourProjectName#>-Bridging-Header.h 文件,然后如下操作:

file

注意

链接项目时,一个最佳实践是使用 $(SRCROOT) 宏,否则当你的项目移动到其他文件夹的时,项目就无法工作。可以把 $(SRCROOT) 理解为包含 .xcodeproj 文件的目录,如:

$(SRCROOT)/Folder/Folder/<#YourProjectName#>-Bridging-Header.h

3. 添加 Objective-C 头文件

新增一个 CustomObject.h 到项目里。

4. 构建你的 Objective-C 类

CustomObject.h

#import <Foundation/Foundation.h>

@interface CustomObject : NSObject

@property (strong, nonatomic) id someProperty;

- (void) someMethod;

@end

CustomObject.m

#import "CustomObject.h"

@implementation CustomObject

- (void) someMethod {
    NSLog(@"SomeMethod Ran");
}

@end

5. 在 Bridging-Header 中新增调用

在 YourProject-Bridging-Header.h,增加这一行:

#import "CustomObject.h"

6. 开始使用 Objc 类

在 SomeSwiftFile.swift 中:

var instanceOfCustomObject: CustomObject = CustomObject()
instanceOfCustomObject.someProperty = "Hello World"
println(instanceOfCustomObject.someProperty)
instanceOfCustomObject.someMethod()

请注意在此文件中无需引入,因为我们在 Bridging-Header 已经引入过了。

注意:代码补全有时候会不是很准确,有时候 cmd + r 会起作用。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!