@property (nonomic,retain) CMMotionManager *motionManager; //delcare as a property.
motionManager = [[CMMotionManager alloc] init]; //init it.
motionManager.accelerometerUpdateInterval = 0.2f;
아래의 내용은 모두 주 스레드가 아닌 스레드에서 수행됩니다. 가속도계 데이터 사용시 메모리 누수
-(void)handle{
[motionManager startAccelerometerUpdates];
while (1) {
CMAcceleration acceleration = motionManager.accelerometerData.acceleration;
NSLog(@"%f %f %f",acceleration.x,acceleration.y,acceleration.z);
sleep(0.5);
}
}
내가 엑스 코드에서 응용 프로그램을 실행
-> 악기, I 앱 받았습니다 메모리 온난화 때까지 생활 메모리 uninterruptly 증가 을 발견하고 시스템에 의해 살해. 나는 블록 동안 가속도계 데이터를 relase하려고합니다. 그러나 효과가 없습니다. motionManager.accelerometerData release]; 내가 startAccelerometerUpdatesToQueue을 사용하지 않으은 : [NSOperationQueue currentQueue] withHandler : 나는 백그라운드에서 실행하려면, 그리고 becuase 응용 프로그램이 될 때^(CMAccelerometerData * accelerometerData, NSError * 오류),이 블록은 아무런 기능을하지 않습니다 매달린.
Can anyone help me?
screenshot image:http://img.blog.csdn.net/20130702120140593
@autorelease {...} 또는 NSAutoreleasePool을 사용하려고 시도하지만 문제가 항상 존재합니다. 내 프로젝트 URL : http://qq644531343.opendrive.com/files/Ml8yMjE0NjY3MV9kY2NUQl9mYWQ3/Testautoreleasepool.zip –
@LiuLiBo 내 편집 된 답변보기. :-) –
고맙습니다. 당신의 방법으로 문제가 해결되었습니다. –