Я продолжаю получать ошибки Clang в следующем типе кода, и я не могу понять, почему они ошибочны или как их решить для удовлетворения Clang:
+ (NSString *)checkForLength: (NSString *)theString error: (NSError **)error {
BOOL hasLength = ([theString length] > 0);
if (hasLength) return theString;
else {
*error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
return nil;
}
}
Оставив в стороне совершенно надуманный характер примера (который Кланг сделал так, чтобы он был достаточно иллюстративным), Клэнг отказывается в строке назначения ошибок со следующим возражением:
Потенциальное нулевое разыменование. Согласно стандартам кодирования в разделе "Создание и возврат
NSError
объектов" параметр "ошибка" может быть нулевым.
Мне нравится иметь чистый отчет Clang. Я прочитал цитированный документ, и я не вижу способа делать то, что ожидалось; Я проверил некоторые библиотеки с открытым исходным кодом Cocoa, и это, похоже, является распространенной идиомой. Любые идеи?