Steil Rafael - iOS: Programe para iPhone e iPad стр 11.

Шрифт
Фон

de funcionários e salvar a empresa em si. Como visto na figura 3.1 a tela contêm

dois componentes que devem trabalhar em conjunto para alterar a quantidade de

funcionarios: um campo de texto (UITextField) e um incrementador (UIStepper). O

que queremos que aconteça é que quando o usuário tocar em algum dos botões, o

valor correspondente apareça no UITextField ao lado.

No arquivo

ViewController.h criamos uma

IBAction chamada

incrementadorAlterado:, que é o método a implementar. Abra o arquivo

ViewController.m e faça o seguinte:

1 - (IBAction)incrementadorAlterado:(id)sender {

2

UIStepper *incrementador = (UIStepper *)sender;

3

self.quantidadeField.text = [NSString stringWithFormat:@"%d",

4

(int)incrementador.value];

5 }

O método incrementadorAlterado: segue um padrão bastante comum em

Objective-C, que é o de receber um argumento do tipo id chamado sender quando

for associado a algum evento. No caso, id pode ser lido como qualquer coisa, e

sender (remetente, quem enviou) é apenas o nome da variável você pode

modificar para o que achar mais apropriado, apesar de este ser o nome utilizado

em toda documentação. Levando isso em consideração, na linha 2 convertemos

sender para o tipo UIStepper, pois sabemos que este método será chamado ape-

nas quando o UIStepper da tela for modificado. Já nas linhas 3 e 4 convertemos

para string o valor numérico do componente existente na propriedade value, pois

o UITextField não aceita números diretamente.

Rode o aplicativo através do atalho Command + R ou através do menu Product

-> Run e clique nos botões - e +, para ver o campo de texto receber os valores.

38

Casa do Código

Capítulo 3. Mais Objective-C e Xcode

3.10

Trabalhe com objetos: instanciando uma Em-

presa

Para criar uma nova

empresa precisamos de instâncias da classe Empresa e preen-

cher as propriedades nome e quantidadeFuncionarios. Isso será feito na ação

do botão Salvar, conforme mostrando no código abaixo:

1 - (IBAction)salvar:(id)sender {

2

Empresa *e = [[Empresa alloc] init];

3

e.nome = self.nomeField.text;

4

e.quantidadeFuncionarios = [self.quantidadeField.text intValue];

5

6

NSLog(@"Empresa criada. Nome=%@, funcionários=%d",

7

e.nome, e.quantidadeFuncionarios);

8 }

Na linha 2 criamos uma nova instância da classe Empresa, enquanto que

nas linhas 3 e 4 preenchemos as propriedades com os valores dos componentes da

tela. Estas são aquelas mesmas variáveis com @property existentes no arquivo

Empresa.h. Nas linhas 6 e 7 escrevemos os valores no console para fins de debug-

ging.

Compile o projeto com o atalho

Command + B. Funcionou?

A menos

que você tenha importado o arquivo

Empresa.h logo no início do arquivo

ViewController.m, o Xcode deverá ter acusado erros de compilação informando

que a classe Empresa não existe. Para resolver este problema, adicione a linha

#import "Empresa.h" no topo do arquivo ViewController.m, recompile o

projeto e rode-o com Command + R.

O painel de debug e console do Xcode

Rode o aplicativo, insira o nome e quantidade de funcionários e clique no botão

salvar. O Xcode deverá mostrar automaticamente uma mensagem de log no painel

inferior (caso contrário, abra-o através do atalho Command + Shift + C, ou pelo

menu View -> Debug Area -> Activate Console), conforme a figura 3.10. Como você

já associou, a função NSLog serve para jogar informações no console do Xcode,

o que é útil em diversos momentos durante o ciclo de desenvolvimento e testes do

aplicativo.

39

3.11. Como são as strings em Objective-C?

Casa do Código

Figura 3.10: Localização do console de debug com saída do NSLog

3.11

Como são as strings em Objective-C?

Strings em Objective-C são representadas pela classe NSString, e seus valores de-

vem ser precedidos pelo caractere @ (arroba). Isso é necessário para se distinguir do

array de caracteres da linguagem C (tecnicamente, instruções como char *), na

qual Objective-C é fundamentada.

A forma correta de criar strings em Objective-C é mostrada abaixo:

// OK - utiliza '@'

NSString *nome = @"Rafael Steil";

40

Casa do Código

Capítulo 3. Mais Objective-C e Xcode

// ERRO - o código abaixo não irá funcionar

NSString *ops = "ObjC não funciona assim";

3.12

Formatando strings

É possível construir strings utilizando alguns caracteres especiais de formatação atra-

vés do método stringWithFormat:, conforme mostrado abaixo:

double faturamento = 1234.567;

NSString *mensagem = [NSString stringWithFormat:

@"A empresa %@ tem %d funcionários, e faturamento de R$ %f",

e.nome, e.quantidadeFuncionarios, faturamento];

A lista de formatadores é relativamente extensa, porém os mais comuns são:

%@ : para qualquer tipo de objeto, incluindo outras NSStrings

%d : números inteiros ( int e unsigned int)

%f : números de ponto flutuante ( float e double)

A função NSLog já aceita por definição esta mesma estrutura de formatação,

sem ser necessário a utilização de stringWithFormat:.

3.13

Guardando todas empresas em memória

O código que fizemos até agora cria a empresa, mas não a armazena em nenhum

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке