如何验证Objective C中的空字符串?

时间:2011-09-09 12:30:28

标签: iphone objective-c nsstring

我想在获得下面的解析器委托方法

后验证字符串值

我试过像[string length]> 0,(string!= NULL)如果在NSlog中打印条件仍为空白字符串。那么验证sting的有效方法是什么。我使用了下面的代码

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {   
    if ([elemName isEqualToString:@"productName"]) {
        if (!prodStringValue) {
            prodStringValue = [[NSMutableString alloc] initWithCapacity:50];
        }
        [prodStringValue appendString:string];
        if(prodStringValue && [prodStringValue length]>0 && (prodStringValue !=NULL))
        {
            prodNameStr = prodStringValue;
        NSLog(@"productName:%@",prodNameStr);
        }
        if(string && [string length]>0 && (string !=NULL))
        {
            prodNameStr = string;
            NSLog(@"productName:%@",string);
        }

    }
}

7 个答案:

答案 0 :(得分:4)

你在这个“空”字符串中有空格吗?请务必使用

删除它们
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceAndNewlineCharacterSet]];

答案 1 :(得分:3)

您可以查看是否[string length] == 0。这将检查它是否是有效但空的字符串(@"")以及它是否为nil,因为在nil上调用length也将返回0。

答案 2 :(得分:2)

我猜你可以使用以下代码代替所有三项检查。

[prodStringValue isEqualToString:@""];

而且,BTW

if (prodStringValue)

等于

if (prodStringValue != nil) // nil = NULL in objc

答案 3 :(得分:2)

if (str == Nil)

试试这个。适合我。

答案 4 :(得分:1)

如果string为NULL并且您检查它的长度,那么它将崩溃。 所以你可以试试。

string  = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];


if(string != [NSNull null])
{
    if([string length]>0)
    {
        NSLog(@"%@",string);
    }
}

答案 5 :(得分:1)

您可以在以下几行代码中尝试此操作

NSString *trimedstr  = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];


if(trimedstr != [NSNull null]&& ![trimedstr isEqualToString:@""])
{
    if([trimedstr length]>0)
    {
        NSLog(@"%@", trimedstr);
    }
}

答案 6 :(得分:0)

        [str isEqualToString:@""]

这是nil string的最佳方式。