iOS 中C如何调用Objective c的代码更新界面问题解决
来源:互联网 发布:sql server select if 编辑:程序博客网 时间:2024/06/06 04:41
因为费时的处理实在c中,或许你的c库是某个库比如视频处理库ffmpeg,那么ffmpeg处理视频的时候非常耗时间,并且进度到了多少,你需要让用户知道。但是ios的界面是objective c代码。所有我们需要用c里面的代码不断返回数据给objective c,不但更新进度多少了。
下面的代码就是解决这个问题!
1、建立c的中间层。分为两个文件,PassLocalValueToOC.h 和
PassLocalValueToOC.m
这个就是为了让c调用的,然后它的方法又调用objective c的,.h文件如下:
#ifndef PassLocalValueToOC_h
#define PassLocalValueToOC_h
void passLocalValueTo(float currentProgress);
#endif /* PassLocalValueToOC_h */
那么.m文件就实现这个方法了,如下:
#include "PassLocalValueToOC.h"
void passLocalValueTo(float currentProgress){
SEL s = NSSelectorFromString(@"updateNowProgress:");
id myObj = [[NSClassFromString(@"PlayVideoViewController") alloc] init];
NSString *stringFloat = [NSString stringWithFormat:@"%f",currentProgress];
if([myObj respondsToSelector:s]) {
[myObj performSelector:s withObject:stringFloat]; //注意如果有两个参数,使用两个withObject:参数;
}
// objc_msgSend(myObj, s);
}
注意这个.m文件,不要用什么import ,不要写什么PlayVideoViewController *player,然后直接[player updateNowProgress:@""]这样的。
因为编译不通过,原因为啥,我是ios新手,没时间追究了。
ok,PlayVideoViewController里面的那个方法,你应该会写。就写到这里吧!
- iOS 中C如何调用Objective c的代码更新界面问题解决
- iOS界面跳转与返回代码实现(Objective-C)
- Objective-C 中如何测量代码的效率
- javascript如何调用objective-c的方法
- Objective-C调用C++代码
- Swift 调用 Objective-C 代码
- iOS --- 总结Objective-C中常用的宏定义(持续更新中)
- Objective-C中代码块的学习
- ios中Objective-C的@property详解
- 【iOS】如何学好Objective-C
- iOS/Objective-C字典对象NSDictionary的使用20130608更新
- 如何在C++中调用C的代码
- 如何在C++中调用C的代码
- 如何在C++中调用C的代码
- 如何在C++中调用C的代码
- 如何在C++中调用C的代码
- 如何在IOS项目中调用C的函数
- Java中如何调用C/C++代码
- VC运行时库(/MD、/MT等)
- openstack dashboard vip没有启动的问题解决
- BZOJ 2705 Longge的问题(欧拉函数)
- UIImageJPEGRepresentation和UIImagePNGRepresentation
- 关于 Xcode 中 NSAssert() 的用法 ,以及 assert() 与 NDEBUG
- iOS 中C如何调用Objective c的代码更新界面问题解决
- 巴什博弈
- 正态贝叶斯分类器
- 覆盖jar 类 优先级高于jar == Debug jar包 java技巧
- iOS GCD的用法
- 3.17 vb 另外一种等量变换 (随机)ROM
- android 图片缓存LruCache(二)
- Rgeliomp程序IVF的生成
- Java集合框架:LinkedHashMap