内存管理与对象复制知识详解
1. 自动释放示例及内存管理规则
在编程中,我们常常会遇到对象的内存管理问题。为了更好地理解这些问题,下面通过一个具体的自动释放示例来进行说明。
#import <Foundation/Foundation.h>
@interface Foo: NSObject
{
int x;
}
@end
@implementation Foo
@end
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Foo *myFoo = [[Foo alloc] init];
NSLog (@"myFoo retain count = %lx", (unsigned long) [myFoo retainCount]);
[pool drain];
NSLog (@"after pool drain = %lx", (unsigned long) [myFoo retainCount]);
pool = [[NSAutoreleasePool alloc] init];
[myFoo autorelease];
NSLog (@"after autorelease = %lx", (unsigned long) [myFoo retainCount]);
[myFoo retain];
NSLog (@"after retain = %lx", (unsigned long) [myFoo
超级会员免费看
订阅专栏 解锁全文
1096

被折叠的 条评论
为什么被折叠?



