[英]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.