Ошибка лязга на “Потенциальном пустом указателе разыменовывает”.

Произвольный набор тегов - таким образом, я могу отметить тест как, например, "интеграция, UI, администратор".

(Вы знали, что я собирался попросить это, не сделал Вас:-)

47
задан Constantino Tsarouhas 18 August 2011 в 09:11
поделиться

2 ответа

Способ выполнения ожидаемых действий показан в листинге 3-5 этого документа. В вашем примере кода:

+ (NSString *)checkForLength: (NSString *)theString error: (NSError **)error {
    BOOL hasLength = ([theString length] > 0);
    if (hasLength) return theString;
    else {
        if (error != NULL) *error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
        return nil;
    }
}
97
ответ дан 26 November 2019 в 19:26
поделиться

Согласно соглашению Какао, возвращаемое значение должно указывать на успех или неудачу (в этом случае вы возвращаете nil в случае неудачи), а ошибка заполняется дополнительной информацией, но только когда вызывающий запрос это.

Другими словами,

NSError *error = nil;
NSString *result = [self checkForLength: aString error: &error];

и

NSString *result = [self checkForLength: aString error: NULL];

являются допустимыми способами вызова метода. Таким образом, тело метода всегда должно проверять параметр ошибки NULL:

if (error != NULL)
    *error = ...;
17
ответ дан 26 November 2019 в 19:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: