敬告:本文仅仅是一个供本人记录的临时学习笔记,毫无参考价值   const char* literal = "money"; char buf[64]={0}; strcpy(buf, literal); NSString* str1 =[NSString stringWithUTF8String:literal]; NSUInteger st
原创 2013-03-16 15:34:10
360阅读
转自:http://www.cocoachina.com/bbs/read.php?tid=175523realse之后再调用还能调用的的问题,我做了这么多年也是经常遇到,也曾经试图寻找原因,就像6楼说的,很多时候都会出现realse过后还能调用的现象。而且对象不是autorealse的。我还遇到过奇葩的是,每次要等上好几秒钟再调用才会出现空指针异常。(代码里绝对没有手动多线程)还有很多时候跟你测试的硬件环境还有关,可以说,ios的内存管理策略虽然一如既往的是一套,但是每个版本都有细微的变化,使用中还是能感觉出来,只是没有官方的说明,无法正确的解释。不过随着一些界面业务该用autoreleas
转载 2014-02-26 14:04:00
21阅读
2评论
http://www.cocoachina.com/bbs/read.php?tid-175523-page-1.htmliOS MRC 当retaincount = 1时,release后retainCount还是1,且还可以使用一次你说的是正常的情况下的理解方式。runloop说法对于新人来说还是不是很直接。另外realse之后再调用还能调用的的问题,我做了这么多年也是经常遇到,也曾经试图寻找
原创 2023-05-22 17:50:41
72阅读
retain----retainCount -1; nil----retainCount =0;1Retain,alloc,initint main(int argc, char *argv[]){ NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init]; SomeClass *object=[[SomeClass alloc] init]; NSLog(@"1,object retain count is :%d",[object retainCount]); [object retain]; NSLog(@&qu
原创 2021-07-23 09:45:20
196阅读
1. 回答person的retainCount值,并解释为什么Person * per = [[Person alloc] init]; 此时person 的retainCount的值是1self.person = per;在self.person 时,如果是assign,person的 retainCount的值不变,仍为1 若是:retain person的ret
原创 2014-10-19 17:06:28
452阅读
 performSelector消息会将讲接收者的引用计数retainCount加一   NSUInteger c = [self retainCount];//c为1 [self performSelector:@selector(process_one_job_item) withObject:nil afterDelay:0]; c = [self retai
原创 2013-03-15 12:04:16
491阅读
7.0之后,新建的工程默认都是ARC的(ARC:自动管理内存)Student 类:        Student * stu = [[Student alloc] init];打印当前对象的引用计数 使用retainCount方法        NSLog(@"结果是%lu",[stu retainCount]);//
原创 2014-03-31 16:26:43
436阅读
obj-c本质就是"改进过的c语言",大家都知道c语言是没有垃圾回收(GC)机制的(注:虽然obj-c2.0后来增加了GC功能,但是在iphone上不能用,因此对于iOS平台的程序员来讲,这个几乎没啥用),所以在obj-c中写程序时,对于资源的释放得由开发人员手动处理,相对要费心一些。引用计数这是一种古老但有效的内存管理方式。每个对象(特指:类的实例)内部都有一个retainCount的引用计数,对象刚被创建时,retainCount为1,可以手动调用retain方法使retainCount+1,同样也可以手动调用release方法使retainCount-1,调用rele
转载 2011-02-23 13:26:00
72阅读
2评论
本文主要是分析内存管理中的内存管理方案,以及retain、retainCount、release、deall
原创 2021-07-02 16:16:48
794阅读
1 ARC使用特点及注意事项不允许调用release,retain,retainCount允许重写dealloc方法,但是不允许调用[sup
原创 2022-04-22 11:00:24
29阅读
class Human { //8 type or isa //retainCount var age: Int?//16 var name: String?//16 var nicknames: [String] = [String]() //返回指向 Human 实例头部的指针 func hea
转载 2019-04-02 16:06:00
107阅读
2评论
iOS底层探索--内存管理1. 五大分区全局变量和局部变量在内存中是否有区别?有什么区别?Block中是否可以直接修改全局变量全局静态变量的修改2. TaggedPointer3.NONPOINTER_ISA的优化3. retain & release & retainCount & dealloc分析retain 和 release 分析RetainCount 分析de
//1, NSString *name = [[NSString alloc]initWithString:@"张三"]; NSLog(@"%d",[name retainCount]); //2014-11-27 20:43:20.290 OC考试错题[1750:303] -1 //...
原创 2022-04-12 16:04:39
242阅读
不會。除非父視圖release導致其retainCount歸零從而使其自動調用dealloc方法才會使子視圖release。
.
转载 2013-01-24 15:46:00
73阅读
2评论
- (void)fun { NSString* str = [[NSString alloc] initWithString:@"string"]; NSLog(@"%d", [str retainCount]); }可以看到 str的计数器为-1而把initWithString换成initWithFormat 计数器就是1------解决方案-----------------------
前言OC中的内存管理是通过引用计数器来实现的。一个对象的声明周期取决于它是否还没其他对象引用-即retainCount是否等于0。 但在有些情况下,我们并不希望对象的销毁时间由是否被其他对象应用来决定,而是这个对象本该是什么时候销毁就什么时候被销毁。因此引入强引用和弱引用的概念。概念强引用:当前对象被其他对象引用时,会执行retain,引用计数+1.当retainCount=0时,该对象才会被销毁
1. 内总管理原则(引用计数) IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的组
转载 2013-06-05 15:00:00
79阅读
2评论
今天遇到了几个和字符串相关的内存问题,和大家分享一下NSString *name = [[NSString alloc]initWithString:@"张三"];NSLog(@"%d",[name retainCount]);这两行代码的打印结果是-1,NSString * aString = [[NSString alloc] initWithFormat:@"123"]; NSLo
原创 2015-05-29 20:02:36
1568阅读
转自:http://blog.csdn.net/weiqubo/article/details/73761891. 内总管理原则(引用计数) IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组
转载 2013-01-29 09:42:00
159阅读
2评论
自己主动释放池@autorelease面试频率可能会吧release还要高。 (1)在自己主动释放池@autoreleasepool{}中alloc一个对象后(如p1)。仍然须要用[p1 autorelease];不过这个语句和[p1 release];不同。后者表示把p1的retainCount-
转载 2017-06-17 17:25:00
81阅读
2评论
  • 1
  • 2
  • 3