Guy*_*ood 1 iphone memory-management objective-c
大家好,
如果您不止一次重复以下代码会发生什么?
pointer * mypointer = [[object alloc]init];
Run Code Online (Sandbox Code Playgroud)
您是否只是再次将该对象的保留计数增加一个?
谢谢,
马丁
您不会增加保留计数 - 只有retain消息在分配的对象上执行此操作.由于您要复制pointer * mypointer类型声明,因此多次运行该确切代码实际上会出错.但是,如果你有(例如):
pointer * mypointer = [[object alloc] init];
mypointer = [[object alloc] init];Run Code Online (Sandbox Code Playgroud)
你可能会object在内存中创建两个实例,每个实例都处于自己的位置,并且你将丢失第一个mypointer实例(现在包含对第二个实例的引用object).实际上,这是一个泄漏.
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |