Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
sanchessd

Acessar dados de outra classe sem criar nova instancia

Posts Recomendados

Estou com um problema a 2 dias já pesquisando mais não consegui resolver.

em um app tenho uma classe que roda um streaming de audio. Em uma outra view, tenho uma tabela com podcasts que serão abertas via url.

Visando em aproveitar o codigo da primeira classe criei um delegate, Assim quando o usuario der o play em algum audio da podcast eu ocupo os metodos da classe principal só mudando os parametros (no caso a URL).

O delegate funciona corretamente, a passagem de parametros também. O único problema é que no delegate tenho que instanciar a classe principal.


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

[classePrincipal metodo];
[/CODE]

Caso o audio ja esteja rodando na classe principal, como foi instanciado um novo objeto da classe, ele vai começar reproduzir o audio da Podcast por cima do que já estava rodando.

e mesmo se eu mandar o principal parar antes de reproduzir a podcast ele continua, por ex:

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

}
[/CODE]

o metodo destroyStreamer é chamado corretamente, porem como a instancia classePrincipal foi criada do zero ele não ve nenhum audio sendo reproduzido.

meio que enrolei a pergunta, mas existe alguma forma de chamar um metodo da ClassePrincipal passando parametro sem instanciar a classe? Pois não alocando um novo objeto na memória, eu poderia enxergar se o audio está sendo reproduzido e para-lo.

se existir qualquer outra forma de resolver também agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Implementei na minha ClassePrincipal um singleTon e chamei a funcao;

[[ClassePrincipal sharedManager] stop];

a função foi executada corretamente, mas o audio continuou a tocar, obtive o mesmo resultado que com o delegate.

ainda sem soução :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Implementei na minha ClassePrincipal um singleTon e chamei a funcao;

[[ClassePrincipal sharedManager] stop];

a função foi executada corretamente, mas o audio continuou a tocar, obtive o mesmo resultado que com o delegate.

ainda sem soução :/

Você criou um método private na sua classe principal chamada - (void) stop; ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Orientação a objetos" é seu amigo!

Pensou na possibilidade de usar herança? Pelo que entendi, você tem dois metodos diferentes para cada tarefa.

E claro, você precisa "intertravar" para que não tenha um audio rodando "por cima", como disse.

Editado por franzSilva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.



  • Conteúdo Similar

    • Por Guedes - Brasília
      Bem pessoal, o novo iOS tem mais de 200 novos recursos, segundo a Apple.
      Alguns deles não são nem um pouco sutis, e muito se fala deles por aí. Aqui eu acho legal a gente compartilhar as pequenas novidades que vamos descobrindo com o uso.
      Uma delas, por exemplo, é que agora se um mesmo número pertence a mais de um contato ao receber uma chamada vem na identificação "Fulano ou Ciclana"! Muito legal.
      Click for large view - Uploaded with Skitch
      Outra coisa legal foi a foto em tela cheia ao receber a chamada de um contato.
  • Estatísticas do Fórum

    • Total de Tópicos
      47.913
    • Total de Posts
      410.610
×
×
  • Criar Novo...