【问题标题】:EXC_BAD_ACCESS accessing an NSMutableDataEXC_BAD_ACCESS 访问 NSMutableData
【发布时间】:2011-05-20 09:04:46
【问题描述】:

当我试图访问数据时,我得到一个 EXC_BAD_ACCESS,我想这是因为我试图访问内部数据,但我不知道如何解决这个问题,代码:

//data->NSMutableData

int identi;

[data getBytes:&identi];
NSLog(@"identificador: %i",identi);

【问题讨论】:

  • 当您编写“&identi”时,您似乎正在尝试取消引用 int 类型。那不应该是数据 getBytes:identi 吗?

标签: iphone objective-c ios tcp nsmutabledata


【解决方案1】:

根据documentation

在 Mac OS X v10.6 中已弃用。这 方法是不安全的,因为它可以 可能导致缓冲区溢出。你 应该使用 getBytes:length: 或 getBytes:range: 代替。

方法是,

- (void)getBytes:(void *)buffer

参数:缓冲区

将接收者的数据复制到其中的缓冲区。缓冲区必须至少是长度字节。

您正在尝试将接收器数据保存到 identi,一个 int 值。

【讨论】:

  • 谢谢解决问题,代码:int identi; [数据getBytes:&identi长度:4]; NSLog(@"identificador: %i",identi);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
相关资源
最近更新 更多