我必须将方法编写为C函数以便每次访问对象,我想在函数内声明该对象并分配它。如何在所有C函数中维护公共对象。可能吗?
void method1
{
NSMutableArray *sample = [[NSMutableArray alloc]init];
}
void method2
{
NSMutableArray *sample = [[NSMutableArray alloc]init];
}
答案 0 :(得分:2)
我相信这应该有用(虽然这肯定不是线程安全的):
NSMutableArray *sample = nil;
void method1 {
if (sample == nil) {
setupSample();
}
// ...
}
void method2 {
if (sample == nil) {
setupSample();
}
// ...
}
void setupSample {
sample = [[NSMutableArray alloc] init];
// Any other setup here
}
答案 1 :(得分:2)
static NSMutableArray *sampleArray=nil;
@implementation class
void method1(void){
if (sampleArray == nil){
sampleArray = [[NSMutableArray alloc]init];
}
}
void method2(void){
if (sampleArray == nil){
sampleArray = [[NSMutableArray alloc]init];
}
}
请使用此
答案 2 :(得分:1)
您可能希望使用类方法来访问共享对象。
类似......
void method {
NSMutableArray *mySharedObj = [SampleRelatedContextClass sample];
}
这看起来更好。
答案 3 :(得分:0)
创建静态文件范围的变量。
static NSMutableArray *sample=nil;
@implementation class
void method1(){ //you can write c functions outside @implementation also
if (sample==nil) {
sample = [[NSMutableArray alloc]init];
}
}
void method2(){
if (sample==nil) {
sample = [[NSMutableArray alloc]init];
}
}
@end
注意:您不能在c函数中使用objective-c实例变量