0

是的,我知道这个问题在这里很受欢迎,并且已经给出了很多关于这个问题的答案,是的,我在这里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)。我究竟做错了什么?

4

3 回答 3

5

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

@property(nonatomic) BOOL *someBool;

至:

@property(nonatomic) BOOL someBool;

日志应该是:

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

%@与对象一起使用。

于 2013-11-14T17:09:33.983 回答
2

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

@property(nonatomic) BOOL someBool;
于 2013-11-14T17:09:26.110 回答
1

您要么需要将其声明为原语并摆脱 * 或通过将其包装为对象来将其存储为对象NSNumber

@property (strong, nonatomic) NSNumber *someBool

然后你会写someBool.boolValue来获取它的价值

于 2013-11-14T17:11:46.617 回答