如何在 Swift 中使用 Objective-C 类?
请跟着我操作一遍。
1. 创建 Objc 类
创建一个 CustomObject.m
类。
2. 增加 Bridging Header
当你新增一个 .m
文件时,应该会有这样的弹框:
点击 YES !
如果你没有弹框,或者你无意间把 bridging header
文件给删除了,就自行添加一个 .h
文件,在项目里命名为 <#YourProjectName#>-Bridging-Header.h
。
有时候你想添加现有的 Objective-C 框架到你的项目里,在这种情况下,实现创建 <#YourProjectName#>-Bridging-Header.h
文件,然后如下操作:
注意
链接项目时,一个最佳实践是使用 $(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 会起作用。
推荐文章: