Objective-C: Afirmación vs. Excepción vs. Error

En Cocoa, ¿cuándo debo usar NSAssert, NSException, NSError?

Esto es lo que he estado pensando:

NSAssert - Al crear cualquier programa cliente utilizado para el beneficio propio de los programadores para verificar las reglas, convenciones, suposiciones o condiciones previas y posteriores.

NSException - Al crear una biblioteca de terceros en beneficio de otros programadores que usan la biblioteca, para que sepan de inmediato cuando una entrada no es válida.

NSError - Al interactuar con un sistema externo para obtener datos como un archivo, una base de datos o un servicio web que no garantiza un resultado?

Respuestas a la pregunta(4)

Su respuesta a la pregunta