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