我在一些Objective C类中有助手C函数。 刚刚发现,我在这些函数中使用的全局静态C变量的值在类(duh)的实例之间共享,这不是我想要的。在Objective C类中使用静态c变量
有没有办法将这些变量声明为本地类的实例,以便它们可以通过帮助程序函数而不显式传递它们?
我在一些Objective C类中有助手C函数。 刚刚发现,我在这些函数中使用的全局静态C变量的值在类(duh)的实例之间共享,这不是我想要的。在Objective C类中使用静态c变量
有没有办法将这些变量声明为本地类的实例,以便它们可以通过帮助程序函数而不显式传递它们?
是否有这些声明的局部变量的类的实例
当然,让他们的实例变量的方式。
但是:
,使他们由辅助功能可见不用将它们明确?
您可以将对象传递给函数。如果您有适当的访问器,该函数可以获取它们。如果你有mutators,它也可以修改它们。
但是,如果你这样做,你可能只需创建一个方法,并自动访问实例变量。
啊是的,像这样'static inline void timeCriticalTask(void * refToSelf){}'?我正在使用这些DSP的东西,并希望在必要时避免方法调用..谢谢! – Jakob 2011-05-27 21:45:39
希望避免方法调用在必要
逻辑上分离它,以便你的低级代码是在C或C++,则所需的数据添加到objc类:
/* c example */
typedef struct t_generator {
UInt32 a;
} t_generator;
static void Generate(t_generator* const gen) {
/.../
}
@interface MONObjCGeneratorContainer : NSObject
{
t_generator generator;
NSString * name;
UInt32 b;
}
@end
如果数据接口如此简单,您可以从实例访问它们:
- (void)method { GenerateB(&b); }
应符合您发布的所有要求(到目前为止)。
对不起 - 但我不明白这个问题。这听起来像你想要一个只对该对象可见的全局变量?这是没有道理的。 – Abizern 2011-05-27 21:40:46