Iphone 如何验证目标C中的空字符串?

Iphone 如何验证目标C中的空字符串?,iphone,objective-c,nsstring,Iphone,Objective C,Nsstring,我想在进入下面的解析器委托方法后验证字符串值 如果NSlog中打印的字符串仍然为空,我尝试了[string length]>0(string!=NULL)。那么什么是有效的方法来验证sting。我使用了下面的代码 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { if ([elemName isEqualToString:@"productName"]) { if (!

我想在进入下面的解析器委托方法后验证字符串值

如果NSlog中打印的字符串仍然为空,我尝试了[string length]>0(string!=NULL)。那么什么是有效的方法来验证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);
        }

    }
}

我想,您可以使用以下代码来代替所有三个检查

[prodStringValue isEqualToString:@""];
顺便说一句

if (prodStringValue)
等于

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

您可以检查
[字符串长度]==0
。这将检查它是否是有效的空字符串(
@“
),以及它是否为nil,因为对nil调用
length
也将返回0。

此“空”字符串中是否有空格?请确保使用删除它们

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

这是nil字符串的最佳方式。

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

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


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

您可以在下面几行代码中尝试这一点

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


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

试试这个。对我有效。

在Obj-C中,
nil
是一个空id,对于正常的非id指针仍然有
NULL
。实际上,nil和NULL之间没有区别。@Rudy Velthuis:嗯?h:#define nil null您可能不想修剪可能为null的字符串—它可能会引发异常?如果它不能为空,那么这个比较就没有意义了。
NSString *trimedstr  = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];


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