Swift调用Obecject-C实战
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
Swift 并不能直接调用 FFmpeg 动态库,他需要通过 Objective-C 去调 动态库的函数,所以我们先简单学习一下在 Swift 里面怎么调用 OC。
为了简单起见,我们本次实验是直接使用 Swfit + Obecject-C 开发一个命令行程序,然后直接在 mac mini 里面运行,不涉及到 iphone app 的开发。
1,创建 Swift Command Line Tool 项目

2,创建 Objective-C 文件
//ffmpegObject.h文件
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ffmpegObject : NSObject
-(void)seyHello;
@end
NS_ASSUME_NONNULL_END
//ffmpegObject.m文件
#import "ffmpegObject.h"
@implementation ffmpegObject
-(void)seyHello{
NSLog(@"ffmpeg principle");
}
@end
这里注意,一定要把 这两个 Objective-C 文件放在跟 Swift 代码文件同一个目录。如下:

3,创建桥接文件 swift_oc-Bridging-header.h
//swift_oc-Bridging-header.h文件
#import "ffmpegObject.h"
4,调用 Objective-C 的函数
//main.swift文件
import Foundation
let ffmpeg = ffmpegObject()
ffmpeg.seyHello()
运行效果如下图:

完整的项目代码可以在 source/code/swift_oc 目录下找到。
虽然本文是 macOS 下 Swift 调用 Obecject-C 的教程,但是在 iOS APP 下也是类似的用法的。读者可以参考 source/code/swift_oc_app 项目
参考资料:
推荐阅读:
1,《.xcodeproj 后缀文件是什么》