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)

这是目标视图控制器的头文件:

   @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 不是对象,因此您不能为指针定义是/否。

于 2012-10-30T23:52:16.430 回答