Я начинаю кодировать с класса DeviceMotion.После выполнения документации Apple у меня есть следующее:
- (void)viewDidLoad {
[super viewDidLoad];
myMM = [[CMMotionManager alloc] init];
myMM.deviceMotionUpdateInterval = 1.0/30.0;
theQ = [[NSOperationQueue currentQueue] retain];
motionHandler = ^ (CMDeviceMotion *motionData, NSError *error) {
if (motionData.rotationRate.z > 5.5 || motionData.rotationRate.z < -5.5) {
NSLog(@"Rotation of Z."); // Reference A
}
};
-(IBAction)toggleClick{
NSLog(@"toggle");
if(myMM.gyroAvailable){
if(myMM.deviceMotionActive){
NSLog(@"Stopping Motion Updates..");
[myMM stopDeviceMotionUpdates];
} else {
NSLog(@"Starting Motion Updates..");
[myMM startDeviceMotionUpdatesToQueue:theQ withHandler:motionHandler];
}
}
else {
NSLog(@"No motion available. Quit!");
}
Этот код работает нормально, однако, когда я хочу сделать любой код, кроме NSLog (даже такой простой, как увеличение целого числа)) вместо «ссылки A» я получаю EXEC Bad Access в консоли.
Я огляделся по сторонам и обнаружил, что это какая-то утечка памяти.Кто-нибудь знает, что происходит?Если нет, как я могу понять это?Я довольно неопытен с инструментами, но если бы я указал в правильном направлении, я был бы очень признателен.