黑马程序员技术交流社区

标题: OC中MRC内存管理问题 [打印本页]

作者: 曦正    时间: 2016-2-22 18:14
标题: OC中MRC内存管理问题
在MRC模式下,如果不在自动释放池里的话,任何对象都需要自己去调用release方法
但是作为NSString也是一个对象,那么我们平时创建一个字符串的话也是相当于创建了一个NSString对象
当我们不去使用这个字符串的时候,我们理所当然就应该把这个对象销毁掉
我创建了一个NSString分类,并对dealloc方法进行重写
  1. -(void)dealloc{
  2.    
  3.     NSLog(@"is over");
  4.    
  5.     [super dealloc];
  6. }
复制代码
然后在main函数里面去执行
  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"
  3. int main(int argc, const char * argv[]) {

  4.    
  5.     NSString* str =@"asc";
  6.    
  7.     [str release];
  8.     return 0;
  9. }
复制代码
发现并不会执行NSString的一个dealloc方法
________________________________________________________________________________________
__________这个究竟是为什么呢???难道上面那个字符串是在常量区不用销毁??
________________________________________________________________________________________



作者: 一个疯子    时间: 2016-2-24 00:43
nsstring是oc的基础数据类型,并没有retainCount
作者: 曦正    时间: 2016-2-24 17:59
这样吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2