内存管理

来源:互联网 发布:java sort排序算法 编辑:程序博客网 时间:2024/05/01 23:19

内存管理

当数组中的对象释放之后, 会给数组中所有的对象发送一条release消息
当数组移除之后, 也会给数组里面的所哟对象发送一条release消息

CF的内存管理

CoreFoundation中, 凡是带有Create, Copy, Retain字眼的函数创建出来的对象, 都要在最后做一次Release. 比如CFRunLoopAddObserver, 后面就要CFRelease()

char *aaaa = "ssssssss";NSLog(@"retainCount = %ld, %p", (long)_objc_rootRetainCount(aaaa), aaaa);NSString *s = @"test";NSLog(@"retainCount = %ld, %p", _objc_rootRetainCount(s), s);

// NSLog(@”retainCount= %ld”, [s retainCount]);

NSString *sNSString = [NSString stringWithFormat:@"%s", "test"];NSLog(@"retainCount = %ld, %p", _objc_rootRetainCount(sNSString), sNSString);

// NSLog(@”retainCount= %ld”, [sNSString retainCount]);

NSString *s2 = [NSString stringWithString:[NSString stringWithFormat:@"testkkkk"]];NSLog(@"retainCount = %ld, %p", _objc_rootRetainCount(s2), s2);

// NSLog(@”retainCount= %ld”, [s2 retainCount]);

CGFloat aaa = 2.2;NSLog(@"retainCount = %ld, %p", _objc_rootRetainCount(aaa), aaa);NSString *s1fff = [NSString stringWithString:@"test"];NSLog(@"retainCount = %ld, %p", _objc_rootRetainCount(s1fff), s1fff);

PJAlertView[67652:1221733] retainCount = 1, 0x10b773d19
PJAlertView[67652:1221733] retainCount = 1, 0x10b774250
PJAlertView[67652:1221733] retainCount = -6917528996381567164, 0xa000000747365744
PJAlertView[67652:1221733] retainCount = 1, 0x600000058270
PJAlertView[67652:1221733] retainCount = 1, 0x7fff5448d898
PJAlertView[67652:1221733] retainCount = 1, 0x10b774250

为什么是这样, 没有搞明白! 求讨论, 求解答.
我猜测是内存管理不针对于文字常量区. retainCount不能作为文字常量区的引用计数.

0 0
原创粉丝点击