V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
troyl
V2EX  ›  iDev

如何用 CMMotionManager 替换 UIAccelerometer?

  •  
  •   troyl · 2013-12-05 13:39:30 +08:00 · 4477 次点击
    这是一个创建于 3796 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚刚开始自学 iOS 开发。

    跟着 Ray Wenderlich 上的一篇教程写了一个基于地址的显示增强(AR)小 App。

    教程地址:http://www.raywenderlich.com/42266/

    在那篇教程里面,用了一个 Github 上的 iPhone AR Toolkit (https://github.com/nielswh/iPhone-AR-Toolkit ),然而这个项目已经很久没有更新了(虽然在 issues 里面作者保证说开始让它适应 iOS7)……

    在这个 iPhone AR Toolkit 里面,用到了一个从 iOS 5 以后就被 Deprecate 的类 UIAccelerometer,所以我跟着教程写完以后在我的 iPhone 上 run 的时候,Xcode 就会出现 3 个 warning,都跟 UIAccelerometer 有关:



    具体的症状就是,当你切换到显示增强的 view 的时候(照相机 view),所有的地址名称和距离,都会固定在屏幕的中间,而且还会出现一个叠加在另一个上面的情况。非常闹心。



    根据 Xcode 的提示和网上的搜索,我知道要用 CMMotionManager 来实现这个功能,可是因为刚刚接触 iOS 和 Objective-C,对一切都不熟悉,所以希望 v2ex 的大牛能指点一二。

    这里是源代码:http://d.pr/f/AHng

    P.S. 我自己加了几个小功能。比如在 Map View 长按加一个 Marker,或者手动添加一个地址信息(其他地址信息都是通过 Google Places API 获取的)到自己的数据库等等。(但我想上面的问题不是这些功能引起的。)

    再次致谢。
    3 条回复    1970-01-01 08:00:00 +08:00
    txx
        1
    txx  
       2013-12-05 13:47:26 +08:00
    CM的 API 很简单的....就是一个block 接受 加速计的数据而已。
    有时间写这篇帖子的时间不如去看一下官方的文档和demo...
    (我没看懂文档,我是直接看demo的..
    troyl
        2
    troyl  
    OP
       2013-12-05 14:13:58 +08:00
    @txx 多谢!

    我自己也看了官方文档的 Demo,但是将对应的内容(比如说 accelerometerUpdateInterval 这些)更改到代码里就会出错……

    我想,自己使用 CMMotionManager 可能确实不难,但是要将一个已经写好的第三方 kit 正确更改保证其能在 iOS 7 下正常运行对我来说,确实还是很有难度的。

    所以可以帮我看下源代码吗?因为我不确定是否只将 UIAccelerometer 部分改掉就可以了。
    troyl
        3
    troyl  
    OP
       2013-12-08 06:18:02 +08:00
    解决了~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5700 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 01:46 · PVG 09:46 · LAX 18:46 · JFK 21:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.