mie*_*tus 2 iphone pointers release objective-c
我不知道如何删除指针而不是对象,例如:我有一些类:
@interface model : NSObject {
NSMutableArray *tab;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时:
model1 = [[model alloc]init];
NSMutableArray * tab2 = [model1 tab];
...
some operations
...
Run Code Online (Sandbox Code Playgroud)
我想只删除指向我的标签的指针,它是*tab2,但是当我发布tab2时,标签也会释放.在c ++中,当我清除时,我这样做:
int a =10;
*w = &a;
Run Code Online (Sandbox Code Playgroud)
当我删除指针时
delete w;
Run Code Online (Sandbox Code Playgroud)
变量a仍然在内存中,这没关系.我应该在obj-c中只删除一个指针?
在Objective-C的情况下,没有理由删除指针.只是让它超出范围.你没有分配任何新的objets.你没有复制标签.你没有保留它.您只是创建另一个指向原始选项卡对象的指针.如果你愿意,你可以设置,tab2 = nil但这两种方式并不重要.
在您的第二个C++示例中,我不确定,但您可能会陷入未定义的行为,因为您提供的代码示例实际上适用于您测试的编译器!删除未创建的指针是无效的C++ new.
| 归档时间: |
|
| 查看次数: |
1413 次 |
| 最近记录: |