2010-02-10 37 views
6

Tôi đang cố gắng triển khai trình quản lý vị trí trình quản lý vị trí thả xuống để cho phép tôi chuyển dữ liệu tiêu đề đến trình mô phỏng iphone, tương tự như tính năng unimotion/accelerometer hack. Thật không may, theo các CLHeading docs, tất cả mọi thứ chỉ đọc và không có initialiser cho phép các nhóm được thiết lập. Có cách nào để buộc tạo ra một thể hiện dân cư của CLHeading không?Có thể tạo đối tượng CLHeading trong Objective C không?

Trả lời

8

Vì mục tiêu-C là ngôn ngữ được nhập động, bạn có thể tạo lớp của riêng mình (ví dụ: MyFakeHeading) và miễn là nó phản hồi tất cả các bộ chọn giống nhau CLHeading, bạn có thể chỉ cần đặt nó là CLHeading và chuyển nó như một tham số để thay thế. Và, vì bạn chỉ cần giả mạo mã của riêng bạn, bạn thậm chí không cần phải thực hiện tất cả các chức năng của CLHeading, chỉ là các phần bạn đang sử dụng.

+0

Tuyệt vời! Cảm ơn bạn! – Shabbyrobe

1

Nếu bạn đang sử dụng tốt với việc sử dụng các phương pháp tư nhân (ứng dụng tư nhân hoặc doanh nghiệp), bạn có thể thêm CLHeading+Init.h để dự án của bạn:

@interface CLHeading (Init) 

- (id)initWithHeading:(double)heading accuracy:(double)accuracy; 

@end 

Tôi đang sử dụng nó trong mô phỏng vị trí của tôi https://github.com/maciekish/MockingPlace

Cảnh báo! Điều này sẽ khiến ứng dụng của bạn bị từ chối từ App Store!

0

Một cách tiếp cận khác là để phân lớp CLHeading và ghi đè các getters và setters thuộc tính mà bạn quan tâm.

Các vấn đề liên quan