在视图控制器之间传递数据(是的,我知道......)

时间:2013-11-14 17:08:27

标签: ios objective-c

是的,我知道这个问题在这里非常受欢迎,并且已经为这个问题提供了很多答案,是的,我来到Passing Data between View Controllers。但是我很长时间都做不到。

在ViewControllerB.h中

我为BOOL创建了一个属性

@property(nonatomic) BOOL *someBool;

ViewControllerA.m:

#import "ViewControllerB.h"

ViewControllerB *viewControllerB = [[ViewControllerB alloc] init];
viewControllerB.someBool = YES;
[self.navigationController pushViewController:viewControllerB  animated:YES];

在ViewControllerB.m中ViewDidLoad:

NSLog(@"%@", self.someBool);

但xCode在这一行给我错误(NSLog(@“%@”,self.someBool);)并说:Thread 1:EXC_BAD_ACCESS (code =2)。我做错了什么?

3 个答案:

答案 0 :(得分:5)

你的属性是一个指针。它不应该。改变这个:

@property(nonatomic) BOOL *someBool;

为:

@property(nonatomic) BOOL someBool;

日志应该是:

NSLog(@"%d", self.someBool);

仅对对象使用%@

答案 1 :(得分:2)

将其声明为BOOL,而不是指向 BOOL指针:

@property(nonatomic) BOOL someBool;

答案 2 :(得分:1)

您需要将其声明为基元并通过将其包装为NSNumber

来删除*或将其存储为对象

@property (strong, nonatomic) NSNumber *someBool

然后你写someBool.boolValue来抓住它的价值