如何解决在Objective C类中使用静态c变量
| 我在某些Objective C类中具有辅助C函数。 刚刚发现,我在这些函数中使用的全局静态C变量的值在类(duh)的实例之间共享,这不是我想要的。 有没有一种方法可以将这些变量声明为类实例的局部变量,以使它们在帮助函数中可见而无需显式传递它们?解决方法
有没有办法将这些变量声明为类实例的局部变量
当然,使它们成为实例变量。
但:
这样它们就可以在辅助函数中可见而无需显式传递它们?
您可以将对象传递给函数。如果您有适当的访问器,则该函数可以获取它们。而且,如果您有增变剂,它也可以对其进行修改。
但是,如果执行此操作,则最好只创建一个方法,然后自动访问实例变量。
,
想要在必要时避免方法调用
从逻辑上将其分离,以便您的底层代码使用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); }
应该满足您到目前为止发布的所有要求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。