我实际上并没在我的应用程序中使用加速计,但是这个警告是我在构建过程中唯一得到的警告。我想纠正它或消除它。此警告将我引导至CCLayer.m cocos2d原始文件。有关UIAccelerometer弃用的4个警告。
(LINES 91& 93是警告开始的地方)! UIAccelerometer在iOS 5.0中已弃用 - UIAccelerometer已被CoreMotion框架取代
85:-(void) setIsAccelerometerEnabled:(BOOL)enabled
86:{
87: if( enabled != isAccelerometerEnabled_ ) {
88: isAccelerometerEnabled_ = enabled;
89: if( isRunning_ ) {
90: if( enabled )
91: [[UIAccelerometer sharedAccelerometer] setDelegate:self];
92: else
93: [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
94: }
95: }
96:}
当我深入研究警告时,它会让我更深入地了解UIAccelerometer.h UIKit
让别人有这个问题吗?怎么处理呢?我应该忽略它吗?任何建议将不胜感激。谢谢,贾斯汀
答案 0 :(得分:5)
2.1版的Cocos2d-iphone尚未更新为与iOS 7完全兼容。
就加速度计而言,您可以安全地注释掉UIAccelerometer的所有参考/使用。如果您确实需要在应用中使用加速度计,请使用CMMotionManager。
或者你可以使用Kobold2D,github version包含对cocos2d-iphone的必要修复。
答案 1 :(得分:0)
我个人并不是Kobold2d如何“解决”这个问题的最大粉丝。他们用禁用警告的编译指示包装代码。就个人而言,我更愿意提出用CoreMotion类替换已弃用的代码更好。
保持单例类的可用性;使用这个答案:How do I initialize CMMotionManager globaly to be used by different classes? 然后在第32行的CCLayer.h中导入MotionManagerSingleton.h 接下来在CCLayer.m中使用对此类的新调用替换看起来像UIAccelerometer的所有内容,并且它运行良好。