以下是我在vievDidLoad中的代码

CMMotionManager *motionmanager = [[[CMMotionManager alloc]init]autorelease];

NSString string1 = [NSString stringwithFormat:@"%s", ([motionmanager.isGyroAvailable} ? @"Available" : @"Not Available"));


在Instruments中,我在XCode 4.5中引用CMMotionManagerInternal遇到内存泄漏
我的代码有什么问题?

最佳答案

CMMotionManager行看起来不错,但是当您停止从引用中更新数据时,应该考虑保留引用(将其设置为实例变量而不是自动释放),并手动释放CMMotionManager

另一行让我更加困扰。你有

NSString string1 = [NSString stringwithFormat:@"%s", ([motionmanager.isGyroAvailable} ? @"Available" : @"Not Available"));


虽然您应该拥有:

NSString *string1 = [NSString stringwithFormat:@"%@", ([motionmanager.isGyroAvailable} ? @"Available" : @"Not Available"));


因此string1应该是指针,格式为@"%@"而不是@"%s"

关于iphone - CoreMotion中的内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12722183/

10-09 17:59