usar señal repetidor rato pero lejos incorrecta detecta desconecta contraseña conecta como cada agarra iphone objective-c properties memory-management setter

señal - mi iphone se desconecta del wifi a cada rato



¿Cómo falla la señal de establecimiento de una propiedad Objective-C? (2)

La recomendación de Apple es que las excepciones deben reservarse para situaciones excepcionales. En ocasiones, esto es una práctica de programación recomendada, pero en el caso de Objective-C se refuerza debido al mayor costo del manejo de excepciones.

Entonces, puede lanzar una excepción si lo desea y es apropiado, por ejemplo, quedarse sin memoria (copia fallida) es (¡con suerte!) Excepcional.

Dicho esto, algunas prácticas de programación también recomiendan que las propiedades no arrojen excepciones; generalmente sobre la base de que algo que se parece a la asignación obj.property = value; sería confuso si se arrojaran excepciones (a diferencia de [obj setProperty:value] ).

Eso nos lleva a establecer la propiedad en el "cero" para el tipo ( nil , 0 , 0.0 , NO , etc.).

Para devolver más detalles del error, registre los detalles del error que pueden ser consultados después de que se haya detectado el "cero". Este es esencialmente el enfoque utilizado por los syscalls subyacentes ("Unix") y muchas funciones de la biblioteca, donde se configuró errno antes de que se devuelva un "cero".

Supongamos que tiene una propiedad con semántica de copia. ¿Qué debe hacer en el colocador si el método de copia falla? (Supongo que esta es una posibilidad, ya que una copia generalmente comienza con un combo alloc / init, que puede fallar y devolver cero). Apple recomienda devolver códigos de error en lugar de usar excepciones, pero un setter generalmente tiene un tipo de devolución anómala. ¿Cuál es el enfoque recomendado? ¿Cómo se señala que ha ocurrido un error?


No hay forma de señalar un error, salvo que la propiedad cuyo setter llamó sería nil . Puede comprobar nil después de ejecutar el ajustador, del mismo modo que confirmaría el éxito después de asignar / iniciar una nueva instancia.