CoreMotion中的内存泄漏

时间:2012-10-04 07:22:58

标签: iphone ios memory memory-leaks cmmotionmanager

以下是我在vievDidLoad中的代码

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

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

在Instruments中,我在XCode 4.5中引用CMMotionManagerInternal会导致内存泄漏 我的代码出了什么问题?

2 个答案:

答案 0 :(得分:1)

CMMotionManager行似乎没问题,但是你应该考虑保留引用(使其成为实例变量而不是自动释放它),并在停止更新数据时手动释放CMMotionManager

另一条线让我更烦恼。

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

虽然你应该:

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

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

答案 1 :(得分:0)

这似乎是模拟器中的一个错误。它在设备上正常工作。