gpt4 book ai didi

objective-c - 为什么我的方法为同一变量返回不同的值

转载 作者:行者123 更新时间:2023-12-03 17:57:34 25 4
gpt4 key购买 nike

我有一个双重的时间。我无法确定为什么我可以将 double 值传递给另一个类中的方法,但相同的方法不能从它存在的类中请求所述 double 值。

我的头文件看起来像这样:

@property (nonatomic) double time;

我的实现是这样的:

@implementation MainVewController

@synthesize time;

- (void) viewDidLoad
{
startTime = NSDate.date;
}

- (double) returnTime {
NSLog (@"time is disappearing?? %f", time);
return time;
}

- (double) logTime {
NSLog (@"for some reason, this one is working and returns a value %f", time);
return time;
}

我的其他类(class)正在要求我的双倍:

@synthesize mainViewController = _mainViewController ;

- (MainViewController *)mainViewController {
if (!_mainViewController) _mainViewController = [[MainViewController alloc] init];
return _mainViewController;
}

- (BOOL)getTime {
double timeGotten = [self.mainViewController returnTime];
// why does this return 0?
return TRUE;
}

时间变量在 MainVewController 中不断更新:

time = [[NSDate date] timeIntervalSinceDate: startTime];

最佳答案

当你的“其他类”第一次请求 self.mainViewController 时,它会创建一个新的。我在这里猜测,但是,由于它被称为 MainViewController,因此在“其他类”创建自己的新类之前可能已经存在其中一个。

第一个 MainViewController 可能是更新发生的地方。

关于objective-c - 为什么我的方法为同一变量返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11128112/

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