内存管理

内存管理

当数组中的对象释放之后, 会给数组中所有的对象发送一条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不能作为文字常量区的引用计数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值