0

はい、私はこの質問がここで非常に人気があり、この質問に対して多くの回答が与えられていることを知っています. しかし、私はそれを長い間行うことはできません。

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

へのポインタBOOLではなく、として宣言します。 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 に答える