繁体   English   中英

EXC_BAD_ACCESS错误

[英]EXC_BAD_ACCESS Error

当我运行这段代码

NSString *string = [NSString stringWithFormat:@"http://makrr.com/*****/****/*****/****/%@.mp3", [data objectForKey:@"location"]];`  

我正在获取EXC_BAD_ACCESS。 [data objectForKey:@“ Location”]是一个NSCFString。

EXC_BAD_ACCESS表示您正在尝试访问已从内存中释放的数据。 最有可能的是,您忘记了沿途将data对象保留在某个位置,或者用于键“ location”的对象被释放了太多次。 没有更多的上下文代码,很难确切地说明问题所在。

这是一个带有一些答案的问题,可以对EXC_BAD_ACCESS很好的解释。

我不确定EXC_BAD_ACCESS的来源,但是由于NSString是一个类集群,以及其他基金会类型(如NSNumber和NSArray),因此编译器正在读取[data objectForKey:@"Location"]作为NSCFString:

类集群是Foundation框架广泛使用的一种设计模式。 类集群将一些私有的具体子类归为一个公共的抽象超类。 以这种方式对类进行分组可简化面向对象框架的公共可见架构,而不会降低其功能丰富性。 类群集基于“可可设计模式”中讨论的抽象工厂设计模式。

[data objectForKey:@"Location"]最有可能被释放了太多次并被释放。 这可能会导致错误EXC_BAD_ACCESS 您应该仔细检查内存管理,以查看它没有被自动释放(或手动释放)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM