无法访问C函数体中的Objective-C类实例变量

时间:2016-02-12 03:08:15

标签: objective-c c function instance-variables

我有一个类MicController并给它一个像这样的实例变量:

@implementation MicController {
   AudioStreamBasicDescription streamFormat;
}

我初始化对象并尝试使用该ASBD变量创建音频单元以跟踪流格式。

- (instancetype)init {
   if (self = [super init]) {
      [self setup];
   }
   return self;
}

- (void)setup {
   CreateInputUnit();
}

但是,在CreateInputUnit()内,我似乎无法访问变量。

void CreateInputUnit () {
stream... // nothing
}

没有自动完成,没有语法高亮,没有编译。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

对于您的班级,可以有多个对象实例,或者没有。 AC函数无法知道查找实例变量的对象(如果存在),除非您(1)将对象作为参数传递,或者(2)将全局C变量设置为指向感兴趣对象的实例化。后者(2)当然只对单例对象有用。

给定一个指向传递给C函数的对象的指针,您可以使用struct dereference运算符(" - >")来访问类接口中声明的对象中的任何实例变量。或者你可以直接传递感兴趣的数据或指针。