想知道是否有人设法获得阅读?
- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; if([CMAltimeter isrelativeAltitudeAvailable]){ CMAltimeter *altimeterManager = [[CMAltimeter alloc]init]; [altimeterManager startrelativeAltitudeUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAltitudeData *altitudeData,NSError *error) { // This never fires. Nsstring *data = [Nsstring stringWithFormat:@"Altitude: %f %f",altitudeData.relativeAltitude.floatValue,altitudeData.pressure.floatValue]; NSLog(@"%@",data); self.altimeterLabel.text = data; }]; NSLog(@"Started altimeter"); self.altimeterLabel.text = @"-\n-"; } else { NSLog(@"Altimeter not available"); }}
我已经尝试过快速步行,但是这里只有一个高度失去/获得的故事.
解决方法 我非常尴尬地以如此巨大的疏忽来回答我自己的问题.在原始帖子中,我在vIEwDIDLoad的范围内声明了CMAltimiter,因此它超出了范围并被取消分配.我把它变成了iVar,现在回调了.
#import "VIEwController.h"@import CoreMotion;@interface VIEwController ()@property (nonatomic,strong) CMAltimeter *altimeterManager;@end@implementation VIEwController- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; if([CMAltimeter isrelativeAltitudeAvailable]){ self.altimeterManager = [[CMAltimeter alloc]init]; [self.altimeterManager startrelativeAltitudeUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAltitudeData *altitudeData,NSError *error) { // This Now fires properly Nsstring *data = [Nsstring stringWithFormat:@"Altitude: %f %f",data); self.altimeterLabel.text = data; }]; NSLog(@"Started altimeter"); self.altimeterLabel.text = @"-\n-"; } else { NSLog(@"Altimeter not available"); }}总结
以上是内存溢出为你收集整理的ios – CMAltimeter回调永远不会触发全部内容,希望文章能够帮你解决ios – CMAltimeter回调永远不会触发所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)