gpt4 book ai didi

iphone - 从一个方法中设置的属性访问另一个方法的值

转载 作者:行者123 更新时间:2023-11-29 04:40:55 25 4
gpt4 key购买 nike

我想获取此委托(delegate)方法内的 resultPoints 的值

- (void)perksDetailsViewController:(PerksDetailsViewController *)sender didPassRequiredPoints:(NSNumber *)requiredPoints withCard:(Card *)selectedCard 
{

double perksPoints = [requiredPoints doubleValue];

self.resultingPoints = [NSNumber numberWithDouble:[selectedCard subtractPoints:perksPoints] ];

NSLog(@"points remaining %@", self.resultingPoints);
}

这工作正常,但是当我尝试访问下面方法中的 resultPoints 时,resultingPoints 有一个空值,正如我放置的 NSLog 所说。

- (void) didPressDone:(id)sender {

PointsResultsViewController *pointsResults = [self.storyboard instantiateViewControllerWithIdentifier:@"resultsPointsVC"];

[self.navigationController pushViewController:pointsResults animated:YES];

pointsResults.leftPointsLabel.text = [self.resultingPoints stringValue];

NSLog(@"hey points left is%@", self.resultingPoints);
}

从第一个方法获取 resultPoints 值的好方法是什么?提前致谢。

编辑:日志输出

2012-05-02 15:47:48.297 CardWallet[22196:f803]积分剩余900

2012-05-02 15:47:49.291 CardWallet[22196:f803] 嘿剩下的点是(null)

最佳答案

来自您的最后评论:

this is it's property declaration @property (nonatomic, weak) NSNumber *resultingPoints;

这可能是您问题的根源。如果没有其他东西保留弱属性,则该属性将被释放并设置为 nil,这里就是这种情况。使它成为一个强大的属性,当您推送新的 View Controller 时它仍然存在。

根据您在聊天中提供的详细信息,您实际上正在处理此类的两个不同实例。一个在屏幕上,一个用作代理。

分配委托(delegate)时,您必须确保它与屏幕上的对象是同一对象。当segue的目标 View Controller 是即将出现的 View Controller 时,最好在prepareForSegue中完成此操作。

关于iphone - 从一个方法中设置的属性访问另一个方法的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10407847/

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