ios - 如何通过 iOS 8 中提供的新 API 在 iPhone 6 上使用气压计?

标签 ios iphone ios8 iphone-6 cmaltimeter

我正在寻找如何使用适用于 iPhone6 的 iOS 8 中的气压计 api。

我使用了下面的代码

if([CMAltimeter isRelativeAltitudeAvailable]){
    CMAltimeter *altimeter = [[CMAltimeter alloc] init];
    [altimeter startRelativeAltitudeUpdatesToQueue:queue withHandler:^(CMAltitudeData *altitudeData, NSError *error) {

        if(error)
            [label setText:[NSString stringWithFormat:@"%@",error.localizedDescription]];
        else
            [label setText:[NSString stringWithFormat:@"%@",altitudeData.relativeAltitude]];

    }];
}
else{
    [label setText:@"That's not iPhone 6 for sure ;)"];
}

但即使不返回任何错误值,它也无法正常工作。似乎完成 block 不起作用,因为我的标签没有更新。我正在我的 iPhone 6 上测试它。

最佳答案

恕我直言: 当 block 被执行时,对象高度计已经被 ARC 删除。尝试使高度计成为一个属性,它会起作用。

关于ios - 如何通过 iOS 8 中提供的新 API 在 iPhone 6 上使用气压计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26093882/

相关文章:

ios - XCTAssert 中断函数

ios - 在 UIScrollview 上缩放图像后,它滚动到图像区域之外

iphone - 动态刷新 NSMUTABLEArray 的内容

ios - iOS8自定义键盘可以知道它所使用的应用程序吗?

javascript - Mobile Safari 不接受 HTML5 Meter 输入值

ios - 如何通过iOS应用程序在Facebook上分享应用程序信息?

ios - 如何使用 iOS8 Social Framework Swift 将视频文件附加到 Publish on Facebook

ios - 使用 UISearchController 自定义 UISearchBar

ios - Swift 4/5 设置向 WKWebview 添加代理

iphone - UIWebView 间歇性地拒绝访问 html5 数据库存储