Los campos de NSError no se pueden configurar. su interfaz es opaca e inmutable. por lo tanto, si tuviera que asignar/iniciar un error, el cliente no podría completarlo. por lo tanto, el enfoque es devolver un nuevo error (si corresponde), también lo salve de los allocs en todos los casos.
dado que el tipo de devolución ya está especificado por el método, y el error es opcional, tiene sentido utilizar este enfoque para devolver el error en la sintaxis idiomatic c.
iow, el cliente no puede cambiar lo que pasa ni devolver el error utilizando :(NSError *)outError
, por lo que se aplica el "parámetro de salida" formulario :(NSError**)outError
.
Solo tenga en cuenta que detecta si se produjo un error por el valor de retorno de los métodos, no comprobando si el error sigue siendo nulo después. –
@Johan - ¡sí! He cometido exactamente el mismo error cuando recién comenzaba con Obj-C. –