1

以下是我在 vievDidLoad 中的代码

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

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

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

4

2 回答 2

1

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

另一条线更困扰我。你有

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

虽然你应该有:

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

所以string1应该是指针,格式@"%@"不是@"%s"

于 2012-10-04T08:13:13.600 回答
1

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

于 2013-02-07T18:28:08.187 回答