gpt4 book ai didi

objective-c - alloc 和 allocWithZone :? 有什么区别

转载 作者:IT老高 更新时间:2023-10-28 11:34:57 26 4
gpt4 key购买 nike

来自 forum discussion ,似乎最大的区别是性能因素, allocWithZone: 将从特定内存区域分配内存,从而降低交换成本。

在实践中,几乎没有机会使用 allocWithZone: ,任何人都可以举一个简单的例子来说明使用 allocWithZone: 的情况?

谢谢,

最佳答案

When one object creates another, it’s sometimes a good idea to make sure they’re both allocated from the same region of memory. The zone method (declared in the NSObject protocol) can be used for this purpose; it returns the zone where the receiver is located.

这向我表明,您的 ivars 以及您的类自己“创建”的任何对象都可以通过这种方式使用 +allocWithZone: 来创建它们在同一区域中创建的实例。

-(id)init {
if (self = [super init]) {
someIvar = [[SomeOtherClass allocWithZone:[self zone]] init];
}

return self;
}

关于objective-c - alloc 和 allocWithZone :? 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com