当我运行这段代码EXC_BAD_ACCESS错误
NSString *string = [NSString stringWithFormat:@"http://makrr.com/*****/****/*****/****/%@.mp3", [data objectForKey:@"location"]];`
即时得到一个EXC_BAD_ACCESS。 [data objectForKey:@“Location”]是一个NSCFString。
当我运行这段代码EXC_BAD_ACCESS错误
NSString *string = [NSString stringWithFormat:@"http://makrr.com/*****/****/*****/****/%@.mp3", [data objectForKey:@"location"]];`
即时得到一个EXC_BAD_ACCESS。 [data objectForKey:@“Location”]是一个NSCFString。
我不知道在哪里的EXC_BAD_ACCESS
是从哪里来的,但是编译器读取[data objectForKey:@"Location"]
为NSCFString因为NSString
是一类集群,与其他基金类型,如NSNumber的和沿的NSArray:
类集群是Foundation框架 广泛使用的设计模式。类簇将公共抽象超类下的一些私有, 具体子类组合在一起。以这种方式分组的类别 简化了面向对象框架的公开可见体系结构,而不减少其功能丰富性。 类集群是基于中讨论的抽象工厂设计模式 “可可设计模式。”
最有可能的,[data objectForKey:@"Location"]
已经发布了太多次,并已释放。这可能会导致错误EXC_BAD_ACCESS
。你应该仔细检查你的内存管理,看看它没有被自动发布(或手动发布)。
EXC_BAD_ACCESS
表示您试图访问已从内存中释放的数据。很可能,您忘记了将对象保留在某处,或者“位置”对象的对象被释放了太多次。没有更多上下文的代码,很难确切地说明问题是什么。
Here's a question有几个答案,提供了EXC_BAD_ACCESS
的很好的解释。
没有什么是固有的错误,你需要显示更多的代码。 – jtbandes