Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • Respostas 8
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Top Postadores Neste Tópico

Posts Populares

Esquece o que eu disse anteriormente. O que eu digito no (id)?

Eu não entendi NADA!!

Como esse codigo poderia ter surgido efeito?

Nem deu para VALIDAR o codigo, ou seja dizia que estava imcompativel...

Acho que voce nao me entendeu muito bem.

Como EU posso EXECUTAR uma IBAction, dentro de OUTRA IBAction.

É QUE NEM rodar um programa dentro de um programa.

EU presciso executar atraves de um codigo!

Acho que deu para sacar, né?

Se não nao dá.

Agradeço qualquer ajuda.

Editado por Raphael Rivas
Link para o post
Compartilhar em outros sites

Cara, primeiro de tudo, use menos caixa alta, pois parece que você está gritando, e isso é rude... apenas normas de etiqueta da internet...

anyway, se você quer chamar uma função dentro de um IBAction, faça:


- (void) FazerAlgo {
NSLog("Fazendo algo...");
}
- (IBAction)BotaoApertado:(id)sender {
// Um pouco de codigo
// Mais um pouco de codigo
if (x == y) {
[self FazerAlgo];
}
}
[/CODE]

Se você nem ao menos sabe o que o (id) signfica, acho que seria aconselhável que você estudasse um pouco mais de Objective-C, Cocoa Touch e Orientação a Objeto. Não espere que escrevam o código para você ;)

Editado por Gabriel Vincent
Link para o post
Compartilhar em outros sites
  • 3 semanas depois...

O id é o tipo do parâmetro a ser passado para a função (método). O uso dele é desencorajado pela Apple (mesmo o próprio xCode tendo vários métodos que o utilizam), pois ele funciona como se fosse um curinga, ou seja, pode ser o que quiser! É como se fosse uma tipagem dinâmica. O id pode assumir valores numéricos, strings, flutuante, ou qualquer tipo de objeto que possa ser utilizado.

Dê uma lida na documentação do XCode. Lá tem muita coisa para se aprender!

Link para o post
Compartilhar em outros sites
  • 4 semanas depois...

Programar para iOS é uma questão de saber onde colocar as coisas. Por isto existe o paradigma do MVC.

Vamos aos princípios. IBAction é apenas uma sinalização para o Interface Builder, por isso IB, de que alí é um Target-action. Isso facilita na hora de fazer as conexões visualmente no construtor de interfaces.

IBAction é um typedef para void. Não retorna nada.

No modelo MVC as únicas duas formas que seu view tem de comunicar de volta com o controller é via DELEGATE ou via TARGET-ACTION. Só. Qualquer apontamento direto para o controller é violar o MVC. Não queria jamais fazer isso, senão vc vai falhar rápido.

Se você quer executar este método diretamente e ele é um IBAction, certifique-se primeiramente ele é um VIEW, como um botão(UIButton), slider (UISlider), etc.

Chamar um IBAction por algo que não seja um VIEW é um erro de semântica e é errado.

Se você tiver um VIEW e deseja chamar a função, use o método correto, que é o mesmo que o IB cria pra você quando você cria as conexões visualmente:

- (void)addTarget:(id)target forAction:(SEL)selector forControlEvents:(UIControlEvents)controlEvents;

Target: seu controller, ou quem é responsável por executar o selector, geralmente self.

Selector: o método IBAction, chamado por @selector(metodo)

controlEvents: o tipo de evento que será disparado, existem vários. Use o que melhor encaixa em sua necessidade.

Sobre o "id", ele é simplesmente um ponteiro para um objeto. Seu uso NÃO é desencorajado pela Apple e tem uma utilidade incrível. Ele quer dizer "vou receber qualquer objeto como parâmetro".

O que a documentação diz é que você deve saber o que está fazendo ao usar id, pois se você enviar uma mensagem para um objeto que não responde a determinado metodo, seu app trava. A melhor alternativa é usar introspecção, que é perguntar se o objeto pertence a determinada classe: [obj isKindOfClass:].

No seu caso, se deseja chamar o metodo por umboleto que não seja um View,não use um IBAction, use um metodo normal:

- (void)metodo:parametro1:parametro2

... E dentro do seu IBAction você chama o mesmo método:

- (IBAction) metodo:(id)sender{

[self metodo];

}

É tudo uma questão de design da sua classe.

Mas tenha em mente o seguinte: não viole o MVC, use IBActions só para Views e se for usar id use introspecção para verificar se o que você enviou responde ao método.

Espero ter ajudado!

Abraço.

Link para o post
Compartilhar em outros sites

tenho uma duvida, talvez bem imbecil, mas é uma duvida:

preciso que ao acionar o botão para fazer um calculo o método verifique se todos os campos estão preenchidos com valores maior que zero, caso contrario ele muda o Label para: Preencha os campos, se estiver tudo certo ele procede com o calculo.

o calculo eu consegui fazer, mas ele verificar e retornar a msg quando tiver zero como valor eu não consigo, alguém ajuda?

agradeço desde já

Link para o post
Compartilhar em outros sites

tenho uma duvida, talvez bem imbecil, mas é uma duvida:

preciso que ao acionar o botão para fazer um calculo o método verifique se todos os campos estão preenchidos com valores maior que zero, caso contrario ele muda o Label para: Preencha os campos, se estiver tudo certo ele procede com o calculo.

o calculo eu consegui fazer, mas ele verificar e retornar a msg quando tiver zero como valor eu não consigo, alguém ajuda?

agradeço desde já

Simples, amigo:


if ([textField.text isEqualToString:@"0"]) {
label.text = @"Digite um valor maior que zero!";
}
[/CODE]

Ou então:

[CODE]
if (textField.text.intValue == 0) {
label.text = @"Digite um valor maior que zero!";
}
[/CODE]

Esse segundo [b][color=#0000ff]if[/color][/b] será verdadeiro também se o usuário não entrar com valor nenhum no TextField.

Espero ter ajudado

Editado por Gabriel Vincent
Link para o post
Compartilhar em outros sites

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.




  • Conteúdo Similar

    • Por Vikson
      Eu entrei no modo recovery para reinstalar o sistema, só que devia está instalando o Catalina mas tá instalando o Lion e está estimando 24 horas para instalação, será que é normal ?
      Por favor me ajudem 
    • Por Raul Duelis
      Fala galera! Blz?
      Qual o sistema mais recente que consigo instalar no MacBook White 4,1, Sem ter bugs?
      Instalei o Mountain Lion mas a versão 10.8.4. ademais, não consigo atualizar o iTunes. 
      Já coloquei o Yosemite mas fiquei com os problemas de áudio, brilho e de não poder colocar o Mac em repouso. 
      Se alguém puder me ajudar, agradeço!
       
      Abraços!
    • Por Raul Duelis
      Fala Galera! Blz?
      Seguinte, tenho um MacBook White (Early 2008) com um Core 2 Duo de 2,4GHz e 4Gb de RAM. Como ele está com o Lion, que já está muito defasado, vou instalar o MacOS Sierra através de um Patch. Mas, gostaria de saber se consigo fazer dual boot com o Mac OS X Lion e com o MacOS Sierra, pois sei que com versões mais recentes o MacBook White pena um pouco. 
      Desde já agradeço. 
      Vlw!!!
    • Por allanmoises
      Bom dia pessoal!
      Sou um usuário novato no mundo Apple e recentemente adquiri um Macbook Pro 2009.
      Nele, eu consegui instalar o que eu imagino ser seu sistema de Fábrica (Lion), porém me deparei com alguns problemas:
       -  a appstore não me deixar baixar simplesmente NADA, sempre acusa um erro desconhecido;
       - quando tento inserir ou mesmo criar uma conta Apple ID também ocorre um erro;
      tentei de Várias for mas instalar um dos sistemas mais atuais no Mac, porém como meu conhecimento é quase nulo não obtive êxito, 
      tentei o Yosemite, e agora estou baixando uma imagem do Mavericks, alguém pode me esclarecer como eu poderia formatar ou mesmo criar um pendrive bootavel a partir do Windows para colocar outros OSX no meu computador?
       
      desde já agradeço
       
    • Por Bruno Santos Cassiano
      Galera, 
      sou iniciante na área de desenvolvimento com o Xcode, tenho usado para desenvolver/estudar, um macbook air 2015 com processador Intel Core i5 de 1.6ghz e 4Gb ram, porém, eu acho muito lento para executar uma compilação e principalmente quando tenho que usar o simulador para testar o app com o IOS, lentidão essa que me levou a deixar a o simulador e usar meu Iphone para testes.
      Diante de tal situação, estou quase comprando um Mac Mini 2014 com processador Intel Core i5 dual core de 2,6GHz e 4Gb de ram exclusivamente para desenvolver/estudar e deixar meu macbook para uso móvel.
      Estou em duvida se realmente vale a pena eu gastar com mais este equipamento que não é barato em relação ao desempenho que hoje já tenho com o Macbook Air?
      Se alguém já esteve numa situação parecida e puder me ajudar.
      Agradeço.
       
      Abs.
    • Por Raul Duelis
      Galera, tenho um MacBook White (early 2008), que ainda funciona muito bem, apesar de alguns bugs. Uso o Chrome nele, que apesar de alguns avisos de que não será mais atualizado, funciona bem. No entanto, de um tempo para cá, ele simplesmente parou de reproduzir conteúdo do Netflix. Amazon Prime, conteúdo do YouTube, Facebook ou Twitter ainda funcionam normal. O Netflix informa que há um componente do Chrome faltando ou desatualizado. O Chrome o reconhece mas não dá a opção de atualizá-lo. Já desinstalei o Chrome inúmeras vezes, excluindo todos os arquivos referentes a ele e reinstalando diretamente da página oficial de download do Chrome, mas sem sucesso. Alguém tem alguma ideia de como corrigir? Por enquanto só encontrei esse problema relacionado ao Windows. Pretendo realizar alguns upgrades nesse Mac, como colocar um SSD e atualizar para o High Sierra ou Mojave, mas não agora. Seguem os prints dos erros.


    • Por tonyKingNZ
      Qual MacBook devo comprar? Tenho 4 mil reais, e se tiver um Mac top por um bom preço posso ir no máximo até entorno de 4500 reais. 
      Irei usar para a faculdade (automação) e para desenvolvimento de apps para iOS.
      Um MacBook Pro Retina 13,3” early 2015 i5 2.7 8gb ram 128gb ssd vai dar conta do serviço? Encontrei um na OLX por 4200.
      Por conta do meu curso preciso rodar Autocad, e desenvolver algumas coisas em C e Python.
      Além que tenho de desenvolver apps para iOS usando tecnologias como ARKit e Core ML
      O real problema é a quantidade de dinheiro. Além de que este Mac vai ter que durar uns 3-4 anos. 
      Eu sei que vai ser difícil encontrar um MacBook que atenda esses requisitos. O que você indicam?
    • Por Fernando Ventura Jr.
      Tenho um IPAD 2 que foi sendo atualizado até a versão IOS 9.3.5(acho que até que foi até longe). Estou estudando o desenvolvimento de Apps com o XCode 9.2, que é a última versão que o meu velho Mac Book Pro, rodando Mac OS Sierra, aceita. Acontece que ao tentar emular o app no Ipad, o compilador reclamou pedindo que atualizasse o meu Ipad para IOS 10, o que não consigo mais. Aconselhou a alterar o target IOS para uma versão anterior. Eu fiz isso, mas aí reclamou da versão do sdk.
      Devo baixar o Xcode 7.3 para desenvolver para IPADs antigos como o meu ou tentar resolver o probela da versão da sdk e continuar com o XCode 9.2? O que acham?
       
    • Por Diego Froes
      Pessoal, boa tarde.
      Estou começando a desenvolver para IOS utilizando as ferramentas XCode, Visual Studio e  Unity. Contudo, como sou iniciante na área IOS gostaria de começar a usar um MacBook Pro usado.
      Mac's que estou sondando:
      Modelo: MacBook Pro; Processador: Intel i5 ou i7; Disco: SSD de 240 ou superior Memória: 8GB ou superior Fabricação: 2011 ou superior Diante do cenário de desenvolvimento de Software, qual seria uma configuração recomendável com faixa de preço entre 2k a 2.5k?
      Obs.: Moro em Belo Horizonte. 
    • Por danielfotografo
      Olá amigos!
      Assinei o Gsuite da Google e preciso colocar um comando no terminal para alterar o diretório de cache, pois por padrão ele usa o disco do sistema, e o meu é um SSD quase cheio!
      No suporte passam esses comandos:
      Local padrão: ~/Library/Application Support/Google/DriveFS
      comando: "defaults write com.google.drivefs.settings ContentCachePath"
      Encontrei em um forum esse comando:
      defaults write com.google.drivefs.settings ContentCachePath -string '/Location/You/Want/'
      Mas não sei o que colocar para que o cache seja movido para meu HD externo com nome de "MAC Externo"! Não entendi esse "Location/You/Want/'" e não sei o que mudar!
      Resumindo: preciso do comando completo pois não entendo nada do TERMINAL!!
  • Estatísticas do Fórum

    • Total de Tópicos
      51.750
    • Total de Posts
      433.969
×
×
  • Criar Novo...