2012-05-29 4 views
0

У меня есть проблема, так как два дня исследую больше, я не мог решить.Доступ к данным из другого класса без создания нового экземпляра

У меня есть приложение в классе, который управляет потоковым аудио. В другом представлении у меня есть таблица с подкастами, которые будут открываться через url.

Чтобы использовать код первого класса, созданного делегатом, поэтому, когда пользователь переходит к воспроизведению в любом аудиоподкасте, я занимаюсь методами основного класса, просто изменяя параметры (в данном случае URL-адрес) ,

Делегат работает правильно, передавая параметры. Единственная проблема заключается в том, что делегат должен создать экземпляр основного класса.

ClassePrincipal *classePrincipal = [[ClassePrincipal alloc] init]; 
classePrincipal.delegate = self; 

[classePrincipal method]; 

Если звук уже работает в главном классе, экземпляр в качестве нового класса объектов, он начнет воспроизведение аудио подкаста на вершине того, что уже работает.

и даже если у меня есть главная остановка, прежде чем он продолжает играть подкаста, например:

- (void) playPodcast { 
        [classePrincipal destroyStreamer]; 
        [classePrincipal startStream]; 

} 

destroyStreamer метода называется правильно, но, как экземпляр был создан с нуля classePrincipal он не видел ни одного воспроизводимого звука.

вид перевернутого вопроса, но есть ли способ вызвать метод передачи параметра ClassePrincipal без создания экземпляра класса? Для того, чтобы не выделять новый объект в памяти, я мог видеть, воспроизводится ли звук и для него.

если есть какой-либо другой способ решить тоже спасибо.

ответ

0

Из того, что я могу сказать, вы можете превратить этот класс в одноэлементный. Таким образом вы будете создавать экземпляр, если его еще нет, и если он уже был создан, вы можете просто поместить некоторые проверки в свой код, чтобы остановить текущий звук перед запуском нового. Случайный учебник, который я нашел, это enter link description here

+0

Это звучит как отношение родителя/ребенка ко мне. Я бы, вероятно, не использовал синглтон, если другие части приложения также не могут начать воспроизведение звука. Не знаю. – livingtech

+0

Я реализовал singleton в своем классе и вызвал функцию [[MyClass sharedManager] stop]; функция была выполнена, но звук не остановился, у меня был тот же результат, что и у делегата любая идея? – jucajl

+0

Я не чувствую, что не смогу помочь вам в дальнейшем с ограниченным объемом информации, которую у меня есть. Мой первый вопрос: вы можете вручную остановить плеер без sharedManager? Если это так, тогда я увижу, правильно ли ваш «sharedManager» проверяет существующий экземпляр и правильно его обрабатывает. – rooster117