Iphone 从方法中设置的属性访问值到另一个方法
我想获取此委托方法内的结果点的值Iphone 从方法中设置的属性访问值到另一个方法,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我想获取此委托方法内的结果点的值 - (void)perksDetailsViewController:(PerksDetailsViewController *)sender didPassRequiredPoints:(NSNumber *)requiredPoints withCard:(Card *)selectedCard { double perksPoints = [requiredPoints doubleValue]; self.resultingPoin
- (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);
}
这很好,但是当我尝试访问下面方法中的resultingPoints时,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);
}
从第一个方法中获得结果点值的好方法是什么?
提前谢谢
编辑:
日志输出
2012-05-02 15:47:48.297卡钱包[22196:f803]剩余900分
2012-05-02 15:47:49.291 CardWallet[22196:f803]hey points left是(空)从您上次的评论: 这是它的属性声明
@property(非原子,弱)NSNumber*resultingPoints代码>
这可能是你问题的根源。弱属性将被解除分配并设置为nil
,如果没有其他内容保留它,这里就是这种情况。使其成为一个强属性,当您按下新的视图控制器时,它仍然存在
根据您在chat中提供的详细信息,您实际上正在处理这个类的两个不同实例。一个在屏幕上,另一个用作代理
分配代理时,必须确保它与屏幕上的对象相同。这最好在prepareForSegue中完成,此时segue的目标视图控制器是即将出现的视图控制器 只需尝试-(void)didPressDone:(id)发送方{NSLog(@“hey points left is%@),self.resultingPoints);pointsResults IEWController*pointsResults=[self.storyboard InstanceeviewcontrollerWithiIdentifier:@“resultsPointsVC”];pointsResults.leftPointsLabel.text=[self.resultingPoints stringValue];[self.navigationController pushViewController:pointsResults动画:是];}它只是didPressDone方法的一个副本:|不,它在逻辑上有数据引用。只有在推送视图之后才将值放入leftpointslabel。在推送视图之前,必须尝试设置该值。第一个方法相对于第二个方法何时被调用?这些方法在应用程序中代表什么过程?看起来像t第一个方法是委托方法,第二个方法正在启动一个新的视图控制器,但不清楚什么会去哪里。@jrturton第一个Yep2你是对的。首先调用委托方法,然后第二个方法是我为UIBarButton所做的自定义方法。我希望值resultingPoints传递到下一个视图控制器的标签值。我将其更改为strong,但是,didPressDone方法的NSLog仍然显示resultingPoints为零:(请注意,委托方法的功能很好,它可以进行计算。我只想知道为什么在didPressDone中结果点为空。没有别的,只有在这些方法中使用了结果点。让我们看看如何将.m文件放入粘贴箱?很抱歉,这只是我第一次知道这件事。