Last active
April 5, 2016 09:38
-
-
Save bassaer/eaa43e31eb10f565f696feb07eeb0fb6 to your computer and use it in GitHub Desktop.
Swiftで磁気センサの値を取得する方法 ref: http://qiita.com/yesiwas/items/5f70bf56f572e39c4cb7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//CoreMotionマネージャを作成 | |
let cmManager = CMMotionManager() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmManager.magnetometerUpdateInterval = 0.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//キューで実行するクロージャ | |
let handler:CMMagnetometerHandler = {(magnetoData:CMMagnetometerData?,error:NSError?) -> Void in | |
self.showMagnetoData(magnetoData,error: error) | |
} | |
//キューを登録し、スタート | |
cmManager.startMagnetometerUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: handler) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func showMagnetoData(magnetoData:CMMagnetometerData?, error:NSError?){ | |
if let data = magnetoData { | |
var x = data.magneticField.x | |
var y = data.magneticField.y; | |
var z = data.magneticField.z; | |
... | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import CoreMotion | |
class ViewController: UIViewController { | |
@IBOutlet weak var xLabel: UILabel! | |
@IBOutlet weak var yLabel: UILabel! | |
@IBOutlet weak var zLabel: UILabel! | |
let cmManager = CMMotionManager() | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
cmManager.magnetometerUpdateInterval = 0.1 | |
let handler:CMMagnetometerHandler = {(magnetoData:CMMagnetometerData?,error:NSError?) -> Void in | |
self.showMagnetoData(magnetoData,error: error) | |
} | |
cmManager.startMagnetometerUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: handler) | |
} | |
func showMagnetoData(magnetoData:CMMagnetometerData?, error:NSError?){ | |
if let data = magnetoData { | |
var x = data.magneticField.x | |
var y = data.magneticField.y; | |
var z = data.magneticField.z; | |
x = round(x*100)/100 | |
y = round(y*100)/100 | |
z = round(z*100)/100 | |
xLabel.text = String(x) | |
yLabel.text = String(y) | |
zLabel.text = String(z) | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment