pisałem małą kategorii na NSString i chciałem wiedzieć, czy ta metoda jest dokładnie obsługuje wszystkie potencjalne przypadki użycia:NSString "zerowy lub pusty" czek - czy to jest kompletne?
Aktualizacja: wyjaśnienie - Chciałem się upewnić, że nie jestem brakuje niektórych dziwak przypadek z udziałem kodowania znaków itp ..
@implementation NSString (Helpers)
+(BOOL)stringIsNilOrEmpty:(NSString*)aString {
if (!aString)
return YES;
return [aString isEqualToString:@""];
}
@end
wykorzystanie próbki:
-(void) sampleUsage {
NSString *emptyString = @"";
NSString *nilString = nil;
NSAssert([NSString stringIsNilOrEmpty:nilString] == YES, @"String is nil/empty");
NSAssert([NSString stringIsNilOrEmpty:emptyString] == YES, @"String is nil/empty");
}
@end
To zadziała. Istnieje kilkanaście różnych sposobów sprawdzenia "pustego" - długość == zero to drugie. –
W rzeczywistości można (wzdrygnąć się) użyć tylko jednego testu: 'if ([aString length] == 0) return YES;'. Wykorzystuje to funkcję "Object" C, którą dowolna metoda wywoływania zerowego wskaźnika zwraca zero. –
(I, oczywiście, możesz skrócić to do 'return [aString length] == 0;') –