NSString stringWithContentsOfURL已经被弃用了。我该怎么办?

10

我编写了一些使用stringWithContentsOfURL的代码,但是它现在已经过时了。你能帮我替换它吗?以下是我的代码:

NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
NSArray *listItems = [locationString componentsSeparatedByString:@","];

此外,有人可以提供一些示例代码来展示它是如何工作的吗?原始代码采用了什么编码方式(在我上面两行中)?

我想保持兼容性,所以应该选择什么编码方式?错误是什么意思,它用于什么?

2个回答

23

使用stringWithContentsOfURL:encoding:error:

编辑:以下是使用上述方法的代码:

NSError *error = nil;
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSUTF8StringEncoding error:&error];
NSArray *listItems = [locationString componentsSeparatedByString:@","];
你可以根据导入的数据相应地更改 NSUTF8StringEncoding

如果你问 NSUTF8StringEncoding 是否适用于此,那么是的,它应该可以正常工作。只需将我的代码复制粘贴到你的项目中,它应该可以百分之百地工作。 - edc1591
在提供的代码中,您使用了NSUTF8StringEncoding。我是否应该在所有通过网络传输的数据(例如Google Maps或其他Web服务器)中使用它? - Cocoa Dev
是的,如果你阅读的是文本。你可以在这里了解更多关于UTF8的信息:http://zh.wikipedia.org/wiki/UTF-8 - edc1591
谢谢 EDC :-) 我会去了解一下。还有哪些编码选项? - Cocoa Dev
在苹果的NSString类参考文档中有一份编码列表。只需在常量部分查找“NSStringEncoding”即可。我从未需要使用除UTF8编码以外的任何内容,所以我认为你应该可以使用它。 - edc1591

2
这句话的意思是:“NSString reference中说道:使用`stringWithContentsOfURL:encoding:error:`或者`stringWithContentsOfURL:usedEncoding:error:`代替它。”

你有示例代码展示它是如何工作的吗?我真的很困惑。原始代码使用了什么编码(在我的上述两行中)? - Cocoa Dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接