Você está na página 1de 3

Do topo:

1. O fechamento de assinatura do método create deve retornar um descartável


(Option-clique em create para ver isso por si mesmo), então você cria um aqui que
retornará em vários pontos.
2. Obtenha o caminho para o nome do arquivo, ou então adicione um erro de arquivo
não encontrado no Single e retorne o descartável que você criou.
3. Obtenha os dados do arquivo nesse caminho ou adicione um erro ilegível no Single e
devolva o descartável.
4. Converta os dados em uma string; caso contrário, adicione um erro de falha de
codificação no Single e devolva o descartável. Começando a ver um padrão aqui?
5. Você chegou até aqui? Adicione o conteúdo ao Single como um sucesso e devolva o
descartável.
Agora você pode colocar esta função para funcionar. Adicione o seguinte código ao
exemplo:
// 1
loadText(de: "Copyright")
// 2
.se inscrever {
// 3
troque $ 0 {
case .success(sequência de luz):
imprimir (cadeia)
case .error(erro leve):
imprimir (erro)
}}
}}
.disposed(by:disposeBag)
Aqui vocÊ:
1. Chame loadText(from:), passando o nome raiz do arquivo de texto.
2. Assine o Single que ele devolve.
3. Ative o evento, imprimindo a string se for bem-sucedida ou imprimindo o erro se
não.
Você deve ver o texto do arquivo impresso no console, o mesmo que o comentário de
direitos autorais na parte inferior do playground:
Exemplo de: Único ---
Direitos autorais (c) 2019 Razeware LLC
...
65. raywenderlich. com
RxSwift - Programação reativa com Swift Capítulo 2: Observáveis Se você tentou alterar
o nome do arquivo para outra coisa, não deve encontrar o arquivo
erro impresso em vez disso.
Desafios
A prática torna permanente. Ao concluir esses desafios, você praticará o que aprendeu
neste capítulo e obterá mais alguns detalhes sobre como trabalhar com observáveis.
Um espaço de trabalho de playground inicial, bem como a versão final, são fornecidos
para cada desafio. Apreciar!
Desafio 1: Realizar efeitos colaterais
No exemplo do operador nunca anterior, nada foi impresso. Isso foi antes de você
adicionar suas assinaturas para descartar malas, mas se você tivesse adicionado a uma,
você poderia imprimir uma mensagem no manipulador onDisposed do assinante.
Há outro operador útil para quando você deseja fazer algum trabalho paralelo que não
afeta o observável com o qual está trabalhando.
O operador do permite inserir efeitos colaterais; ou seja, manipuladores para fazer
coisas que não alterarão o evento emitido de forma alguma. do apenas passará o
evento para o próximo operador na cadeia. também inclui um manipulador
onSubscribe, algo que o subscribe não inclui.
O método para usar o operador do é
do(onNext:onError:onCompleted:onSubscribe:onDispose) e você pode fornecer
manipuladores para qualquer um ou todos esses eventos. Use o preenchimento
automático do Xcode para obter os parâmetros de fechamento para cada um dos
eventos.
Para completar este desafio, insira o operador do no exemplo never usando o
manipulador onSubscribe. Sinta-se à vontade para incluir qualquer um dos outros
manipuladores, se desejar; eles funcionam exatamente como os gerenciadores de
assinantes.
E enquanto você está nisso, crie uma sacola de descarte e adicione a assinatura a ela.
Não se esqueça de que você sempre pode dar uma olhada no playground do desafio
finalizado em busca de "inspiração".
67. raywenderlich. com

RxSwift - Programação reativa com Swift Capítulo 2: Observables Desafio 2: Imprimir


informações de depuração
A execução de efeitos colaterais é uma maneira de ajudar a depurar seu código Rx.
Mas acontece que existe um utilitário ainda melhor para esse propósito: o operador de
depuração, que imprimirá informações sobre cada evento para um observável.
Ele tem vários parâmetros opcionais, talvez o mais útil seja que você pode incluir uma
string identificadora que será impressa em cada linha. Em cadeias Rx complexas, onde
você pode adicionar chamadas de depuração em vários lugares, isso pode realmente
ajudar a diferenciar a origem de cada impressão.
Continuando a trabalhar no playground do desafio anterior, complete este desafio
substituindo o uso do operador do por debug e fornecendo um identificador de string
como parâmetro. Observe a saída de depuração no console do Xcode.
68. raywenderlich. com

3Capítulo 3: Assuntos Por Scott Gardner


Você sabe o que é um observável, como criar um, como assiná-lo e como descartar
coisas quando terminar. Os observáveis são uma parte fundamental do RxSwift, mas
uma necessidade comum no desenvolvimento de aplicativos é adicionar manualmente
novos valores em um observável em tempo de execução que será emitido para os
assinantes. O que você quer é algo que possa atuar tanto como observável quanto
como observador. E esse algo é chamado de Sujeito.
Neste capítulo, você aprenderá sobre os diferentes tipos de assuntos no RxSwift, verá
como trabalhar com cada um e por que você pode escolher um ou outro com base em
alguns casos de uso comuns. Você também aprenderá sobre retransmissões, que são
wrappers em torno de assuntos. Vamos desembrulhar isso mais tarde!
Começando
Execute ./bootstrap.sh na pasta do projeto inicial RxPlayground, que abrirá o projeto
para este capítulo, e selecione RxSwiftPlayground no navegador do projeto. Você vai
começar com

Você também pode gostar