Objective c 如果释放一个未分配的对象会发生什么?

Objective c 如果释放一个未分配的对象会发生什么?,objective-c,Objective C,如果释放一个未分配的对象会发生什么 例如: NSString *value = @"hello World!"; [value release]; 没什么,字符串文字在内存管理方面很特别。检查。正如sydill所说,字符串文本是不同的,因为它们不需要分配或释放 释放其他未分配的对象OTOH,以及非文本的NSSTRING,很可能会导致异常。因此可能会导致异常。错误访问异常:在运行时是的,它很可能抛出ECX\u bad\u ACC异常。它有点取决于指针中的值,该值只是未定义的。它很可能是完全的

如果释放一个未分配的对象会发生什么

例如:

NSString *value = @"hello World!";

[value release]; 

没什么,字符串文字在内存管理方面很特别。检查。

正如sydill所说,字符串文本是不同的,因为它们不需要分配或释放


释放其他未分配的对象OTOH,以及非文本的NSSTRING,很可能会导致异常。

因此可能会导致异常。错误访问异常:在运行时是的,它很可能抛出ECX\u bad\u ACC异常。它有点取决于指针中的值,该值只是未定义的。它很可能是完全的垃圾,但很可能是另一个对象的地址,可能会被释放(太早,但没有异常),也可能是nil,NULL,这将导致不可操作。这一切都取决于堆栈的该部分以前包含了什么。