Я изо всех сил пытался внедрить kalman- ios в мой проект Swift. Проект kalman- ios полностью написан на Objective-C ++.
Недавно я узнал, как вызывать функции Objective-C ++ из этого видеогида
Выпуск
Моя проблема в том, что я могу делать вызовы обычных функций, но ни одной из них, которые находятся внутри @implementation. Например: I не может успешно соединить Swift с didReadAccelerometer
@interface KFAppDelegate ()
...
- (void)didReadAccelerometer:(CMAccelerometerData *)data;
@implementation KFAppDelegate
...
- (void)didReadAccelerometer:(CMAccelerometerData *)data
{
// gyro or compass data not available yet, wait until next update
if (!self.gyroData || !self.magnetometerData)
return;
self.accelData = data;
// run filter
[self performKalmanUpdate];
// send state to server
[self transmitState];
// discard old data
self.accelData = nil;
self.gyroData = nil;
}
I может успешно соединить Swift с getTime, поскольку он не находится внутри @ реализаций
double getTime()
{
// mach_absolute_time() returns billionth of seconds
const double kOneBillion = 1000000000.0;
return getTime_ns() / kOneBillion;
}
С заголовочным файлом моста, который содержит:
#ifdef __cplusplus
extern "C" {
#endif
double getTime();
#ifdef __cplusplus
}
#endif
Мне нужно разобраться с функциями в @implementation, потому что они используют переменные уровня класса.
Есть ли способ использовать эти функции в Swift?
Спасибо за любую помощь, которую вы можете оказать!