UIAccelerometerDelegate: могу ли я иметь два объекта для обработки события DidAccelerate?

Я переношу свое приложение для Android на iOS и имею небольшие проблемы с акселерометром. Я хочу иметь два разных класса с реализацией DidAccelerate. Я делаю два объекта, каждый становится делегатом для UIAccelerometer. Но работает только один объект - который был создан последним. Другой не получает событие от акселерометра. UIAccelerometer не может иметь двух делегатов, работающих одновременно в одном приложении?


person Maep    schedule 06.12.2012    source источник


Ответы (2)


Я бы сделал ваш контроллер представления основным делегатом для акселерометра, а затем передал бы эту реализацию данным любым другим заинтересованным сторонам:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

    /* So just create a couple properties to hold an instance of your other delegates. */
    [self.accelerometerDelegate1 accelerometer:accelerometer didAccelerate:acceleration];

    [self.accelerometerDelegate2 accelerometer:accelerometer didAccelerate:acceleration];
}
person jerrylroberts    schedule 06.12.2012

Вы можете использовать синглтон для это.

person jimpic    schedule 06.12.2012