significado separado rae prefijo junto fundéu diccionario biologia automovil objective-c synchronized self declared-property

objective c - separado - ¿@Synchronized(self) crea un bloque donde el auto prefijo no es necesario en las propiedades?



prefijo fundéu (2)

@synchronized (self) se usa para deshacerse del self. prefijo.

Entonces, en mi ejemplo, establezco el strText no en la función, lo configuro en la clase.

Se están combinando dos conceptos.

  1. @synchronized(self) { ... } solo bloquea el bloque utilizando el objeto self como semáforo.
  2. En Objective-C, no hay nada como un hipotético with declaración como en otros lenguajes que elimina la necesidad de que self.whatever mismo whatever lo que whatever . Es posible que desee tomar el curso en línea Stanford CS193P para repasar el idioma.

He leído algo en algún código extranjero y quiero verificar mi suposición:

@synchronized(self) se usa para deshacerse del self prefijo cuando se configura una propiedad.

Entonces, en mi ejemplo a continuación, estoy configurando el strText de la instancia, no solo una variable local, ¿verdad?

- (void)myfunction{ NSString * strText = @"var in function"; @synchronized(self) { strText = @"var class (self.strText)"; } }


Por favor lea esta Documentation

La directiva @synchronized() bloquea una sección de código para ser utilizada por un solo hilo. Otros subprocesos se bloquean hasta que el subproceso sale del código protegido, es decir, cuando la ejecución continúa más allá de la última instrucción en el bloque @synchronized() .

La directiva @synchronized() toma como único argumento cualquier objeto Objective-C, incluido el self .

Como señaló Massimo Cafaro : "Es más seguro crear todos los objetos de exclusión mutua antes de que la aplicación se multihebra, para evitar las condiciones de la carrera".