Ho un controller di visualizzazione personalizzato che è una sottoclasse di UIViewController che richiede che un oggetto dati sia impostato correttamente. Senza questo oggetto, mostrare il VC non ha alcun senso. Così ho creato un inizializzatore personalizzato che richiede che questo oggetto venga passato come parametro / argomento. Non esiste anche un oggetto dati "predefinito", quindi non ho alcun motivo di sovrascrivere l'init ereditato e implementare il passaggio di questo oggetto dati predefinito internamente da init a init personalizzato.
Invece sto sollevando un'eccezione che spiega che è necessario aggiungere un oggetto nell'inizializzatore personalizzato designato invece di usare il metodo init ereditato.
Tuttavia, i miei colleghi obiettano che dovrei semplicemente restituire nil nello standard init sovrascritto. Comunque non mi stanno dando alcuna argomentazione adeguata, mi dicono solo che questa è la convenzione. Quale non è un argomento per me in senso stretto. Non farò le cose solo perché sono tradizione.
Perché restituire nil e perché sollevare un'eccezione personalizzata è sbagliato?