Swift调用Obecject-C实战

作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音

Swift 并不能直接调用 FFmpeg 动态库,他需要通过 Objective-C 去调 动态库的函数,所以我们先简单学习一下在 Swift 里面怎么调用 OC。

为了简单起见,我们本次实验是直接使用 Swfit + Obecject-C 开发一个命令行程序,然后直接在 mac mini 里面运行,不涉及到 iphone app 的开发。

1,创建 Swift Command Line Tool 项目

1-1

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 代码文件同一个目录。如下:

1-2


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()

运行效果如下图:

1-3

完整的项目代码可以在 source/code/swift_oc 目录下找到。

虽然本文是 macOS 下 Swift 调用 Obecject-C 的教程,但是在 iOS APP 下也是类似的用法的。读者可以参考 source/code/swift_oc_app 项目


参考资料:

1,《Swift和Objective-C相互调用

推荐阅读:

1,《.xcodeproj 后缀文件是什么

版权所属 xianwanzhiyin.net 罗上文 2024 all right reserved,powered by Gitbook该文件修订时间: 2024-07-04 00:08:26

results matching ""

    No results matching ""