How can I test an NSString for being nil?

前端 未结 8 1816
借酒劲吻你
借酒劲吻你 2020-12-09 07:12

Can I simply use

if(myString == nil)

For some reason a string that I know is null, is failing this statement.

相关标签:
8条回答
  • 2020-12-09 07:26

    Is it possible that your string is not in fact nil, and is instead just an empty string? You could try testing whether [myString length] == 0.

    0 讨论(0)
  • 2020-12-09 07:26

    you may check your getting string using this

       if(myString==(id) [NSNull null] || [myString length]==0 || [myString isEqualToString:@""])
        {
         //String is null or bad response
        }
    
    0 讨论(0)
  • 2020-12-09 07:28

    Check NSAttributedString is empty:

    let isEmpty = atrributedString.string.isEmpty
    
    0 讨论(0)
  • 2020-12-09 07:40

    You can find more on objective C string here.

    + (BOOL ) stringIsEmpty:(NSString *) aString {
    
        if ((NSNull *) aString == [NSNull null]) {
            return YES;
        }
    
        if (aString == nil) {
            return YES;
        } else if ([aString length] == 0) {
            return YES;
        } else {
            aString = [aString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
            if ([aString length] == 0) {
                return YES;
            }
        }
    
        return NO;  
    }
    
    + (BOOL ) stringIsEmpty:(NSString *) aString shouldCleanWhiteSpace:(BOOL)cleanWhileSpace {
    
        if ((NSNull *) aString == [NSNull null]) {
            return YES;
        }
    
        if (aString == nil) {
            return YES;
        } else if ([aString length] == 0) {
            return YES;
        } 
    
        if (cleanWhileSpace) {
            aString = [aString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
            if ([aString length] == 0) {
                return YES;
            }
        }
    
        return NO;  
    }
    
    0 讨论(0)
  • 2020-12-09 07:40

    I encountered this problem today. Despite assigning a string to be nil: NSString *str = nil;, the test if (str == nil) returned FALSE! Changing the test to if (!str) worked, however.

    0 讨论(0)
  • 2020-12-09 07:43

    It seems that my string in the debugger was reporting as (null) but that was due to how it was being assigned, I fixed it and now it is reporting as nil. This fixed my issue.

    Thanks!

    0 讨论(0)
提交回复
热议问题