Red de conocimiento informático - Material del sitio web - Cómo construir un proyecto ReactiveCocoa basado en CocoaPods

Cómo construir un proyecto ReactiveCocoa basado en CocoaPods

ReactiveCocoa, al igual que CocoaPods, también es un framework muy popular que puede facilitar y mejorar la eficiencia.

De hecho, no solo iOS, la forma más rápida y directa de aprender cualquier voz es Para empezar, solo puedes obtener una comprensión perceptiva mirando la documentación. Hace dos días, un evaluador de una empresa me contactó y me preguntó cómo aprender JAVA. Le pregunté cómo lo aprendió y me dijo. que había descargado muchos tutoriales en vídeo de Internet, había estado viendo tutoriales en vídeo y también compró algunos libros. Le pregunté cuánto código escribía y dijo que, de hecho, hay muchas personas como él. Siento que nada es simple, porque las cosas que parecen simples son en sí mismas. Si no lo has hecho, a menudo encontrarás varios problemas. Este es también el factor principal por el que trato de ganar más tiempo para mí y para las personas del equipo. formulando el cronograma del proyecto en el trabajo.

Está bien, tengo algo de detalle y puntos de vista. Vayamos al grano.

¿Qué es el cacao reactivo?

RAV es. un marco de Object-C para programación reactiva funcional;

p>

Dos puntos clave:

1: Dado que es un marco, no es diferente de otros marcos que utiliza Se acaba de agregar al proyecto como referencia. Sin explicaciones innecesarias

2: Programación reactiva funcional Programación reactiva en tiempo real

Xiami citó la versión para Mac de Xiami Music que existe ahora. disponible después de ser adquirido por Alibaba se desarrolló usando Reactive Cocoa. En palabras de la propia gente de Alibaba.

Qué bueno, usamos KVO o Notificación para vincular datos automáticamente. la estructura del código es mejor, más simple y clara, y el número de líneas de código se reduce directamente en más de 60

Hagamos una comparación intuitiva. Por ejemplo, queremos implementar un requisito: cuando la cadena. en los cambios de variables, proporcionaremos inmediatamente los comentarios correspondientes. Usamos KVO y debemos hacer lo siguiente.

// En su viewDidLoad/awakeFromNib /init

[self addObserver: self.

forKeyPath: @"someString"

opciones: NSKeyValueObservingOptionNew

contexto: amp; someStringChangeContext] ;

//En reparto

[self removeObserver: self

forKeyPath: @"someString"

context: amp; someStringChangeContext] ;

// En otra parte de tu clase

- (void)observeValueForKeyPath: (NSString *)keyPath

ofObject: (id)object

cambio: (NSDictionary *)cambio

contexto: (void *)context

{

if (contexto == amp; someStringChangeContext) {

p>

if ([keyPath isEqualToString:@"someString"]) {

// Haz un montón de cosas aquí

}

}

}

El código anterior es solo una línea después de aplicar Reactive Cocoa

[RACObserve(self, someString) distintivoUntilChanged] subscribeNext: ^(NSString *string ) {

// Haz un montón de cosas aquí, tal como lo harías con KVO

}];

Empiece

Porque yo Instalé CocoaPods antes, el ReactiveCocoaDemo que escribí esta vez se basa en CocoaPods. Si no está instalado, puede descargar ReactiveCocoa directamente desde github

Trabajo preliminar:

1. Abra xcode y cree un proyecto. El proyecto que nombré es ReactiveCocoaDemo

2. Terminal a la ruta del proyecto

cd ReactiveCocoaDemo/

pod search ReactiveCocoa

<. p>3. Configurar archivos de dependencia

vi Podfile

plataforma: ios, '5.0'

pod 'ReactiveCocoa'

wq

4. Descargue el archivo

pod install/update

5: abra "Fases de compilación", seleccione el destino correspondiente y agregue RAC a "Vincular binario con". Bibliotecas". Agregue libReactiveCocoa-iOS.a

Como se muestra a continuación

6: Agregue $(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include" en Rutas de búsqueda del encabezado

7: Agregue -ObjC en "Otros indicadores del vinculador"

8: Agregue el archivo de encabezado RAC a ReactiveCocoaDemo-Prefix.pch

#import "ReactiveCocoa.h"

Ahora necesitamos implementar las siguientes funciones

Dos cuadros de entrada, una etiqueta solicitada y un botón,

1 Cuando el contenido de los dos cuadros de entrada Cuando. De la misma manera, el texto del mensaje muestra "Éxito" y se puede hacer clic en el botón

2. Cuando no hay entrada en ningún cuadro de entrada, el texto del mensaje muestra "Ingrese" y no se puede hacer clic en el botón <. /p>

3. Al ingresar, si el cuadro no está vacío y los dos contenidos de entrada son diferentes, aparecerá el mensaje "Vuelva a ingresar" y no se puede hacer clic en el botón

La siguiente es parte. del código de implementación:

@weakify(self);

[[RACObserve(self, advertenciaText)

filtro: ^(NSString *newString) {

self.resultLabel.text = newString;

devuelve SÍ;

//

return [newString hasPrefix: @"Success"]

}]

suscribirSiguiente: ^(NSString *newString) {

@strongify(self);

self.bt.enabled = [newString hasPrefix:@"Success"];

}]

RAC(self, self.warningText) = [RACSignal combineLatest: @[

RACObserve(self, self.input.text), RACObserve(self, self.verifyInput.text)]

reducir: ^(NSString *contraseña, NSString * contraseñaConfirm)

{

if ([contraseñaConfirmar isEqualToString:contraseña])

{

return @"Éxito";

}

else if([longitud de la contraseña] == 0 || [longitud de la confirmación de contraseña] ==0 )

{

return @" Por favor ingrese";

}

else

return @"Error de entrada";

}

] ;