我正在使用 Core Motion 的推送处理程序进行加速度计更新:
CMAccelerometerHandler accelerometerHandler = ^ (CMAccelerometerData *accelerometerData, NSError *error) {
// handle update
};
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:[[accelerometerHandler copy] autorelease]];
此代码崩溃。如果我根本不复制该块,我会在暂停/恢复时间歇性崩溃。如果我删除autorelease
它工作正常,但我认为这会产生泄漏。
我还尝试将块分配给 ivar 并在[motionManager stopAccelerometerUpdates]
. 崩溃也一样。
怎么会?我一直认为我必须平衡任何copy
/retain
与release
/ autorelease
?