Ich fange an, mit der DeviceMotion-Klasse zu codieren. Nach dem folgende Apples documenation, habe ich folgende:iPhone Motion - EXC BAD ACCESS
- (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!");
}
Dieser Code funktioniert gut, aber wenn ich jeden Code außer einem NSLog (sogar etwas so einfach wie Inkrementieren eine ganze Zahl) anstelle der "tun will Referenz A ', bekomme ich einen EXEC Bad Access in der Konsole.
Ich habe mich umgesehen, und alles, was ich gefunden habe, ist, dass es ein Speicherleck von Arten ist. Weiß jemand was los ist? Wenn nicht, wie kann ich es herausfinden? Ich bin mit Instrumenten ziemlich unerfahren, aber wenn ich in die richtige Richtung zeige, würde ich sehr geschätzt werden.
Sie, Sir, sind ein Genie. Ich kopierte und klebte und arbeitete perfekt. Ich würde abstimmen, aber ich bin nur 13 rep :(.. Danke und glücklicher Dank. –