gpt4 book ai didi

ios - 将分配的缓冲区添加到 NSMutableDictionay

转载 作者:行者123 更新时间:2023-11-29 03:58:16 25 4
gpt4 key购买 nike

是否可以使用 malloc 将动态分配的缓冲区添加到 NSMutableDictionary,然后直接在添加后释放它。这是正确的吗?

最佳答案

不,这非常非常糟糕。一旦调用 free,操作系统就可以重新使用内存,因此任何对缓冲区的使用都是不好的。

如果您想将数据放入可变字典中,请使用 NSData。

如果由于某种原因你需要存储一个 malloc 的缓冲区(例如,你从库中获取它),你需要将它包装在一个对象类中。

然后,您可以从包装器对象的 dealloc 中调用 free,因此在释放包装器对象之前不会调用 free(释放字典后将由 ARC 处理。

@interface MallocedMemoryWrapper

@property ( nonatomic, assign) void* wrappedMemory;
@end

@implementation MallocedMemoryWrapper
- (MallocedMemoryWrapper*) initWithMemory:(void*) memory {

self.wrappedMemory = memory;
}

- (void) dealloc {
free( self.memory);
}
@end

}

关于ios - 将分配的缓冲区添加到 NSMutableDictionay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212190/

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