是的,我知道这个问题在这里非常受欢迎,并且已经为这个问题提供了很多答案,是的,我来到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)
。我做错了什么?
答案 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
来抓住它的价值