Iphone 如何验证目标C中的空字符串?
我想在进入下面的解析器委托方法后验证字符串值 如果NSlog中打印的字符串仍然为空,我尝试了[string length]>0(string!=NULL)。那么什么是有效的方法来验证sting。我使用了下面的代码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 (!
- (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)