Tôi đang sử dụng phương thức UIAccelerotmeterDelegate
accelerometer:didAccelerate:
nhưng gần đây phương pháp đó đã không được chấp nhận trong iOS 5.0. Vậy cách khác để lấy dữ liệu gia tốc là gì? Các tài liệu không đề cập đến thay thế chúng tôi có nghĩa vụ phải sử dụng.Làm cách nào để lấy dữ liệu gia tốc trong IOS?
11
A
Trả lời
13
Bạn nên sử dụng Core Motion framework (được giới thiệu trong iOS 4.0) làm sản phẩm thay thế. Tạo một thể hiện của CMMotionManager
và báo cho số điện thoại startAccelerometerUpdatesToQueue:withHandler:
, chuyển số NSOperationQueue
và một khối sẽ được thực hiện trên hàng đợi được chỉ định bất cứ khi nào có sẵn dữ liệu gia tốc kế mới.
5
Dường như UIAccelerometer và UIAccelerometerDelegate được thay thế bằng khuôn khổ CoreMotion.
Bạn có thể tìm thấy câu trả lời ở đây:
Why is accelerometer:didAccelerate: deprecated in IOS5?
Tôi Hy vọng nó giúp.
3
Được thay thế bằng CoreMotion
. Xem Motion Events.
4
Đây là mã mẫu hữu ích mà tôi tìm thấy cho CoreMotion từ liên kết this.
@interface ViewController()
@property (nonatomic, strong) CMMotionManager *motionManager;
@property (nonatomic, strong) IBOutlet UILabel *xAxis;
@property (nonatomic, strong) IBOutlet UILabel *yAxis;
@property (nonatomic, strong) IBOutlet UILabel *zAxis;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.accelerometerUpdateInterval = 1;
if ([self.motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[self.motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
self.xAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.x];
self.yAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.y];
self.zAxis.text = [NSString stringWithFormat:@"%.2f",accelerometerData.acceleration.z];
});
}];
} else
NSLog(@"not active");
}
@end
1
Thêm khung CoreMotion vào dự án trước. Sau đó:
#import <CoreMotion/CoreMotion.h>
@property (strong, nonatomic) CMMotionManager *motionManager;
- (void)viewDidLoad {
_motionManager = [CMMotionManager new];
_motionManager.accelerometerUpdateInterval = 0.01; // 0.01 = 1s/100 = 100Hz
if ([_motionManager isAccelerometerAvailable])
{
NSOperationQueue *queue = [NSOperationQueue new];
[_motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error){
NSLog(@"X = %0.4f, Y = %.04f, Z = %.04f",
accelerometerData.acceleration.x,
accelerometerData.acceleration.y,
accelerometerData.acceleration.z);
}];
}
}
Các vấn đề liên quan
- 1. Thu thập dữ liệu gia tốc kế trong nền
- 2. Làm thế nào để truy cập dữ liệu gia tốc/con quay hồi chuyển từ Javascript?
- 3. Làm thế nào để truy cập vào gia tốc iOS trong Delphi XE2?
- 4. Làm cách nào để lấy dữ liệu JSON trong php?
- 5. Làm thế nào để lấy mảng dữ liệu âm thanh nổi từ AudioQueueRef trong iOS?
- 6. Làm cách nào để lấy dữ liệu từ bảng dữ liệu trong javascript?
- 7. Làm cách nào để lấy dữ liệu từ UIImagePickerControllerReferenceURL?
- 8. Global.asax - Application_Error - Làm cách nào để lấy dữ liệu Trang?
- 9. Làm cách nào để lấy dữ liệu trong các chức năng Map/Reduce?
- 10. Làm cách nào để chỉ lấy lược đồ cơ sở dữ liệu vào tập dữ liệu?
- 11. Làm cách nào để lấy dữ liệu từ tệp trong thư mục tài liệu
- 12. Làm cách nào để tham gia bảng bên trong từ ngữ cảnh dữ liệu khác nhau?
- 13. Làm cách nào để trích xuất siêu dữ liệu từ tệp mp3 trong phát triển ios
- 14. Làm cách nào để tăng tốc độ xóa khỏi bảng cơ sở dữ liệu lớn?
- 15. Làm cách nào để lấy số hàng trong bảng trong một kho dữ liệu?
- 16. Tính toán từ tính sử dụng gia tốc kế thô và dữ liệu từ kế
- 17. tính khoảng cách bằng cách sử dụng gia tốc
- 18. Cách lấy dữ liệu từ cơ sở dữ liệu Parse.com
- 19. Lọc gia tốc Android?
- 20. GPS V.S. gia tốc để tính khoảng cách
- 21. Làm cách nào để tham gia 2 bảng trên 2 cơ sở dữ liệu khác nhau?
- 22. Làm cách nào để lấy dữ liệu từ truy vấn SQL trong Access VBA của microsoft?
- 23. Làm cách nào để lấy dữ liệu kết cấu thô (không được chuyển đổi) trong OpenGL?
- 24. Làm cách nào để lấy dữ liệu người dùng dưới dạng trong Symfony 1.2?
- 25. Làm cách nào để lấy trường cuối cùng trong cơ sở dữ liệu Mysql bằng PHP?
- 26. Cách lấy tất cả dữ liệu trong một truy vấn
- 27. Làm cách nào để liên kết dữ liệu trong MongoDB?
- 28. Cách dễ nhất để lấy siêu dữ liệu cơ sở dữ liệu trong Java?
- 29. Cách lấy dữ liệu HttpRequestMessage
- 30. Làm cách nào để cập nhật dữ liệu trong indexedDB?