NSString *tmpStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
xmlSms = [xmlSms stringByAppendingString:tmpStr];
NSLog(xmlSms);
我得到了上面的代码,但NSLog
没有显示任何东西......有人知道这个问题??stringByAppendingString问题在目标c
NSString *tmpStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
xmlSms = [xmlSms stringByAppendingString:tmpStr];
NSLog(xmlSms);
我得到了上面的代码,但NSLog
没有显示任何东西......有人知道这个问题??stringByAppendingString问题在目标c
没关系...我想出了为什么。 问题是,当你想在字符串上使用stringByAppendingString时,字符串应该有初始值。
错误例如:
NSString *str1;
str1 = [str1 stringByAppendingString:@"test"];
应该是:
NSString *str1 = @"";
str1 = [str1 stringByAppendingString:@"test"];
您对NSLog的调用不正确。尝试:
NSLog(@"%@", xmlSms);
在Cocoa中,初始化函数(“构造”)经常回nil
如果他们失败出于某种原因或其他。为NSString
状态的文档:如果初始化由于某种原因失败
返回nil(例如,如果数据并不代表编码的有效数据)。
您确定传递给init函数的NSData
对象实际上包含UTF8编码的字符串吗?如果没有,返回的对象将是nil
。
是的,NSString * tmpStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 这是你的意思吗? 我认为问题是关于这个,xmlSms = [xmlSms stringByAppendingString:tmpStr]; 但我不明白为什么它不工作.. – BlackSoil 2009-09-04 14:19:19
要展开,'%@'是用于在'的NSLog()'格式字符串对象,它适用于格式说明'NSString'实例,因为它们是对象。这里解释了字符串格式说明符:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Strings/Articles/Artt/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265 – 2009-09-04 06:05:30
这不是问题,我已经检查了xmlSms的长度,它显示为0.和nslog(xmlsms)应该工作太多,因为我已经做了很多次。问题是为什么appendingstring不起作用 – BlackSoil 2009-09-04 13:01:12
如何创建xmlSms?你可以显示该变量的代码吗? – fbrereto 2009-09-04 16:09:01