- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 NSXMLParser 解析 Objective-C 中的 rss 提要。此 rss 与此类似:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>My RSS</title>
<description>My Rss parser</description>
<item>
<title>Some kind of a title</title>
<description>
<![CDATA[]]>
</description>
<media:thumbnail url="http://www.example.org/pics/Thumbs/picture.jpg"/>
<pubDate>Tue, 20 Jan 2015 22:24:56 -0500</pubDate>
</item>
</channel>
</rss>
我的 NSXML 代表是这样的:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
element = elementName;
if ([element isEqualToString:@"item"]) {
item = [[NSMutableDictionary alloc] init];
title = [[NSMutableString alloc] init];
pubDate = [[NSMutableString alloc] init];
}
if([element isEqualToString:@"media"]){
imageLink = [[NSMutableString alloc] init];
imageLink = [attributeDict objectForKey:@"url"];
}
NSLog (@"Parse did Start");
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if ([element isEqualToString:@"title"]) {
[title appendString:string];
} else if ([element isEqualToString:@"media"]) {
imageLink = string;
} else if ([element isEqualToString:@"pubDate"]) {
[pubDate appendString:string];
}
NSLog(@"Found characters");
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"item"]) {
[item setObject:title forKey:@"title"];
[item setObject:imageLink forKey:@"media"];
[item setObject:pubDate forKey:@"pubDate"];
[feeds addObject:[item copy]];
}
NSLog(@"Did end elements");
}
- (void)parserDidEndDocument:(NSXMLParser *)parser {
[self.tableView reloadData];
NSLog(@"Parsing is done");
NSLog(@"%@", title);
}
我已经声明了所有需要的变量。正如您可能已经看到的,我正在尝试解析以 rss 元素的属性形式呈现的链接。在我这样做之前,应用程序运行良好,但图像 imageLink = [attributeDict objectForKey:@"url"];
"Attempt to mutate immutable object with appendString:"bug 出现了。
大家怎么看?
最佳答案
因为你已经使用了 NSMutableString 你应该替换下面的代码
if([element isEqualToString:@"media"]){
imageLink = [[NSMutableString alloc] init];
imageLink = [attributeDict objectForKey:@"url"];
}
与
if([element isEqualToString:@"media"]){
imageLink = [[NSMutableString alloc] init];
[imageLink appendString:[attributeDict objectForKey:@"url"]];
}
关于ios - '尝试用 appendString :' error when parsing xml 改变不可变对象(immutable对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28077786/
我正在使用 XMLParser 来解析一些 XML 数据,它使用 NSMutableString *resultString 来存储标记字符。在每个 (- parser: didStarElement
这对我来说毫无意义。也许这里有人可以解释为什么会这样。 我有一个 NSMutableString,我在我的 iPhone 应用程序的顶部分配,然后附加到该过程的后面。它会产生一个 SIGABRT,这对
您好,我是 swift 的新手,我正在学习教程并创建相同的代码以上传图像。我现在正在使用 swift 3,似乎 NSMutableData() 不再有可用的 appendString 方法我可以做些什
这是我第一次使用 NSTextView,我很难弄清楚它是如何工作的,我有这样一行: [[commandHistoryTextView textStorage] appendString:out
鉴于此: NSString *innerXml = @"somevalue"; NSMutableString *xml = [[NSMutableString alloc] init]; 哪个更快?
我在 MacOS-X 10.6.7 和 Xcode 4.0.2 上使用 Objective-C 中的 respondsToSelector 方法来确定对象是否会响应某些消息。根据手册,NSString
我在消除我正在开发的 iPhone 应用程序中的泄漏问题时遇到了问题。我正在解析 xml feed 来获取数据。这是我用来解析的代码 [[NSURLCache sharedURLCache] setM
我遇到了一个错误'尝试使用 appendString 改变不可变对象(immutable对象):' 我的代码是 NSMutableString *resultString= [[NSMutableSt
当我将字符串附加到 NSMutableString使用 appendString:我收到以下错误: Terminating app due to uncaught exception 'NSInval
我正在使用 NSXMLParser 解析 Objective-C 中的 rss 提要。此 rss 与此类似:
我计划通过遍历集合并一次生成 block 来构建一个可能很大的字符串。如果我只是简单地从一个 NSMutableString 开始并重复向它附加 block ,那么它是否有效地工作或者它是一个 Sch
我是一名优秀的程序员,十分优秀!