me cogió la costumbre de codificación de mi tratamiento de errores de esta manera:NSError: ¿Usar nil para detectar el error en realidad desactiva el informe de errores?
NSError* error = nil;
NSDictionary *attribs = [[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error];
if (error != nil) {
DLogErr(@"Unable to remove file: error %@, %@", error, [error userInfo]);
return;
}
Pero al mirar a la documentación Parece como si tuviera este mal .:
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error
If an error occurs, upon return contains an NSError object that describes the problem. Pass NULL if you do not want error information.
técnicamente no hay diferencia entre nulo y NULL, ¿significa esto que estoy apagando esto y nunca recibiré un mensaje de error (incluso si la eliminación en el ejemplo anterior falló)? ¿Hay alguna forma mejor de codificar esto?
Gracias.
hay una diferencia entre las negativas 'y' null', y 'las negativas. 'nil' es, por ejemplo, objeto,' Nil' es para el objeto de clase, 'NULL' es para cualquier otra cosa. Dado que '& error' es la dirección de memoria, no el objeto, use' NULL' – Philip007