0

我正在尝试从此文件中读取文本并将其显示在我的应用程序的标签中。我收到这段代码的错误消息。

NSURL *url = [NSURL URLWithString:@"http://www.funnynewsletter.tk/files/file.txt"];
NSString *content = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding];
label.text = content;

我知道,这很简单。我刚开始学习iOS,我正在尝试。如果你能给我资源和想法,而不是完整的代码,那将不胜感激......我正在努力学习,而不仅仅是复制你的工作。谢谢大家!:)

错误信息:No known class method for selector 'stringWithContentsOfUrl:encoding'

4

5 回答 5

1

这一行:

NSString *content = [NSString stringWithContentsOfURL:url 
                                             encoding:NSASCIIStringEncoding];

应该是这样的:

NSString *content = [NSString stringWithContentsOfURL:url 
                                             encoding:NSASCIIStringEncoding 
                                                error:nil];

如果您仍然遇到问题,则很可能是在网络上。

更新 - 错误检查

您可以检查以下错误:

NSError* error;
NSString *content = [NSString stringWithContentsOfURL:url 
                                             encoding:NSASCIIStringEncoding 
                                                error:&error];
if (!content) {
    if (error) {
       NSLog (@"error %@",error);
      //handle error
    }
else {
   //do something with content
}

在 Maddy 的评论之后修复

于 2012-12-20T03:24:24.597 回答
1

错误消息告诉您 NSString 类没有该名称的方法。正确的方法是stringWithContentsOfURL:encoding:error:。我认为曾经有,stringWithContentsOfURL:encoding:但它已被弃用,然后被删除。如果你只是测试而不关心错误,你可以通过nilfor error:。但是不要在任何严重的代码中这样做。

于 2012-12-20T03:25:53.647 回答
0

有时你只需要阅读规范。您缺少“错误:”参数。

NSString *content = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&errorMsg];
于 2012-12-20T03:24:47.173 回答
0
    NSURL *url = [NSURL URLWithString:@"http://www.funnynewsletter.tk/files/file.txt"];

NSError *error;
NSString *urlContent = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

    if(error!=nil)
{ 


    NSLog(@"Error %@",error);

}
于 2013-12-09T05:24:33.497 回答
-1

如果您想从 NSURL 获取字符串,description方法可以提供帮助。

NSURL *url = [NSURL URLWithString:@"http://www.funnynewsletter.tk/files/file.txt"];
label.text = url.description;
于 2012-12-20T03:23:09.700 回答