gpt4 book ai didi

ios - 从不同的类访问类变量

转载 作者:行者123 更新时间:2023-11-28 21:43:15 25 4
gpt4 key购买 nike

一个非常普遍的通用问题,但似乎每个人都对访问属于另一个类的变量有自己的看法。我想要的是在 class2 中使用 bool 变量来执行语句。我想要的例子是:

Class1.h
@Interface Class1{
bool boolean;
}

@Property (nonatomic, retain) bool boolean;

Class1.m
@synthesize boolean;


Class2.m
if(class1.boolean == YES){
Do Something
}

if 语句 is class2 似乎不起作用,因为我试图在 class2 中打印 bool 值,但它返回的所有内容都是 false。我想获取 class1 bool 变量的当前值并在不初始化它的情况下在 class 2 中使用它。

最佳答案

从你的问题来看,你似乎想在另一个类中创建一个 'Class1' 的实例,获取要在那里显示的属性值。

在这种情况下,无论何时实例化“Class1”,它都会带有初始值。这意味着这些值肯定是“null”。如果你想得到变化的值,你需要创建'Class1'作为Singleton类,这个类在整个应用程序中会被实例化一次。意味着在任何类中更改“boolean1”的值,并在您需要的任何时间或任何地点在另一个类中获取相同的值。

但同样,这完全取决于您希望如何使用整个东西。

单例示例:

// Class1.h
@interface Class1 : NSObject

/**
* A boolean property
*/
@property (nonatomic, strong) BOOL *boolean;


// Class1.m
@implementation Class1

// This is actual initialisation of the class instance.
+ (Class1 *)sharedInstance {
static Class1 *sharedInstance = nil; //static property, so that it can hold the changed value
// Check if the class instance is nil.
if (!sharedInstance) {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// If nil, create the instance, using dispatch_once, so that this instance never be created again. So, if needed, app will use the existing instance.
sharedInstance = [[super allocWithZone:NULL] init];
// custom initialisation if needed

});
}
return sharedInstance;
}

// So that, if somebody uses alloc and init, a new instance not created always.
// Rather use existing instance
+ (id)allocWithZone:(NSZone *)zone {
return [self sharedInstance];
}

// So that, if somebody uses alloc and init, a new instance not created always.
// Rather use existing instance
- (id)copyWithZone:(NSZone *)zone {
return self;
}

@end

现在更新和使用该值。

//Class2.m

#import "Class1.h"

Class1 *myinstance = [[Class1 alloc] init];
myinstance.boolean = YES;

获取另一个类的值

//Class3.m

#import "Class1.h"

Class1 *myinstance = [[Class1 alloc] init];
if(myinstance.boolean == YES){
Do Something
}

关于ios - 从不同的类访问类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31263077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com