我有以下形式的ARC代码:
NSMutableData* someData = [NSMutableData dataWithLength:123];
...
CTRunGetGlyphs(run, CGRangeMake(0, 0), someData.mutableBytes);
...
const CGGlyph *glyphs = [someData mutableBytes];
...
...后面是从 中读取内存glyphs
但不执行任何操作的代码,someData
不再引用。请注意,CGGlyph 不是对象类型,而是无符号整数。
我是否必须担心someData
在我完成之前可能会释放内存glyphs
(实际上只是指向内部someData
)?
所有这些代码都在同一个范围内(即单个选择器),glyphs
并且someData
都同时超出范围。
PS 在这个问题的早期草稿中,我提到了“垃圾收集”,它并不真正适用于我的项目。这就是为什么下面的一些答案将其与 ARC 下发生的事情同等对待。