Tag: core motion

无法findCocoapod MotionKit框架派生数据

我用Pod安装了这个库。 但是当我构build应用程序时,我得到了以下错误: error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: \ /Users/taiyuanz/Library/Developer \ /Xcode/DerivedData/RollingBall-gbmnblxxirswheemtfgncxsqywkj/Build/\ Products/Debug-iphoneos/Ballman.app/Frameworks/MotionKit (No such file or directory) 我升级了Xcode后发生这种情况。 如何解决这样的错误?

苹果手表CMDeviceMotion不给我很好的阅读

目前,我只是logging一堆运动数据并将其保存到文件中。 但是,当我绘制数据时,我很难相信我正在读取正确的数据。 这是我的手表代码: – (IBAction)startStopRecording { if (!recording){ NSLog(@"starting to record"); recording = YES; data = [[NSMutableArray alloc] init]; [self.startRecording setTitle:@"Stop Recording"]; if (self.motionManager.deviceMotionAvailable) { [self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { [data addObject:[NSString stringWithFormat:@"%f, %f, %f, %f, %f, %f, %f, %f, %f", motion.attitude.pitch, motion.attitude.roll, motion.attitude.yaw, motion.userAcceleration.x, motion.userAcceleration.y, motion.userAcceleration.z, motion.rotationRate.x, motion.rotationRate.y, motion.rotationRate.z]]; NSLog(@"."); }]; […]

CMPedometer StepCounting不可用

我的代码是: if ([CMPedometer isStepCountingAvailable]) { self.pedometer = [[CMPedometer alloc] init]; } else { NSLog(@"Step counting is not available on this device!"); [SVProgressHUD showErrorWithStatus:@"Step counting is not available on this device!"]; } 当我在iOS8和更高版本的设备上运行它时,它说: 此设备上的计步function不可用! 我如何使它可用于步数计数?

如何正确使用Swift在iOS中检索加速计数据?

我试图从iPhone的加速度计(我自己的iPhone 5s)logging数据,并使用String(format: "%.2f", data)在屏幕上设置一个标签String(format: "%.2f", data)其中data是特定轴I的值想要logging。 为此,我build立了一个CMMotionManager并开始logging加速度计数据,并且我有一个定时器不断更新标签中的文本。 但是,我从Xcode得到一个错误:“致命错误:意外地发现零,而解包一个可选值”。 这是相关的代码: override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //if accelerometer can be used, start it if (motionManager.accelerometerAvailable) { motionManager.accelerometerUpdateInterval = 0.1 motionManager.startAccelerometerUpdates() let timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("update"), userInfo: nil, repeats: true) } } […]

CMPedometer queryPedometerDataFromDate返回错误103

我试图做一个查询计步器caching在iPhone的iOS 6与iOS 8.1.2,我使用Objective-C,我已经导入CoreMotion框架,并将其包含在项目中的代码看起来像这样 NSDate *startDate = [[NSDate date] dateByAddingTimeInterval:-60*60*12]; NSDate *endDate = [NSDate date]; CMPedometer *pedo = [[CMPedometer alloc]init]; [pedo queryPedometerDataFromDate:startDate toDate:endDate withHandler:^(CMPedometerData *pedometerData, NSError *error) { if (error) { NSLog(@"error: %@", error); } }]; 这给了我错误:Error Domain = CMErrorDomain Code = 103“该操作无法完成。(CMErrorDomain错误103.)” 如果我这样做在Swift中完全一样的东西 var dateString = "2014-12-15" var dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "YYYY-MM-DD" var […]

iOS 7.1:当应用程序在后台时,获取Core Motion数据(加速度计,陀螺仪)

我想知道如何在应用程序处于后台模式时保持接收运动传感器的值。 我意识到已经有几个职位了。 例如,我曾尝试iPhone上的Nike + GPS如何在后台接收加速计更新? 这对我不起作用。 我也在App-Info.plist中启用了背景模式(目前位置更新)。 那里有没有工作的例子? 另外,如果可能的话,我不想实施一些黑客行为,例如播放无声audio或者获取用户的位置。 像SleepCycle这样的应用似乎能够在没有任何解决方法的情况下实现这一点。 我会很感激任何帮助。

技术世界跟踪性能正受到资源限制的影响

在启用世界跟踪的情况下运行ARKit会话时,Xcode控制台显示有关(我认为:减less)跟踪性能的日志消息 ,尽pipe AR Session处于正常跟踪状态, 我在一个光线充足的办公室里用了很多“function”来检测, 该设备只能巧妙地移动 。 TLDR:我想了解什么可能导致他们,他们有什么影响,以及如何防止他们,或者当他们发生时重新采取行动。 不是简单地隐藏错误。 [Technique] World tracking performance is being affected by resource constraints [0] [Technique] World tracking performance is being affected by resource constraints [1] 控制台应用程序显示这些来自图书馆ARKit并落在日志类别技术 。 尽pipe听起来像是警告 ,但控制台应用程序将其types显示为错误 。 按照预期,在使用世界追踪时,控制台应用程序会在错误发生时显示大量的CoreMotion日志,但这些行似乎没有包含任何错误,警告或其他信息,这些信息可以帮助我诊断正在发生的事情。 在日志中显示错误的那一刻, 没有委托callback ,但最终(5秒或50秒之间的任何情况)屏幕将冻结,并且callback会话失败: Error Domain=com.apple.arkit.error Code=200 "World tracking failed." UserInfo={NSLocalizedDescription=World tracking failed., NSLocalizedFailureReason=World tracking cannot determine the device's […]

使用CoreMotion在后台获取加速计数据

我无法在后台接收加速计数据,尽pipe每个问题看似正确的解决schemeiPhone上的Nike + GPS如何在后台接收加速计更新? [_motionManager startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"perform"); [(id) self setAcceleration:accelerometerData.acceleration]; [self performSelectorOnMainThread:@selector(update) withObject:nil waitUntilDone:NO]; });}]; 每当应用程序在前台时执行都会被logging下来,但是每当我退出到后台时它都会停止运行。 有没有人有任何想法,为什么这可能是? 我在背景模式中检查了“位置更新”…

startDeviceMotionUpdatesToQueue的安全更新间隔:withHandler:?

编辑:增加了一个全球,现在它的工作。 但我仍然有我的怀疑..请继续阅读:) 我想要在Y轴上获得加速,并在我的代码的不同部分使用它。 在这个例子中,我在while循环中使用它来进行testing。 我的代码正在工作,但我正确地使用UpdateToQueue …方法或是这种“非正统”的方式来实现我想要的? 我已经设置更新间隔在30毫秒,你认为这是一个“安全”的更新间隔? 我被告知,select一个时应该小心,因为现在或以后的硬件/ iOS更新可能无法跟上这样的时间间隔,这是真的吗? double myAcceleration; // a global.. -(void) play // my "main" method.. { CMMotionManager *motionManager = [[CMMotionManager alloc] init]; motionManager.deviceMotionUpdateInterval = 0.03; // update every 30ms [motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { myAcceleration = motion.userAcceleration.y; } ]; while(!self.stopButtonPressed) { NSLog(@"Y-Axis acceleration is %f", myAcceleration); } […]

调用控制器中的startDeviceMotionUpdatesToQueue时,我得到OSSpinLockLock

在我的根控制器中,我有一个CMMotionManager属性 @property (strong, nonatomic) CMMotionManager *MManager; 在它的getter我做懒惰实例化。 当控制器的视图加载时,我调用这个方法 – (void)reloadAccelerometer { NSLog(@"Away we go"); self.MManager.deviceMotionUpdateInterval = 10.0/60.0; [self.MManager startDeviceMotionUpdatesToQueue:self.queue withHandler:^(CMDeviceMotion *motion, NSError *error) { NSLog(@"Y values is: %f", motion.userAcceleration.y); }]; } 我看到“我们走了”在NSLog ,然后立即应用程序崩溃,我得到这个线程日志 libsystem_platform.dylib`spin_lock$VARIANT$mp: 0x39a87814: movs r1, #1 libsystem_platform.dylib`OSSpinLockLock$VARIANT$mp + 2: 0x39a87816: ldrex r2, [r0] 0x39a8781a: cmp r2, #0 0x39a8781c: it ne 0x39a8781e: bne.w 0x39a893ec […]