注意事项:
OC与C++对象在内存管理上是不一样的。所以我们无法直接将一个OC对象直接赋值给一个C++对象,或者相反。
OC与C++都支持指针,可以通过指针进行桥接。例如在一个C++类中声名一个OC的指针。
clang可以通过程序文件的后缀名选择不同的编译器对其进行编译。如文件后缀名是.m,它会使用OC编译器;如果是.mm,它会使用Object-C++编译器。
OC调用C语言:
// 方法一:c语言可以直接在OC的类中写方法:
- (void)playvideobtn{
// 调用c语言方法:
sayHello();
}
//。c语言方法:
void sayHello(){
printf("Hello OC");
}
//。方法二:c语言单独的类文件,然后在oc类中#include后调用c语言方法:
// testtwo.h
#ifndef testtwo_h
#define testtwo_h
#include <stdio.h>
void sayHello();
#endif/* testtwo_h*/
// testtwo.m
#inclued "testtwo.h"
void sayHello() {
printf("我是OC 调用 C");
}
// OC中:#include"testtwo.h"
- (void)playCCCC {
//. 调用C语言方法
sayHello();
}
C语言调用OC:
从汇编角度来看:无论是C函数或者是OC方法,他们同样都是一个函数的地址。区别在于:C函数调用直接通过函数名&#x