'UIAccelerometer' is deprecated:first deprecated in iOS 5.0-UIAccelerometer has replaced by the CoreMotion framework
2013-10-31 11:18
597 查看
iOS7中,原来在项目中,使用的筛子振动的类是UIAccelerometer。运行iOS7后,会报一个警告。
意思大概是说UIAccelerometer在iOS5.0之后就被CoreMotion framework框架给取代了。
我是这样解决的:用CoreMotion framework框架来替代,
1,导入
#import <CoreMotion/CoreMotion.h>
2,并声明为全局变量(或者属性),
CMMotionManager *_manager;
3,然后在初始化的时候生成,并设置更新频率,启动更新
_manager = [[CMMotionManager alloc]init];
_manager.accelerometerUpdateInterval=1.0/60.0;
[_managerstartAccelerometerUpdates];
4,启动一个定时器,时刻检测振动状态
[NSTimer scheduledTimerWithTimeInterval:1.0/60.0target:selfselector:@selector(shackAction) userInfo:nilrepeats:YES];
5,在定时器方法里,时刻判断加速计的x,y,z的便宜,超过一定程度即为筛子振动。
if (fabsf(_manager.accelerometerData.acceleration.x) > 2.0 || fabsf(_manager.accelerometerData.acceleration.y) > 2.0 || fabsf(_manager.accelerometerData.acceleration.z) > 2.0)
6,当你不需要的时候,记得停止更新。
[_manager stopAccelerometerUpdates];
7,这样即可解决。
意思大概是说UIAccelerometer在iOS5.0之后就被CoreMotion framework框架给取代了。
我是这样解决的:用CoreMotion framework框架来替代,
1,导入
#import <CoreMotion/CoreMotion.h>
2,并声明为全局变量(或者属性),
CMMotionManager *_manager;
3,然后在初始化的时候生成,并设置更新频率,启动更新
_manager = [[CMMotionManager alloc]init];
_manager.accelerometerUpdateInterval=1.0/60.0;
[_managerstartAccelerometerUpdates];
4,启动一个定时器,时刻检测振动状态
[NSTimer scheduledTimerWithTimeInterval:1.0/60.0target:selfselector:@selector(shackAction) userInfo:nilrepeats:YES];
5,在定时器方法里,时刻判断加速计的x,y,z的便宜,超过一定程度即为筛子振动。
if (fabsf(_manager.accelerometerData.acceleration.x) > 2.0 || fabsf(_manager.accelerometerData.acceleration.y) > 2.0 || fabsf(_manager.accelerometerData.acceleration.z) > 2.0)
6,当你不需要的时候,记得停止更新。
[_manager stopAccelerometerUpdates];
7,这样即可解决。
相关文章推荐
- iOS---stringByAddingPercentEscapesUsingEncoding:' is deprecated: first deprecated in iOS 9.0 - Use -stringByAddingPercentEncodingWithAllowedCharacters: instead,
- 'addTimeInterval:' is deprecated: first deprecated in iOS 4.0
- iOS一个'initWithRequest:delegate:' is deprecated: first deprecated in iOS 9.0 - Use NSURLSession (see NSURLSession.h) Warning引发的思考
- 'minimumFontSize' is deprecated: first deprecated in iOS 6.0
- 'sizeWithFont:' is deprecated: first deprecated in iOS 7.0 - Use -sizeWithAttributes:
- UITextAlignmentCenter' is deprecated: first deprecated in iOS 6.0
- [问题记录]'dismissModalViewControllerAnimated:' is deprecated: first deprecated in iOS 6.0
- "dismissModalViewControllerAnimated" is deprecated : first deprecated in iOS 6.0
- 'UITextAlignmentRight' is deprecated: first deprecated in ios6.0
- sizeWithFont:constrainedToSize:' is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithS
- 出现 Assigning the return value of new by reference is deprecated in xxxx &&“Warning: Call-time pass-by-reference has been deprecated”怎么办?
- UIAlertView' is deprecated: first deprecated in iOS 9.0 - UIAlertView is deprecated. Use UIAlert
- 'UITextAlignmentCenter' is deprecated: first deprecated in iOS 6.0设置UILabel的居中对齐时出错
- 显示Deprecated: Assigning the return value of new by reference is deprecated in解决办法
- laravel 报错:Namespace declaration statement has to be the very first statement in the script
- php5.3 中显示Deprecated: Assigning the return value of new by reference is deprecated in 的解决方法
- iOS常见问题之 The 'Apple Developer Program License Agreement' has been updated. In order to access certai
- 【邂逅BUG】Namespace declaration statement has to be the very first statement in the script
- ecshopv2.7.3 商品批量上传中出错:Assigning the return value of new by reference is deprecated in
- cString is deprecated :first deprecated in iOS 2.0