我想在获得下面的解析器委托方法
后验证字符串值我试过像[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);
}
}
}
答案 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的最佳方式。