我得到了最新的推特,并显示在我的应用程序。我将其放入一个NSMutableString中,并在xmlparser.m文件中初始化该字符串,如下所示:
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}我可以得到推特,但不知怎的,它削减了一些推文,并显示了它的一部分。例如,tweet是
在教室里玩电子游戏?社交媒体&#科技可以改变教育-- http://bit.ly/KfGViF @执政#edtech
但它所显示的是:
#技术可以改变教育http://bit.ly/KfGViF @治理#edtech
你觉得这是为什么?我试图以其他方式初始化currentNodeContent,但我无法解决这个问题。
你知道为什么会发生这种事吗?
发布于 2012-04-27 02:29:24
事件驱动(SAX)解析器可以在回调中只返回节点部分文本。你可能只会收到部分推文。您可能应该在可变字符串中积累字符,直到得到指示元素结束的回调为止。请参见清单3和本指南中的周围文本。
发布于 2012-04-27 04:10:40
你这里有两个问题:
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}简单地将NSString转换为NSMutableString是行不通的。您必须自己创建一个可变的副本,或者使用一个NSMutableString的内容初始化一个新的NSString。
此外,文本解析器只给出字符串的最后一部分,因为它可能只是将'&‘解释为实体引用的一部分,也可能是实体引用本身。
你可能想做的是:
currentNodeContent以便它是一个空的NSMutableString:
currentNodeContent = NSMutableString字符串;currentNodeContent:
[ stringByTrimmingCharactersInSet:NSCharacterSet whitespaceAndNewlineCharacterSet] [currentNodeContent appendString:[string whitespaceAndNewlineCharacterSet];https://stackoverflow.com/questions/10343940
复制相似问题