0

私はiOSを初めて使用します。ビューコントローラにつながるprepareforsegueメソッドのビューコントローラにブール値を設定しようとしています。ブール値を設定しようとすると、EXC_BAD_ACCESSエラーが発生します。この問題を解決するにはどうすればよいですか?

   addBookViewController  *addViewController = [segue destinationViewController];
   Book *temp = [self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row];
   addViewController.book = temp;
   *addViewController.editMode=YES; //EXC_BAD_ACCESS (Code =0, address=0x0)

宛先ViewControllerのヘッダーファイルは次のとおりです。

   @interface addBookViewController : UITableViewController <UITextFieldDelegate>
    @property (strong, nonatomic) Book *book;
    @property (assign) BOOL *editMode;
    @end
4

4 に答える 4

2

BOOLオブジェクトタイプではなく、プリミティブ(スカラー)です。それへのポインタは必要ありません。変化する

@property (assign) BOOL *editMode;

の中へ

@property (assign) BOOL editMode;

そしてまた変化する

*addViewController.editMode=YES;

addViewController.editMode=YES;

Cポインタに関するチュートリアルを読んでください。

于 2012-10-30T23:51:48.727 に答える
1

BOOLはクラスではなく、intやfloatのような単純な型です。アスタリスクを削除します。

于 2012-10-30T23:51:06.320 に答える
0

それ以外の

*addViewController.editMode=YES;

そのはず

addViewController.editMode=YES;

また、

@property (assign) BOOL *editMode;

しかし

@property (readwrite,assign) BOOL editMode;
于 2012-10-30T23:51:59.197 に答える
0

BOOLはオブジェクトではないため、ポインターにyes/noを定義することはできません。

于 2012-10-30T23:52:16.430 に答える